Exemplo n.º 1
0
 private void OnEnable()
 {
     if (PlayerManager.GetAllPlayers() != null)
     {
         Player[] allPlayers = PlayerManager.GetAllPlayers();
         GlobalDynamicBones.dynamicBones = new List <DynamicBoneSync>(allPlayers.Length);
         foreach (Player player in allPlayers)
         {
             DynamicBoneSync component = player.GetComponent <DynamicBoneSync>();
             if (component != null)
             {
                 Debug.Log("DynamicBoneSync toggle on: " + player.name);
                 component.enabled = true;
                 component.OnUpdateDynamics();
                 if (player != PlayerManager.GetCurrentPlayer())
                 {
                     GlobalDynamicBones.dynamicBones.Add(component);
                 }
             }
             else
             {
                 GlobalDynamicBones.OnPlayerAdd(player);
             }
         }
     }
 }
Exemplo n.º 2
0
 private void OnDestroy()
 {
     if (GlobalDynamicBones.Instance == this)
     {
         GlobalDynamicBones.Instance = null;
     }
 }
Exemplo n.º 3
0
 private void Awake()
 {
     if (GlobalDynamicBones.Instance == null)
     {
         GlobalDynamicBones.Instance = this;
         return;
     }
 }
Exemplo n.º 4
0
 internal static void OnUpdateDynamics()
 {
     foreach (DynamicBoneSync dynamicBoneSync in GlobalDynamicBones.dynamicBones)
     {
         dynamicBoneSync.active = false;
     }
     GlobalDynamicBones.myColliders = GlobalDynamicBones.GetHandColliders(VRCPlayer.Instance);
     GlobalDynamicBones.myBones     = VRCPlayer.Instance.GetComponentsInChildren <DynamicBone>(true);
     Debug.Log(string.Format("DynamicBoneSync: MyDynamicBones: {0} + MyColliders: {1}", GlobalDynamicBones.myBones.Length, GlobalDynamicBones.myColliders.Length));
 }
Exemplo n.º 5
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.º 6
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;
 }
Exemplo n.º 7
0
 internal void OnDestroy()
 {
     GlobalDynamicBones.OnPlayerDelete(this);
 }