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(); } }
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; } }