예제 #1
0
        public void ProcessLastMultiTag(MultiTagBase tag)
        {
            List <MeshRenderer> renderers = new List <MeshRenderer>();

            GameObject go = tag.gameObject;

            var count = go.transform.childCount;

            for (int i = 0; i < count; i++)
            {
                var child = go.transform.GetChild(i);

                var renderer = child.GetComponent <MeshRenderer>();

                if (Util.IsValidOCRenderer(renderer))
                {
                    List <MeshRenderer> lodRenderers = new List <MeshRenderer>();
                    if (IsLodMesh(renderer, lodRenderers))
                    {
                        foreach (var r in lodRenderers)
                        {
                            if (Util.IsValidOCRenderer(r))
                            {
                                Util.TryAdd(r, renderers);
                            }
                        }
                    }
                    else
                    {
                        Util.TryAdd(renderer, renderers);
                    }
                }
            }

            if (renderers.Count > 0)
            {
                renderableSet.Add(renderers);
                tag.renderId = curMultiTagID;
                curMultiTagID++;

                tag.sceneName = Name;
#if UNITY_EDITOR
                EditorUtility.SetDirty(tag);
#endif
            }
        }
예제 #2
0
        void checkObjectVisible(GameObject obj, StreamingObject data)
        {
            string qualityName = GameSettingUtility.GetQualityName();
            var    allMaps     = SingletonManager.Get <MapsDescription>();

            if (allMaps.CurrentLevelType != LevelType.BigMap)
            {
                return;
            }
            MultiTagBase mul = obj.GetComponentInChildren <MultiTagBase>();

            if (mul == null)
            {
                return;
            }

            if (mul.btags[(int)MultiTagBase.TagEnum.House])
            {
                return;
            }

            mul.importantLevel = data.importantLevel;
            SceneConfig config = allMaps.BigMapParameters;

            if (config.PreMapName != "004")
            {
                return;
            }


            int level = 0;

            //TEST Code

            /*
             * int level = 0;
             * if(qualitDic.Count <= 0)
             * {
             *  qualitDic.Add("QL_Low", 0);
             *  qualitDic.Add("QL_MediumLow", 1);
             *  qualitDic.Add("QL_Medium", 2);
             *  qualitDic.Add("QL_MediumHigh", 3);
             *  qualitDic.Add("QL_High", 4);
             * }
             *
             * if(!qualitDic.ContainsKey(qualityName))
             * {
             *  return;
             * }
             *
             * level = qualitDic[qualityName];
             */
            if (mul.importantLevel <= level)
            {
                obj.SetActive(true);
            }
            else
            {
                obj.SetActive(false);
            }
        }