Esempio n. 1
0
    void SyncTankPosition(SyncTankPositionMsg msg)
    {           //uses quaternion and position info to set tank transform
        if (msg.TankID == TankID)
        {
            Vector3    NewPos;
            Quaternion NewRot = new Quaternion(msg.xQuat, msg.yQuat, msg.zQuat, msg.wQuat);

            NewPos.x = msg.xPos;
            NewPos.y = msg.yPos;
            NewPos.z = msg.zPos;

            transform.position = NewPos;
            transform.rotation = NewRot;
        }
    }
Esempio n. 2
0
 // Update is called once per frame
 void FixedUpdate()
 {
     CurrentFrame = Time.frameCount;
     //madbrew : what about order on recieving end?
     MoveTank();
     HealStamina();
     if (CurrentFrame == NextMoveUpdateFrame)
     {
         NextMoveUpdateFrame = LastMoveUpdateFrame;
         SyncTankPositionMsg msg = new SyncTankPositionMsg(
             CurrentFrame,
             TankID,
             transform.position,
             transform.rotation
             );
         GameUtilities.Broadcast("SyncTankPosition", msg);
     }
 }
Esempio n. 3
0
 void SyncTankPosition(SyncTankPositionMsg msg)
 {
     if (msg.External)
     {
         return;
     }
     WebsockAdaptorSend(
         SyncTankPositionID
         + "," + msg.FrameNo
         + "," + msg.TankID
         + "," + msg.xPos
         + "," + msg.yPos
         + "," + msg.zPos
         + "," + msg.xQuat
         + "," + msg.yQuat
         + "," + msg.zQuat
         + "," + msg.wQuat
         );
 }
Esempio n. 4
0
    static SyncTankPositionMsg ReconstructSyncTankPositionMsg(string message)
    {
        string[]            parts = message.Split(new char[] { ',' });
        SyncTankPositionMsg msg   = new SyncTankPositionMsg();
        int part = 0;

        msg.External = true;
        msg.FrameNo  = int.Parse(parts[part++]);
        msg.TankID   = byte.Parse(parts[part++]);

        msg.xPos = float.Parse(parts[part++]);
        msg.yPos = float.Parse(parts[part++]);
        msg.zPos = float.Parse(parts[part++]);

        msg.xQuat = float.Parse(parts[part++]);
        msg.yQuat = float.Parse(parts[part++]);
        msg.zQuat = float.Parse(parts[part++]);
        msg.wQuat = float.Parse(parts[part++]);

        return(msg);
    }