Example #1
0
    public bool changeToState(eAnimatorState eState)
    {
        if (animator == null)
            return false;
        AnimatorStateInfo stateinfo = animator.GetCurrentAnimatorStateInfo(0);

        int tagHash = stateinfo.tagHash;
        eAnimatorState m_curAnimatorState = (eAnimatorState)DAnimatorState.GetState(tagHash);
        if (m_curAnimatorState == eState && eState == eAnimatorState.arun)
            return true;

        if ((int)eState < (int)m_curAnimatorState)
            return false;

        if (eState != eAnimatorState.await)
        {
            StopAllCoroutines();
            StartCoroutine(changeState(eState));
            return true;
        }
        else if (eState == eAnimatorState.await)
        {
            resetToIdle();
            return true;

        }
        else
            return false;
    }
Example #2
0
    IEnumerator changeState(eAnimatorState state)
    {
        int statehash = DAnimatorState.GetHash(state);
        try
        {
            animator.Play(statehash, 0, 0);
            animator.SetInteger(DAnimatorState.state, (int)state);
        }
        catch (Exception ex)
        {
            Debug.Log(ex.Message);
        }
            yield return null;

            AnimatorStateInfo stateinfo = animator.GetCurrentAnimatorStateInfo(0);

            if (state == eAnimatorState.die)
            {
                animator.SetInteger(DAnimatorState.state, -1);
            }
            else
            {
                while (stateinfo.normalizedTime < 1)
                {
                    yield return null;
                    stateinfo = animator.GetCurrentAnimatorStateInfo(0);
                }
                if (currentState != eAnimatorState.arun)
                    resetToIdle();
            }                
      
    }
Example #3
0
    public void initdata(BeatonData datas)
    {
        eBeatonbackFly = datas.eBeatonbackFly;

        animatorBeatonClip = datas.animatorBeatonClip;

        timeInput.value = datas.beatonTime.ToString();

        if (!string.IsNullOrEmpty(datas.beatonEffUrl))
        {
            string asseturl = UrlManager.GetEffectUrl(datas.beatonEffUrl, EEffectType.Beaton);
            beatonEff = UnityEditor.AssetDatabase.LoadAssetAtPath(asseturl, typeof(GameObject)) as GameObject;
        }
        else
            beatonEff = null;

        actionNameTxt.text = "受击动作:" + DefaultSkillParam.ActionName[animatorBeatonClip];

        beatonBacktxt.text = "击退击飞:" + DefaultSkillParam.beatonBackFly[(int)eBeatonbackFly];

        if (beatonEff != null)
            beatonEfftxt.text = "被击特效:" + beatonEff.name;
        else
            beatonEfftxt.text = "被击特效:无";
    }
Example #4
0
    public static bool IsHitEndState(eAnimatorState eState)
    {
        if (eState == eAnimatorState.beaten
            || eState == eAnimatorState.parry
            || eState == eAnimatorState.up)
            return true;

        return false;
    }
Example #5
0
    public static bool IsLoopState(eAnimatorState eState)
    {
        if (eState == eAnimatorState.await
            || eState == eAnimatorState.wait
            || eState == eAnimatorState.run
            || eState == eAnimatorState.arun
            || eState == eAnimatorState.die
            || eState == eAnimatorState.climb
            || eState == eAnimatorState.skl6)
            return true;

        return false;
    }
Example #6
0
    public static bool IsFallState(eAnimatorState eState)
    {
        if (eState == eAnimatorState.fall_s
            || eState == eAnimatorState.fall
            || eState == eAnimatorState.fall_e)
            return true;

        return false;
    }
Example #7
0
    public static bool IsSklState(eAnimatorState eState)
    {
        if (eState == eAnimatorState.skl0
            || eState == eAnimatorState.skl1
            || eState == eAnimatorState.skl2
            || eState == eAnimatorState.skl3
            || eState == eAnimatorState.skl4
            || eState == eAnimatorState.skl5
            || eState == eAnimatorState.skl6)
            return true;

        return false;
    }
Example #8
0
    public static bool IsAtkState(eAnimatorState eState)
    {
        if (eState == eAnimatorState.atk0
            || eState == eAnimatorState.atk1
            || eState == eAnimatorState.atk2
            || eState == eAnimatorState.atk3)
            return true;

        return false;
    }
Example #9
0
 public static int GetHash(eAnimatorState eState)
 {
     return stateToHash[(int)eState];
 }
