/// ///////////////////////////////////////////////////////// /// Renderer /// ///////////////////////////////////////////////////////// // Set renderer public void SetParticleRendererDebris(ParticleSystemRenderer rend, RayfireDebris scr) { // Common vars rend.renderMode = ParticleSystemRenderMode.Mesh; rend.alignment = ParticleSystemRenderSpace.World; // Set predefined meshes if (scr.debrisMeshList.Count > 0) { if (scr.debrisMeshList.Count <= 4) { rend.SetMeshes(scr.debrisMeshList.ToArray()); rend.mesh = scr.debrisMeshList[0]; } else { List <Mesh> newList = new List <Mesh>(); for (int i = 0; i < 4; i++) { newList.Add(scr.debrisMeshList[Random.Range(0, scr.debrisMeshList.Count)]); } rend.SetMeshes(newList.ToArray()); rend.mesh = newList[0]; } } // Set material rend.sharedMaterial = scr.debrisMaterial; // Shadow casting rend.shadowCastingMode = scr.rendering.castShadows == true ? UnityEngine.Rendering.ShadowCastingMode.On : UnityEngine.Rendering.ShadowCastingMode.Off; // Shadow receiving rend.receiveShadows = scr.rendering.receiveShadows; }
public void SetParticle() { if (blockType != s_Tile.Contents.TRASH) { mySystem.gameObject.SetActive(false); if (s_GameManager.GetDebug()) { Debug.Log("Setting particle"); } //Byron make notes of any adjustements to particle system unique to each stage so I can get Unity to apply them on a per stage basis ParticleSystemRenderer psr = mySystem.GetComponent <ParticleSystemRenderer>(); Mesh[] m = s_GameManager.Singleton.GetParticleMeshByStage(); psr.SetMeshes(m); mySystem.GetComponent <ParticleSystemRenderer>().material = s_GameManager.Singleton.GetParticleMaterialByStage(); main = mySystem.main; mySystem.gameObject.SetActive(true); //use switch statement below to affect the particle system in other ways such as speed, veloity, etc. switch (s_ChooseGameAndPlayerType.Singleton.GetSelectedStage()) { case s_ChooseGameAndPlayerType.SCENETOLOAD.JCScene: main.startRotationY = 180; main.startSize = 0.08f; break; case s_ChooseGameAndPlayerType.SCENETOLOAD.StageScene: main.startSize = 0.1f; break; case s_ChooseGameAndPlayerType.SCENETOLOAD.LibraryScene: main.startSize = 0.08f; break; case s_ChooseGameAndPlayerType.SCENETOLOAD.SoftballScene: main.startSize = 0.07f; break; case s_ChooseGameAndPlayerType.SCENETOLOAD.StatueScene: main.startSize = 0.1f; break; case s_ChooseGameAndPlayerType.SCENETOLOAD.InsideArtBuilding: Debug.Log("Missing case"); break; default: break; } } else { if (s_GameManager.GetDebug()) { Debug.Log("Particle Counts as trash"); } mySystem.gameObject.SetActive(false); mySystem.GetComponent <ParticleSystemRenderer>().material = s_GameManager.Singleton.m_Trash; ParticleSystemRenderer psr = mySystem.GetComponent <ParticleSystemRenderer>(); Mesh[] m = s_GameManager.Singleton.Trash; psr.SetMeshes(m); mySystem.gameObject.SetActive(true); } }