/// <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); } }
public void ChangeState(EnumAutoAreach nextState) { mosterInfo.autoAreachState = nextState; }