Пример #1
0
        void ApplyRotationAndScale(ref EffekseerHandle handle)
        {
            handle.SetRotation(transform.rotation);

            if (EmitterScale == EffekseerEmitterScale.Local)
            {
                handle.SetScale(transform.localScale);
            }
            else if (EmitterScale == EffekseerEmitterScale.Global)
            {
                handle.SetScale(transform.lossyScale);
            }
        }
Пример #2
0
        // Called each frame while the state is set to Play
        public override void PrepareFrame(Playable playable, FrameData info)
        {
            double time        = playable.GetTime();
            double elapsedTime = time - this.lastFrameTime;

            this.lastFrameTime = time;

            if (!Application.isPlaying)
            {
                if (elapsedTime < 0.0)
                {
                    StopEffect();
                    PlayEffect();
                    elapsedTime = time;
                }
            }

            if (!handle.enabled)
            {
                return;
            }

            if (emitterObject)
            {
                handle.SetLocation(emitterObject.transform.position);
                handle.SetRotation(emitterObject.transform.rotation);
                handle.SetScale(emitterObject.transform.localScale);
            }
            if (targetObject)
            {
                handle.SetTargetLocation(targetObject.transform.position);
            }

            if (!Application.isPlaying)
            {
                double frames = elapsedTime * 60.0f;
                for (int i = 0; i < frames; i++)
                {
                    handle.UpdateHandle(1.0f);
                }
            }
        }