示例#1
0
    /// <summary>
    /// 播放动画.
    /// </summary>
    public static void PlayAnimation(BattleUnit owner, string aniName, bool loop = false, ClientBehaviourIdContainer cont = null)
    {
        if (cont != null && cont.roleAnimationHashCode != 0)
        {
            owner.GetStateController().FinishCurrentState(cont.roleAnimationHashCode);
            cont.roleAnimationHashCode = 0;
        }

        if (!string.IsNullOrEmpty(aniName))
        {
            string animationName = owner.CombineAnimname(aniName);
            int    hashCode      = 0;
            if (owner.GetStateController().AnimSet != null)
            {
                hashCode = owner.GetStateController().AnimSet.GetStateHash(animationName);
            }

            if (hashCode != 0)
            {
                AnimActionUseSkill skillAction = AnimActionFactory.Create(AnimActionFactory.E_Type.UseSkill) as AnimActionUseSkill;
                skillAction.AnimName = animationName;

                skillAction.loop = loop;
                owner.GetStateController().DoAction(skillAction);

                // 动作无论循环与否, 都保存ID.
                if (cont != null)
                {
                    cont.roleAnimationHashCode = hashCode;
                }
            }
        }
    }
示例#2
0
    /// <summary>
    /// 播放武器动画.
    /// </summary>
    public static void PlayWeaponAnimation(BattleUnit owner, string aniName, bool loop = false, ClientBehaviourIdContainer cont = null)
    {
        if (!string.IsNullOrEmpty(aniName))
        {
            AnimActionUseSkill skillAction = AnimActionFactory.Create(AnimActionFactory.E_Type.UseSkill) as AnimActionUseSkill;
            skillAction.loop = loop;
            owner.PlayWeaponAnim(AnimationNameDef.WeaponPrefix + aniName);

            if (cont != null)
            {
                cont.weaponAnimation = 1;
            }
        }
    }
示例#3
0
    public void btnPlayAnimation()
    {
        //AnimAction action = AnimActionFactory.Create(AnimActionFactory.E_Type.Idle);
        //player.GetAnimFSM().DoAction(action);


        //AnimActionPlayAnim animAction = AnimActionFactory.Create(AnimActionFactory.E_Type.PlayAnim) as AnimActionPlayAnim;
        //animAction.AnimName = "Base Layer.die01";
        //player.GetAnimFSM().DoAction(animAction);

        AnimActionUseSkill animAction = AnimActionFactory.Create(AnimActionFactory.E_Type.UseSkill) as AnimActionUseSkill;

        animAction.AnimName = "pingchi.huandan";
        player.GetStateController().DoAction(animAction);
        //player.GetAnimFSM().DoAction(animAction);
    }
示例#4
0
    public static AnimAction Create(E_Type type)
    {
        AnimAction action;
        int        index = (int)type;

        if (m_UnusedActions[index].Count > 0)
        {
            action = m_UnusedActions[index].Dequeue();
        }
        else
        {
            switch (type)
            {
            case E_Type.Idle:
                action = new AnimActionIdle();
                break;

            case E_Type.PlayAnim:
                action = new AnimActionPlayAnim();
                break;

            case E_Type.Move:
                action = new AnimActionMove();
                break;

            case E_Type.UseSkill:
                action = new AnimActionUseSkill();
                break;

            case E_Type.Death:
                action = new AnimActionDeath();
                break;

            case E_Type.Hurt:
                action = new AnimActionHurt();
                break;

            default:
                Debug.LogError("no AgentAction to create");
                return(null);
            }
        }
        action.Reset();
        action.SetActive();
        return(action);
    }
示例#5
0
    private void OnBegin()
    {
        AnimActionUseSkill skillAction = AnimActionFactory.Create(AnimActionFactory.E_Type.UseSkill) as AnimActionUseSkill;

        skillAction.AnimName = mOwner.CombineAnimname("%huandan");
        if (mOwner.GetStateController().AnimSet != null)
        {
            mReloadAnimationHashCode = mOwner.GetStateController().AnimSet.GetStateHash(skillAction.AnimName);
        }
        mOwner.GetStateController().DoAction(skillAction);

        mOwner.PlayWeaponAnim(AnimationNameDef.WeaponDefault);
        if (mOwner is Player || ((mOwner is Ghost) && (mOwner as Ghost).IsMainPlayer()))
        {
            ReloadEvent evt = new ReloadEvent(ReloadEvent.RELOAD_EVENT);
            evt.reload_time = mReloadTime;
            EventSystem.Instance.PushEvent(evt);
        }
    }