コード例 #1
0
        private void Start()
        {
            try
            {
                if (instance == null)
                {
                    instance = this;
                }
                else
                {
                    Destroy(gameObject);
                    return;
                }
                terrainmanager = Singleton <TerrainManager> .instance;

                defaultstyle = new FireworkStyle();

                LoadSaved();
                if (!initialized)
                {
                    initialized = true;
                    FireworksUI.Init();
                    ExtractResources();
                    StartCoroutine(LoadResources());
                }
            }
            catch (System.Exception ex)
            {
                LogErr("[startERR]" + ex.ToString() + "  -|-  " + ex.StackTrace);
            }
        }
コード例 #2
0
        FireworkControl CreateFirework(FireworkStyle style, FireworkControlMode mode, Vector3 startpoint, GameObject prefab)
        {
            if (prefab == null)
            {
                LogErr("prefab not loaded");
                return(null);
            }
            GameObject newparticle = Instantiate(prefab);

            newparticle.transform.position = startpoint;

            ParticleSystem mainparticle = newparticle.GetComponent <ParticleSystem>();

            ParticleSystem.MainModule mainm = mainparticle.main;
            mainm.startSpeed    = new ParticleSystem.MinMaxCurve(style.vmin, style.vmax);
            mainm.startColor    = new ParticleSystem.MinMaxGradient(style.color_from, style.color_to);
            mainm.startLifetime = new ParticleSystem.MinMaxCurve(style.vmin / 9.81f, style.vmax / 9.81f);

            ParticleSystem.ShapeModule shapem = mainparticle.shape;
            shapem.angle = style.angle;

            ParticleSystem.SubEmittersModule subm = mainparticle.subEmitters;
            //if (subm.subEmittersCount != 0)
            //{
            //    ParticleSystem subparticle = subm.GetSubEmitterSystem(0);
            //    ParticleSystem.MainModule submainm = subparticle.main;
            //    submainm.startSpeed = new ParticleSystem.MinMaxCurve(style.exp_vel_from, style.exp_vel_to);
            //}

            FireworkControl.MulSize(mainparticle, style.mul_particle_size);
            FireworkControl.MulExpVel(mainparticle, style.mul_exp_vel, false, true);

            FireworkControl control = newparticle.AddComponent <FireworkControl>();

            control.particle = mainparticle;
            control.mode     = mode;

            return(control);

            //mainparticle.Play();
            //Destroy(newparticle, 100);
        }