Exemplo n.º 1
0
    public float GetCurrentAttackEvent(eAnimationEvent evt, int layer = 0)
    {
        AnimationClip clip = _animController.GetPrimaryAnimationClip(layer);

        if (clip == null)
        {
            return(1.0f);
        }

        string            animName     = clip.name;
        AnimationMetadata animMetadata = AnimationMetadataCatalog.Instance.GetAnimationMetadata(animName);
        float             attackTime;

        if (animMetadata == null)
        {
            EB.Debug.LogWarning("Failed to find animation metadata for {0}. Did you forget to reload it?", animName);
            attackTime = clip.length;
        }
        else
        {
            attackTime = animMetadata.GetEventTime(evt);
            if (animMetadata.GetEventTime(eAnimationEvent.Hit) == -1)
            {
                //Not an attack animation, don't scale it.
                return(1.0f);
            }
            if (attackTime == -1)
            {
                attackTime = clip.length;
            }
        }

        return(attackTime);
    }
Exemplo n.º 2
0
    public void AddMetadata(AnimationMetadata metadata)
    {
        bool found = false;

        for (int i = 0; i < _allMetadata.Count; i++)
        {
            if (_allMetadata[i].name == metadata.name)
            {
                _allMetadata[i] = metadata;
                found           = true;
            }
        }

        if (!found)
        {
            _allMetadata.Add(metadata);
        }
    }