예제 #1
0
    // Methods

    protected void Finish()
    {
        OnStop();

        if (m_AnimCompletedCallback != null)
        {
            m_AnimCompletedCallback();
            m_AnimCompletedCallback = null;
        }

        m_IsPlaying = false;
    }
예제 #2
0
    public void Play(AnimCompletedCallback i_AnimCompletedCallback = null, AnimEventCallback i_AnimEventCallback = null)
    {
        if (m_IsPlaying)
        {
            return;
        }

        m_IsPlaying             = true;
        m_AnimCompletedCallback = i_AnimCompletedCallback;

        OnPlay(i_AnimEventCallback);
        NotifyPlay(i_AnimEventCallback);
    }
예제 #3
0
    void OnDisable()
    {
        if (!m_IsPlaying)
        {
            return;
        }

        OnStop();

        m_TargetTransform       = null;
        m_FollowTransform       = false;
        m_AnimCompletedCallback = null;
        m_IsPlaying             = false;
    }
예제 #4
0
    public void Stop()
    {
        if (!m_IsPlaying)
        {
            return;
        }

        NotifyStop();
        OnStop();

        m_TargetTransform       = null;
        m_FollowTransform       = false;
        m_AnimCompletedCallback = null;
        m_IsPlaying             = false;
    }
예제 #5
0
 public static Effect PlayEffect2D(Effect i_Prefab, Vector2 i_WorldPosition, float i_WorldRotation, AnimCompletedCallback i_CompletedCallback = null)
 {
     return(PlayEffect2D(i_Prefab, i_WorldPosition, i_WorldRotation, null, i_CompletedCallback));
 }
예제 #6
0
 public static ParticleEffect PlayParticleEffect(ParticleEffect i_Prefab, uint i_Seed, Vector3 i_WorldPosition, Quaternion i_WorldRotation, AnimCompletedCallback i_CompletedCallback = null)
 {
     return(PlayParticleEffect(i_Prefab, i_Seed, i_WorldPosition, i_WorldRotation, null, i_CompletedCallback));
 }
예제 #7
0
    public static ParticleEffect PlayParticleEffect(ParticleEffect i_Prefab, uint i_Seed, Vector3 i_WorldPosition, Quaternion i_WorldRotation, Transform i_Anchor, AnimCompletedCallback i_CompletedCallback = null)
    {
        if (i_Prefab == null)
        {
            if (i_CompletedCallback != null)
            {
                i_CompletedCallback();
            }

            return(null);
        }

        ParticleEffect instance = ObjectPool.SpawnMain <ParticleEffect>(i_Prefab);

        instance.SetParticleSeed(i_Seed);

        instance.SetTargetTransform(i_WorldPosition, i_WorldRotation, i_Anchor);
        instance.Play(i_CompletedCallback);

        return(instance);
    }
예제 #8
0
 public static Effect PlayEffect(Effect i_Prefab, Vector3 i_WorldPosition, Quaternion i_WorldRotation, AnimCompletedCallback i_CompletedCallback = null)
 {
     return(PlayEffect(i_Prefab, i_WorldPosition, i_WorldRotation, null, i_CompletedCallback));
 }
예제 #9
0
    public static Effect PlayEffect(Effect i_Prefab, Vector3 i_WorldPostion, Quaternion i_WorldRotation, Transform i_Anchor, AnimCompletedCallback i_CompletedCallback = null)
    {
        if (i_Prefab == null)
        {
            if (i_CompletedCallback != null)
            {
                i_CompletedCallback();
            }

            return(null);
        }

        Effect instance = ObjectPool.SpawnMain <Effect>(i_Prefab);

        instance.SetTargetTransform(i_WorldPostion, i_WorldRotation, i_Anchor);
        instance.Play(i_CompletedCallback);

        return(instance);
    }
예제 #10
0
    public static Effect PlayRadialEffect2D(Effect i_Prefab, Vector2 i_WorldCenter, Vector2 i_Direction, float i_Radius, Transform i_Anchor, AnimCompletedCallback i_CompletedCallback = null)
    {
        if (i_Direction.sqrMagnitude > Mathf.Epsilon)
        {
            i_Direction.Normalize();
        }
        else
        {
            i_Direction = Vector2.up;
        }

        Vector2    worldPosition = i_WorldCenter + i_Direction * i_Radius;
        Quaternion worldRotation = Quaternion.FromToRotation(Vector2.up, i_Direction);

        return(PlayEffect(i_Prefab, worldPosition, worldRotation, i_Anchor, i_CompletedCallback));
    }
예제 #11
0
    public static ParticleEffect PlayParticleEffect2D(ParticleEffect i_Prefab, uint i_Seed, Vector2 i_WorldPosition, float i_WorldRotation, Transform i_Anchor, AnimCompletedCallback i_CompletedCallback = null)
    {
        Vector3    worldPosition = new Vector3(i_WorldPosition.x, i_WorldPosition.y, 0f);
        Quaternion worldRotation = Quaternion.AngleAxis(i_WorldRotation, Vector3.up);

        return(PlayParticleEffect(i_Prefab, i_Seed, worldPosition, worldRotation, i_Anchor, i_CompletedCallback));
    }
예제 #12
0
 public static Effect PlayRadialEffect2D(Effect i_Prefab, Vector2 i_WorldCenter, Vector2 i_Direction, float i_Radius, AnimCompletedCallback i_CompletedCallback = null)
 {
     return(PlayRadialEffect2D(i_Prefab, i_WorldCenter, i_Direction, i_Radius, null, i_CompletedCallback));
 }
    // INTERNALS

    private void InternalPlayEffect(Transform i_Parent, Vector3 i_Position, Quaternion i_Rotation, AnimCompletedCallback i_AnimCompletedCallback = null, AnimEventCallback i_AnimEventCallback = null)
    {
        if (effect == null)
        {
            return;
        }

        Effect currentEffect = effect.Spawn <Effect>(i_Parent, i_Position, i_Rotation);

        spawnedEffect.Add(currentEffect);

        currentEffect.Play(i_AnimCompletedCallback, i_AnimEventCallback);
    }
 public void PlayEffect(AnimCompletedCallback i_AnimCompletedCallback = null, AnimEventCallback i_AnimEventCallback = null)
 {
     InternalPlayEffect(null, Vector3.zero, Quaternion.identity, i_AnimCompletedCallback, i_AnimEventCallback);
 }
 public void PlayEffect(Transform i_Parent, Vector3 i_Position, AnimCompletedCallback i_AnimCompletedCallback = null, AnimEventCallback i_AnimEventCallback = null)
 {
     InternalPlayEffect(i_Parent, i_Position, Quaternion.identity, i_AnimCompletedCallback, i_AnimEventCallback);
 }
 public void PlayEffect(Vector3 i_Position, Quaternion i_Rotation, AnimCompletedCallback i_AnimCompletedCallback = null, AnimEventCallback i_AnimEventCallback = null)
 {
     InternalPlayEffect(null, i_Position, i_Rotation, i_AnimCompletedCallback, i_AnimEventCallback);
 }