Пример #1
0
        public static void SetRendererShow(int id, bool show)
        {
            if (!CheckID(id))
            {
                return;
            }

            Transform trans = GetTransform(id);

            if (!trans)
            {
                return;
            }

            GoObj obj = goList[id];

            if (obj.rendererArr != null)
            {
                for (int i = 0, count = obj.rendererArr.Length; i < count; i++)
                {
                    obj.rendererArr[i].enabled = show;
                }
            }
            else if (obj.smrArr != null)
            {
                for (int i = 0, count = obj.smrArr.Length; i < count; i++)
                {
                    obj.smrArr[i].enabled = show;
                }
            }
        }
Пример #2
0
        public static void SetToStatic(int id)
        {
            GameObject go = GetGameObject(id);

            if (!go)
            {
                return;
            }

            GoObj obj = goList[id];

            obj.temp   = false;
            goList[id] = obj;

            Object.DontDestroyOnLoad(go);
        }
Пример #3
0
        public static void Destroy(int id)
        {
            if (id < 0 || id >= goActive.Count)
            {
                return;
            }

            if (goActive[id] == DEACTIVE)
            {
                return;
            }

            goActive[id] = DEACTIVE;
            indexIdle.Enqueue(id);

            GoObj go = goList[id];

            if (go.go)
            {
                Object.Destroy(go.go);
            }
        }
Пример #4
0
        public static void StoreMeshRenderer(int id, bool force)
        {
            if (!CheckID(id))
            {
                return;
            }

            Transform trans = GetTransform(id);

            if (!trans)
            {
                return;
            }

            GoObj obj = goList[id];

            if (obj.rendererArr == null || force)
            {
                MeshRenderer[] arr = obj.go.GetComponentsInChildren <MeshRenderer>();
                obj.rendererArr = arr;
                goList[id]      = obj;
            }
        }
Пример #5
0
        // 0:off 1:on 2:two side 3:shadow only
        public static void SetCastShadow(int id, int castShadow)
        {
            if (!CheckID(id))
            {
                return;
            }
            if (castShadow < 0 || castShadow > 3)
            {
                return;
            }

            Transform trans = GetTransform(id);

            if (!trans)
            {
                return;
            }

            UnityEngine.Rendering.ShadowCastingMode mode = (UnityEngine.Rendering.ShadowCastingMode)castShadow;

            GoObj obj = goList[id];

            if (obj.rendererArr != null)
            {
                for (int i = 0, count = obj.rendererArr.Length; i < count; i++)
                {
                    obj.rendererArr[i].shadowCastingMode = mode;
                }
            }
            else if (obj.smrArr != null)
            {
                for (int i = 0, count = obj.smrArr.Length; i < count; i++)
                {
                    obj.smrArr[i].shadowCastingMode = mode;
                }
            }
        }
Пример #6
0
        public static int RegisterGameObject(GameObject go, bool temp)
        {
            if (go == null)
            {
                return(-1);
            }

            int index = -1;

            if (indexIdle.Count > 0)
            {
                index = indexIdle.Dequeue();
            }

            GoObj obj = new GoObj();

            obj.go          = go;
            obj.trans       = go.transform;
            obj.smrArr      = null;
            obj.rendererArr = null;
            obj.temp        = temp;

            if (index < 0)
            {
                index = goList.Count;
                goList.Add(obj);
                goActive.Add(ACTIVE);
            }
            else
            {
                goList[index]   = obj;
                goActive[index] = ACTIVE;
            }

            return(index);
        }