Exemplo n.º 1
0
        private void Update()
        {
            if (RoomManagerBase.currentRoom == null || PlayerManager.GetCurrentPlayer() == null)
            {
                return;
            }
            GlobalDynamicBones.timeToUpdate -= Time.deltaTime;
            if (GlobalDynamicBones.timeToUpdate > 0f)
            {
                return;
            }
            GlobalDynamicBones.timeToUpdate = GlobalDynamicBones.updateTime;
            Player player = PlayerManager.GetCurrentPlayer();

            if (player == null)
            {
                return;
            }
            if (player.vrcPlayer == null)
            {
                return;
            }
            if (player.vrcPlayer.avatarGameObject == null)
            {
                return;
            }
            Vector3 position = player.vrcPlayer.avatarGameObject.transform.position;
            float   num      = GlobalDynamicBones.maxDistance * GlobalDynamicBones.maxDistance;

            foreach (DynamicBoneSync dynamicBoneSync in GlobalDynamicBones.dynamicBones)
            {
                if ((dynamicBoneSync.transform.position - position).sqrMagnitude < num)
                {
                    if (!dynamicBoneSync.active)
                    {
                        dynamicBoneSync.active = true;
                        GlobalDynamicBones.ApplyColliders(dynamicBoneSync.bones, GlobalDynamicBones.myColliders);
                        GlobalDynamicBones.ApplyColliders(GlobalDynamicBones.myBones, dynamicBoneSync.colliders);
                    }
                }
                else if (dynamicBoneSync.active)
                {
                    dynamicBoneSync.active = false;
                    GlobalDynamicBones.RemoveColliders(dynamicBoneSync.bones, GlobalDynamicBones.myColliders);
                    GlobalDynamicBones.RemoveColliders(GlobalDynamicBones.myBones, dynamicBoneSync.colliders);
                }
            }
        }
Exemplo n.º 2
0
 internal void OnUpdateDynamics()
 {
     this.player = base.GetComponent <VRC.Player>();
     if (this.player == null)
     {
         return;
     }
     if (!(this.player != PlayerManager.GetCurrentPlayer()))
     {
         GlobalDynamicBones.OnUpdateDynamics();
         return;
     }
     GlobalDynamicBones.RemoveColliders(GlobalDynamicBones.myBones, this.colliders);
     this.bones     = base.GetComponentsInChildren <DynamicBone>(true);
     this.colliders = GlobalDynamicBones.GetHandColliders(this.player.vrcPlayer);
     this.active    = false;
 }