/// <summary>
        /// Find all objects that are relevant for WIM
        /// </summary>
        /// <returns></returns>
        private MeshRenderer[] FindMeshRenderers()
        {
            // disable the avatar objects to avoid cloning during WIM refresh!
            if (CurrentAvatar)
            {
                CurrentAvatar.SetActive(false);
                CurrentShadowAvatar.SetActive(false);
            }

            MeshRenderer[] meshRenderer = FindObjectsOfType <MeshRenderer>().Where(
                m => m.gameObject != null &&
                m.gameObject.activeInHierarchy &&
                m.gameObject.activeSelf &&
                m.GetComponent <Collider>() != null &&
                m.GetComponent <VRIL_WIMObject>() == null &&
                (checkWIMIgnores ? m.GetComponent <VRIL_WIMIgnore>() == null : true) &&
                Array.IndexOf(RegisteredControllers.ToArray(), m.gameObject) < 0 &&
                (m.gameObject.GetInstanceID() != HitEntity.gameObject.GetInstanceID()) &&
                (m.bounds.size.x >= ObjectTresholdX || m.bounds.size.y >= ObjectTresholdY ||
                 m.bounds.size.z >= ObjectTresholdZ)).ToArray();

            if (CurrentAvatar)
            {
                CurrentAvatar.SetActive(true);
                CurrentShadowAvatar.SetActive(true);
            }

            return(meshRenderer);
        }
Beispiel #2
0
        public void RegisterController(string name, Type type)
        {
            Console.WriteLine($"Registering controller '{name}'...");

            if (RegisteredControllers == null)
            {
                RegisteredControllers = new List <ControllerRegister>();
            }
            RegisteredControllers.Add(new ControllerRegister()
            {
                Name = name, Type = type
            });
        }