/// <summary> /// 技能准备完毕 /// </summary> void OnSkillComplete() { Transform ts = transform.Find("WarningRange"); ts.gameObject.SetActive(false); currStatus = MFishStatus.SKILL; }
/// <summary> /// 侦查圈检测 /// </summary> void DetectionUpdate() { float distance = (targetTrn.position - transform.position).magnitude; if (distance <= SkillRange) { currStatus = MFishStatus.READYSKILL; } else if (distance <= ChaseRange) { currStatus = MFishStatus.CHASE; } else if (currStatus == MFishStatus.CHASE) { currStatus = MFishStatus.SLEEP; } }
/// <summary> /// 侦查圈检测 /// </summary> void DetectionUpdate() { float distance = (Shoal.Instance.transform.position - transform.position).magnitude; if (distance <= SkillRange) { currStatus = MFishStatus.READYSKILL; } else if (distance <= Shoal.Instance.GetCurrentFish().InteractionRanage) { currStatus = MFishStatus.CHASE; } else if (currStatus == MFishStatus.CHASE) { currStatus = MFishStatus.SLEEP; } }
/// <summary> /// 状态检测 /// </summary> void StatusUpdate() { //print("当前状态" + currStatus); switch (currStatus) { case MFishStatus.SLEEP: isChase = false; AllKill(); currStatus = MFishStatus.PATROL; Partol(); break; case MFishStatus.PATROL: isChase = false; DetectionUpdate(); break; case MFishStatus.CHASE: isChase = true; AllKill(); ChaseFish(); break; case MFishStatus.SKILL: isChase = true; currStatus = MFishStatus.SKILLING; AllKill(); UseSkill(); break; case MFishStatus.READYSKILL: isChase = true; currStatus = MFishStatus.SKILLING; AllKill(); ReadySkill(); break; case MFishStatus.SKILLING: // 不可被打断的状态 isChase = true; break; } }
void Start() { currStatus = MFishStatus.CHASE; }
/// <summary> /// 巡逻结束时 /// </summary> private void OnPartolComplete() { currStatus = MFishStatus.SLEEP; OnAttackFinishEvent.Invoke(targetTrn); }
void Start() { currStatus = MFishStatus.SLEEP; isRunning = true; isChase = false; }
/// <summary> /// 巡逻结束时 /// </summary> private void OnPartolComplete() { currStatus = MFishStatus.SLEEP; }