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); } } }
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; }