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; }
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(); } }
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 = "被击特效:无"; }
public static bool IsHitEndState(eAnimatorState eState) { if (eState == eAnimatorState.beaten || eState == eAnimatorState.parry || eState == eAnimatorState.up) return true; return false; }
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; }
public static bool IsFallState(eAnimatorState eState) { if (eState == eAnimatorState.fall_s || eState == eAnimatorState.fall || eState == eAnimatorState.fall_e) return true; return false; }
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; }
public static bool IsAtkState(eAnimatorState eState) { if (eState == eAnimatorState.atk0 || eState == eAnimatorState.atk1 || eState == eAnimatorState.atk2 || eState == eAnimatorState.atk3) return true; return false; }
public static int GetHash(eAnimatorState eState) { return stateToHash[(int)eState]; }
// 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 = "移动特效:无"; }
// 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; }