void delayCall() { ParticlePrefabCache cache; if (!prefabCaches.TryGetValue(transCache.GetInstanceID(), out cache)) { cache = new ParticlePrefabCache(); cache.renderCache.AddRange(transCache.GetComponentsInChildren <Renderer>(true)); prefabCaches.Add(transCache.GetInstanceID(), cache); } for (int j = 0; j < cache.renderCache.Count; j++) { cache.renderCache[j].material.renderQueue = renderQ; } }
void SetPrefabInfo() { if (spawnedGoes == null) { return; } for (int i = 0; i < spawnedGoes.Count; ++i) { var go = spawnedGoes[i]; if (go == null) { continue; } go.SetActive(true); var trans = go.transform; //NGUITools.SetLayer(go, effectLayer); ParticlePrefabCache cache; if (!prefabCaches.TryGetValue(go.GetInstanceID(), out cache)) { cache = new ParticlePrefabCache(); cache.psCache.AddRange(trans.GetComponentsInChildren <ParticleSystem>(true)); cache.renderCache.AddRange(trans.GetComponentsInChildren <Renderer>(true)); cache.psrCache.AddRange(trans.GetComponentsInChildren <ParticleSystemRenderer>(true)); prefabCaches.Add(go.GetInstanceID(), cache); for (int k = 0; k < cache.renderCache.Count; k++) { cache.shaderNameCache.Add(cache.renderCache[k].material.shader.name); } } for (int k = 0; k < cache.psCache.Count; k++) { cache.psCache[k].transform.localScale = Vector3.one; } if (renderQ > 0) { //UIRoot uiRoot = NGUITools.GetRoot(gameObject).GetComponent<UIRoot>(); //if (!uiRoot) continue; //for (int k = 0; k < cache.psCache.Count; k++) //{ // cache.psCache[k].transform.localScale = uiRoot.transform.localScale * scaleFactor; //} for (int j = 0; j < cache.renderCache.Count; j++) { if (changeToClipShader) { cache.renderCache[j].material.shader = Shader.Find("Custom/Particle Texture Area Clip"); } else { cache.renderCache[j].material.shader = Shader.Find(cache.shaderNameCache[j]); } cache.renderCache[j].material.renderQueue = renderQ; if (gameObject.layer == LayerMask.NameToLayer("UI")) { cache.renderCache[j].gameObject.layer = LayerMask.NameToLayer("UI"); } else { cache.renderCache[j].gameObject.layer = LayerMask.NameToLayer("UIModel"); } } for (int j = 0; j < cache.psrCache.Count; ++j) { if (cache.psrCache[j].sortingOrder > 0) { cache.psrCache[j].sortingFudge = cache.psrCache[j].sortingOrder * -100; cache.psrCache[j].sortingOrder = 0; } } } } Done = true; }