예제 #1
0
    public void TakeStateFromServer(CritterStatePacket state, bool setHeadOrientation = true)
    {
        rb.MovePosition(state.position);
        rb.velocity = state.velocity;

        if (setHeadOrientation)
        {
            Head.transform.rotation = state.headOrientation;
        }
    }
예제 #2
0
        private void PostCritterStatePacket(CritterStatePacket p, NetworkPlayer currentPlayer)
        {
            var message = new CritterStatePacketMessage()
            {
                ID = currentPlayer.ID,
                critterStatePacket = p
            };

            SendMessageToClients(GameMsgType.UpdateCritterState, message);
        }
예제 #3
0
 internal void HandleCritterStatePacket(CritterStatePacket critterStatePacket)
 {
     Debug.Log("HandleCritterStatePacket P#" + ID + " " + critterStatePacket.position);
     Player.CritterController.UpdateViaCritterStatePacket(critterStatePacket);
 }
예제 #4
0
 internal void ForwardCritterStatePacket(CritterStatePacket obj)
 {
     PostCritterStatePacket?.Invoke(obj);
 }
예제 #5
0
 public void UpdateViaCritterStatePacket(CritterStatePacket critterStatePacket)
 {
     Mover.TakeStateFromServer(critterStatePacket, localInputGrabber == null);
 }
예제 #6
0
 public void TakeStateFromServer(CritterStatePacket state, bool setRotation = true)
 {
     rb.MovePosition(state.position);
     rb.velocity = state.velocity;
 }