Пример #1
0
    /// <summary>
    /// 检查前方目标
    /// </summary>
    private void RacastBlock()
    {
        //if (Time.frameCount % 3 != 0)
        //{
        //    return;
        //}

        bool isBalck = Physics.Raycast(transform.position, transform.forward, out raycastHit, ReduceDistance) ||
                       Physics.Raycast(transform.position, Quaternion.AngleAxis(45, Vector3.up) * transform.forward,
                                       out raycastHit, ReduceDistance) ||
                       Physics.Raycast(transform.position, Quaternion.AngleAxis(-45, Vector3.up) * transform.forward,
                                       out raycastHit, ReduceDistance);

        Debug.DrawRay(transform.position, transform.forward, Color.red);

        if (!isBalck)
        {
            return;
        }

        if (raycastHit.transform != mosterInfo.target)
        {
            lastState = mosterInfo.autoAreachState;
            evadeObj  = raycastHit.transform;
            ChangeState(EnumAutoAreach.Evade);
        }
    }
Пример #2
0
 public void ChangeState(EnumAutoAreach nextState)
 {
     mosterInfo.autoAreachState = nextState;
 }