コード例 #1
0
 private void Awake()
 {
     meshParticle      = GetComponent <MeshParticle>();
     bulletsList       = new List <SingleBullet>();
     randomZValueArray = new int[] {
         randomZ,
         randomNegativeZ,
     };
 }
コード例 #2
0
    void Awake()
    {
        // particles = new List<GameObject>();
        ogScale = new Vector3(Particle.transform.localScale.x, Particle.transform.localScale.y, Particle.transform.localScale.z);

        if (!useGravity)
        {
            gravity = 0;
        }
        if (useRandomVelocity)
        {
            rVelocity = Vector3.zero;
        }

        if (particleType == ParticleType.Billboard)
        {
            billboardObject = new GameObject();

            billboardObject.gameObject.name = "Billboard Particle";

            ///// Particle transform setup /////
            billboardObject.transform.rotation   = Quaternion.identity;
            billboardObject.transform.position   = Vector3.zero;
            billboardObject.transform.localScale = new Vector3(1, 1, 1);
            ////////////////////////////////////

            billboardObject.AddComponent <SpriteRenderer>();
            billboardObject.GetComponent <SpriteRenderer>().sprite = particleSprite;
        }
        else if (particleType == ParticleType.MeshParticle)
        {
            if (!Particle.name.ToLower().Contains("particle"))
            {
                Particle.name = Particle.name + " Particle";
            }
        }


        for (int iParticle = 0; iParticle < maxParticles; iParticle++)
        {
            if (particleType == ParticleType.MeshParticle)
            {
                particles.Add(Instantiate(particle));
                try { if (particleMaterial != null)
                      {
                          particles[iParticle].GetComponent <Renderer>().material = particleMaterial;
                      }
                } catch { }

                MeshParticle p = particles[iParticle].AddComponent <MeshParticle>();
                p.Lifetime         = Lifetime;
                p.PossibleVelocity = Velocity;
                p.RandomVelocity   = rVelocity;
                p.UseRotation      = useRotation;
                p.RotationSpeed    = RotationSpeed;
                p.Gravity          = gravity;

                if (useScaleOverLifetime)
                {
                    p.UseScaleOverLife = true;
                    p.ScaleOverLife    = scaleGradient;
                }
                else
                {
                    p.UseScaleOverLife = false;
                }
            }
            else if (particleType == ParticleType.Billboard)
            {
                particles.Add(Instantiate(billboardObject));

                BillboardParticle p = particles[iParticle].AddComponent <BillboardParticle>();
                p.Lifetime         = Lifetime;
                p.PossibleVelocity = Velocity;
                p.RandomVelocity   = rVelocity;
                p.Gravity          = gravity;

                if (useRotation)
                {
                    p.UseRotation   = true;
                    p.RotationSpeed = rotationSpeed.z;
                }

                if (ParticleColor != null)
                {
                    p.ParticleColor = ParticleColor;
                }

                if (useScaleOverLifetime)
                {
                    p.UseScaleOverLife = true;
                    p.ScaleOverLife    = scaleGradient;
                }
                else
                {
                    p.UseScaleOverLife = false;
                }
            }

            particles[iParticle].hideFlags = HideFlags.HideInHierarchy;
            particles[iParticle].transform.SetParent(this.transform);
            particles[iParticle].SetActive(false);
        }

        Destroy(billboardObject);
    }
コード例 #3
0
 private void Awake()
 {
     meshParticle = GetComponent <MeshParticle>();
     dirtList     = new List <SingleDirt>();
 }