/// <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;
        }
    }
Exemple #3
0
    /// <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;
        }
    }
Exemple #4
0
    /// <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);
 }
Exemple #7
0
 void Start()
 {
     currStatus = MFishStatus.SLEEP;
     isRunning  = true;
     isChase    = false;
 }
Exemple #8
0
 /// <summary>
 /// 巡逻结束时
 /// </summary>
 private void OnPartolComplete()
 {
     currStatus = MFishStatus.SLEEP;
 }