public void SetTargetTransform(TransformSyncData tr)
    {
        sPos = transform.localPosition;
        sRot = transform.localRotation;

        this.tr     = tr;
        CurLerpTime = 0f;
    }
    private void Awake()
    {
        photonView = GetComponent <PhotonView>();

        BodySync      = new TransformSyncData(BodyTransform);
        HMDSync       = new TransformSyncData(HMDTransform);
        LeftHandSync  = new TransformSyncData(LeftHandTransform);
        RightHandSync = new TransformSyncData(RightHandTransform);
    }
        protected virtual void SyncTransform(Entity e, Vector3 pos, Vector3 rot)
        {
            EntityManager     entityManager = match.world.EntityManager;
            TransformSyncData sync          = entityManager.GetComponentData <TransformSyncData> (e);

            sync.posX  = pos.x;
            sync.posY  = pos.y;
            sync.posZ  = pos.z;
            sync.oposX = pos.x;
            sync.oposY = pos.y;
            sync.oposZ = pos.z;
            sync.rotX  = rot.x;
            sync.rotY  = rot.y;
            sync.rotZ  = rot.z;
            sync.orotX = rot.x;
            sync.orotY = rot.y;
            sync.orotZ = rot.z;
            entityManager.SetComponentData(e, sync);
        }
Пример #4
0
    protected IEnumerator CoEmitTransforms()
    {
        while (true)
        {
            yield return(new WaitForSeconds(0.1f));

            var transforms = joints.Select(n =>
            {
                var tr = new TransformSyncData();
                n.GetPredictedTransforms(ref tr);
                return(tr);
            }).ToArray();
            TransformSyncDataContainer container = new TransformSyncDataContainer();
            container.data       = transforms;
            container.ownerIndex = playerIndex;
            var jsonStr = JsonConvert.SerializeObject(container);
            JooNetManager.Instance.socket.Emit("deadReckoning", JSONObject.Create(jsonStr));
        }
    }
    public void GetPredictedTransforms(ref TransformSyncData data)
    {
        data.curPos = transform.localPosition;
        data.curRot = transform.localRotation.eulerAngles;

        data.posSpd = (data.curPos - prevPos) * 10f;
        data.rotSpd = (data.curRot - prevRot);
        data.rotSpd = new Vector3(
            (data.rotSpd.x + 540) % 360f - 180f,
            (data.rotSpd.y + 540) % 360f - 180f,
            (data.rotSpd.z + 540) % 360f - 180f
            ) * 10f;

        data.posAcc = data.posSpd - posSpd;
        data.rotAcc = data.rotSpd - rotSpd;

        prevPos        = data.curPos;
        prevRot        = data.curRot;
        posSpd         = data.posSpd;
        rotSpd         = data.rotSpd;
        data.jointType = (int)this.jointType;
    }