コード例 #1
0
        /// /////////////////////////////////////////////////////////
        /// 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;
        }
コード例 #2
0
    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);
        }
    }