Пример #1
0
        private void AnalyzerParticle()
        {
            try
            {
                mParticleInfos.Clear();
                for (int i = 0; i < mParticleSystems.Count; i++)
                {
                    ParticleSystem ps = mParticleSystems[i];

                    if (ps.gameObject.activeSelf == false)
                    {
                        continue;
                    }
                    if (ps.gameObject.GetComponent <ParticleRendererGetEnable>().mEnabled == false)
                    {
                        continue;
                    }
                    RuntimeParticleInfo info = new RuntimeParticleInfo();
                    info.name          = ps.gameObject.name;
                    info.go            = ps.gameObject;
                    info.duration      = ps.duration;
                    info.maxParticles  = ps.maxParticles;
                    info.particleCount = ps.particleCount;
                    mParticleInfos.Add(info);
                }
                SortParticle(sortType);
                Repaint();
            }
            catch (Exception e)
            {
                collectGo();
            }
        }
        private void AnalyzerParticle()
        {
            try
            {
                mParticleInfos.Clear();
                for (int i = 0; i < mParticleSystems.Count; i++)
                {

                    ParticleSystem ps = mParticleSystems[i];

                    if (ps.gameObject.activeSelf == false)
                    {
                        continue;
                    }
                    if (ps.gameObject.GetComponent<ParticleRendererGetEnable>().mEnabled == false)
                    {
                        continue;
                    }
                    RuntimeParticleInfo info = new RuntimeParticleInfo();
                    info.name = ps.gameObject.name;
                    info.go = ps.gameObject;
                    info.duration = ps.duration;
                    info.maxParticles = ps.maxParticles;
                    info.particleCount = ps.particleCount;
                    mParticleInfos.Add(info);

                }
                SortParticle(sortType);
                Repaint();
            }
            catch (Exception e)
            {
                collectGo();
            }
        }
Пример #3
0
        void OnGUI()
        {
            try
            {
                showCnt           = 0;
                startY            = orgStartY;
                mMaxParticleCnt   = 0;
                ParticleSystemCnt = 0;

                for (int i = 0; i < mParticleInfos.Count; i++)
                {
                    RuntimeParticleInfo info = mParticleInfos[i];
                    ParticleSystemCnt++;
                    mMaxParticleCnt += info.particleCount;
                }
                GUILayout.BeginVertical();

                GUILayout.BeginHorizontal();
                if (GUILayout.Button(LanguageCfg.REFRESH, GUILayout.Width(100)))
                {
                    collectGo();
                    AnalyzerParticle();
                }

                totalpageCnt = ParticleSystemCnt % pageCnt > 0 ? ParticleSystemCnt / pageCnt + 1 : ParticleSystemCnt / pageCnt;
                if (GUILayout.Button("Sys " + ParticleSystemCnt + "  ParticleCnt " + mMaxParticleCnt, GUILayout.Width(200)))
                {
                    mLogoutParticleSystemes = !mLogoutParticleSystemes;
                }

                GUILayout.Button((curPage + 1) + "/" + totalpageCnt, GUILayout.Width(100));

                if (GUILayout.Button("上一页", GUILayout.Width(100)))
                {
                    LastPage();
                }

                if (GUILayout.Button("下一页", GUILayout.Width(100)))
                {
                    NextPage();
                }
                GUILayout.EndHorizontal();


                //绘制title
                GUILayout.BeginHorizontal();
                if (GUILayout.Button(LanguageCfg.NAME, GUILayout.Width(150)))
                {
                    sortType = SortType.Name;
                    SortParticle(SortType.Name);
                }
                if (GUILayout.Button(LanguageCfg.PARTICLE_SYS_MAX_DURATION, GUILayout.Width(100)))
                {
                    sortType = SortType.Duration;
                    SortParticle(SortType.Duration);
                }
                if (GUILayout.Button(LanguageCfg.PARTICLE_SYS_MAX_PARTICLES, GUILayout.Width(100)))
                {
                    sortType = SortType.MaxParticles;
                    SortParticle(SortType.MaxParticles);
                }
                if (GUILayout.Button(LanguageCfg.PARTICLE_SYS_CURRENT_CNT, GUILayout.Width(100)))
                {
                    sortType = SortType.ParticleCount;
                    SortParticle(SortType.ParticleCount);
                }
                GUILayout.EndHorizontal();

                if (mLogoutParticleSystemes)
                {
                    GUILayout.BeginVertical();
                    for (int i = 0; i < mParticleInfos.Count; i++)
                    {
                        startCnt = curPage * pageCnt;
                        endCnt   = (curPage + 1) * pageCnt;
                        endCnt   = endCnt >= ParticleSystemCnt ? ParticleSystemCnt : endCnt;


                        if (i < startCnt)
                        {
                            continue;
                        }
                        if (i >= endCnt)
                        {
                            return;
                        }


                        RuntimeParticleInfo info = mParticleInfos[i];

                        GUILayout.BeginHorizontal();
                        if (GUILayout.Button(info.name, GUILayout.Width(150)))
                        {
                            Selection.activeObject = info.go;
                        }

                        GUILayout.Label(info.duration.ToString(), GUILayout.Width(100));
                        GUILayout.Label(info.maxParticles.ToString(), GUILayout.Width(100));
                        GUILayout.Label(info.particleCount + "", GUILayout.Width(100));
                        GUILayout.EndHorizontal();

                        startY += 45;
                        showCnt++;
                    }
                    GUILayout.EndVertical();
                }
                GUILayout.EndVertical();
            }
            catch (Exception e)
            {
                collectGo();
                return;
            }
        }