コード例 #1
0
        internal int TickEmission(TCParticleSystem system)
        {
            Vector3 curEmitPos = ParticleEmitter.GetEmitPos(system, transform);

            if (m_firstEmit)
            {
                PrevPos     = curEmitPos;
                PrevSpeed   = Vector3.zero;
                m_firstEmit = false;
            }

            if (EmissionType == ParticleEmitter.EmissionMethod.PerSecond)
            {
                m_femit += system.Manager.ParticleTimeDelta * EmissionRate;
            }
            else
            {
                Vector3 pos   = curEmitPos;
                Vector3 delta = pos - PrevPos;
                m_femit += delta.magnitude * EmissionRate;
            }


            int num = Mathf.FloorToInt(m_femit);

            m_femit -= num;

            return(num);
        }
コード例 #2
0
        internal static Vector3 GetEmitPos(TCParticleSystem system, Transform trans)
        {
            Vector3 pos = Vector3.zero;

            switch (system.Manager.SimulationSpace)
            {
            case Space.World:
                pos = trans.position;
                break;

            case Space.Local:
                pos = trans.position - system.transform.position;
                break;

            case Space.Parent:
                pos = trans.localPosition;
                break;
            }

            return(pos);
        }