コード例 #1
0
    public ExtendedEventArgs process()
    {
        //Determines whether the entire packet should be processed or not
        bool dropPacket = false;

        //The number of the incomming update
        int updateNumber     = DataReader.ReadShort(dataStream);
        int lastUpdateNumber = GameObject.Find("Main Object").GetComponent <ConnectionManager>().getUpdateNumber();

        if (updateNumber <= lastUpdateNumber && (lastUpdateNumber - updateNumber) <= Constants.maxUpdateDistance)
        {
            dropPacket = true;
            Debug.Log("Packed Dropped. Last Update Number: " + lastUpdateNumber + "\tNew Update Number" + updateNumber);
        }
        else
        {
            connectionManager.setUpdateNumber(updateNumber);
        }

        if (!dropPacket)
        {
            //Read all of the positions and rotations
            Vector3 cameraPos = readVector3();
            Vector3 cameraRot = readVector3();
            Vector3 lHandPos  = readVector3();
            Vector3 lHandRot  = readVector3();
            Vector3 rHandPos  = readVector3();
            Vector3 rHandRot  = readVector3();

            //Update the root and IK targets
            networkController.updatePositions(cameraPos, lHandPos, rHandPos);
            networkController.updateRotations(cameraRot, lHandRot, rHandRot);

            //Get any triggers and apply them to the opponent
            Constants.animParam trigger = (Constants.animParam)DataReader.ReadInt(dataStream);

            if (trigger != Constants.animParam.None)
            {
                networkController.setAnimation(trigger);
            }
        }

        return(null);
    }