- Home /
Flipping Sprite on Client/Over Network
Hi,
I'm trying to get a pretty simple thing working -- I have a networked game with a host and a client both connected. Each player can move independently (it is a 2D sidescroller/platformer), but when the client presses A or D to flip its sprite, nothing happens. The host can flip just fine, but the client cannot. I have been stuck on this for weeks now and cant figure out what is going on. Any help is appreciated. Basically the question is:
How can I get the client's sprite to flip on the server/host? Right now the host doesn't see the client's sprite flip.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class CharController : NetworkBehaviour {
//Movement variables
[SyncVar (hook = "CmdFlipSprite")]
public bool isFacingRight = true;
void Update()
{
//Only process input from local player
if (!isLocalPlayer || isDead)
{
return;
}
if (Input.GetKeyDown(KeyCode.D) && !isFacingRight)
{
isFacingRight = true;
}
if (Input.GetKeyDown(KeyCode.A) && isFacingRight)
{
isFacingRight = false;
}
if (Input.GetKeyDown(KeyCode.Space) && IsGrounded()) //&& IsGrounded()
{
CmdJump();
}
}
void CmdFlipSprite(bool flip)
{
//transform.localScale = new Vector2(transform.localScale.x * -1, transform.localScale.y);
sr.flipX = flip;
}
}
A lot of code is truncated for simplicity purposes.
Your answer
Follow this Question
Related Questions
Unity 4.3 Sprite Align 2 Answers
Sprites around my player is shaking when the player is moving 2 Answers
2d Platformer sprites background 1 Answer
2D Sprite Layering? 1 Answer
Crop/Mask a Sprite on runtime 0 Answers