Example #10
0
	// Update is called once per frame
	void Update () {

        if (Input.GetKeyDown(KeyCode.Return))
        {
            if (SkillConfiguration.skillsDic.TryGetValue(int.Parse(skillIDText.value),out skilldata))
            {
                skillNameText.value = skilldata.skillName;
                skilltype = skilldata.skilltype;
              //  beatonBackOrFly = skilldata.eBeatonbackFly;
                animatorClip = skilldata.animatorClip;
                skillAttackEffectTimeTxt.value = skilldata.fireTime.ToString();
                moveEffStartTimeInput.value = skilldata.moveBeginTime.ToString();
                harmDisTxt.value = skilldata.harmDist.ToString();
              //  beatonTimeInput.value = skilldata.beatonTime.ToString();
                skillMinDistTxt.value = skilldata.minAttackDist.ToString();

                animatorClip = skilldata.animatorClip;
                fireEffPos = skilldata.fireEffPos;

                isUseMoveEffTgle.value = skilldata.isUseMoveEff;
                isSingleMoveEffTgle.value = skilldata.isSingleMove;

                isNeedAppointTgle.value = skilldata.isNeedAppoint;
                isAttackAllTgle.value = skilldata.isQunGong;

                isShakeCameraTgle.value = skilldata.isShakeCamera;
                shakeTimeInput.value = skilldata.shakeTime.ToString();

                beatonPanelMg.initView(skilldata.beatonDatas);
              //  animatorBeatonClip = skilldata.animatorBeatonClip;

                if (!string.IsNullOrEmpty(skilldata.fireEffUrl))
                {
                    string asseturl = UrlManager.GetEffectUrl(skilldata.fireEffUrl, EEffectType.Attack);
                    attackEffPrefab = AssetDatabase.LoadAssetAtPath(asseturl, typeof(GameObject)) as GameObject;

                }
                else
                    attackEffPrefab = null;
                if (!string.IsNullOrEmpty(skilldata.moveEffUrl))
                {
                    string asseturl = UrlManager.GetEffectUrl(skilldata.moveEffUrl, EEffectType.Move);
                    moveEffPrefab = AssetDatabase.LoadAssetAtPath(asseturl, typeof(GameObject)) as GameObject;
                }
                else
                    moveEffPrefab = null;
                if (!string.IsNullOrEmpty(skilldata.explodeEffUrl))
                {
                    string asseturl = UrlManager.GetEffectUrl(skilldata.explodeEffUrl, EEffectType.Explode);
                    explodeEffPrefab = AssetDatabase.LoadAssetAtPath(asseturl, typeof(GameObject)) as GameObject;
                }
                else
                    explodeEffPrefab = null;
                //if (!string.IsNullOrEmpty(skilldata.beatonEffUrl))
                //{
                //    string asseturl = UrlManager.GetEffectUrl(skilldata.beatonEffUrl, EEffectType.Beaton);
                //    beatonEffPrefab = Resources.LoadAssetAtPath(asseturl, typeof(GameObject)) as GameObject;
                //}
                //else
                //    beatonEffPrefab = null;
            }
            else
            {
                setSkilldata();
            }
        }
        skillTypeTxt.text = "技能类型:" + DefaultSkillParam.skill_type[(int)skilltype];
        //skillDistTypeTxt.text = "攻击距离:" + near_fartype[(int)near_farAtk];

        skillAttackActionTxt.text = "施放动作:" + DefaultSkillParam.ActionName[animatorClip];
        if (attackEffPrefab != null)
            skillAttackEffectTxt.text = "施放特效:" + attackEffPrefab.name;
        else
            skillAttackEffectTxt.text = "施放特效:无";

        skillAttackEffectPosTxt.text = "施放位置:" + DefaultSkillParam.relatePos[(int)fireEffPos];

        if (moveEffPrefab != null)
            moveEffUrlTxt.text = "移动特效:" + moveEffPrefab.name;
        else
            moveEffUrlTxt.text = "移动特效:无";

        if (explodeEffPrefab != null)
            explodeEffUrlTxt.text = "爆炸特效:" + explodeEffPrefab.name;
        else
            explodeEffUrlTxt.text = "移动特效:无";
        
	}
Example #11
0
	// Use this for initialization
	void Start () {       

        animatorClip = eAnimatorState.atk0;
       // animatorBeatonClip = eAnimatorState.beaten;

        skillIDText.value = "1001";
        skillAttackEffectTimeTxt.value = "0.2";
        moveEffStartTimeInput.value = "0.2";
        harmDisTxt.value = "0.2";
        //beatonTimeInput.value = "0.2";
        skillMinDistTxt.value = "1";
        shakeTimeInput.value = "0.8";
        UIEventListener.Get(save_btn).onClick += OnClickSave;
        UIEventListener.Get(look_btn).onClick += OnClickLook;
        UIEventListener.Get(beantEdit_btn).onClick += OnEditBeaton;

	}