// Update is called once per frame void Update() { // Debug.Log(target.position); bool findTarget = targetScanner.Detect(transform, player.transform); NowPosition = transform.position; float distance_follow = Vector3.Distance(target.position, OriginPosition); //player与怪物初始位置的距离 float distance_look = Vector3.Distance(target.position, transform.position); //怪物与player的距离 if (findTarget && distance_follow <= followRadius) { anim.SetTrigger("Spotted"); anim.SetBool("Grounded", true); anim.SetBool("InPursuit", true); //if(distance_look<=1.8){ FaceTarget(); agent.SetDestination(target.position); // 追踪目标 //} } else { anim.SetBool("InPursuit", false); agent.SetDestination(OriginPosition);//怪物回到初始位置 Vector3 toBase = OriginPosition - transform.position; toBase.y = 0; anim.SetBool("NearBase", toBase.sqrMagnitude < 2 * 2f); } if ((player.transform.position - this.transform.position).sqrMagnitude < 5) { anim.SetTrigger("Attack"); } }
// Update is called once per frame void Update() { bool findTarget = targetScanner.Detect(transform, player.transform);//扫描目标 NowPosition = transform.position; float distance_follow = Vector3.Distance(target.position, OriginPosition); //player与怪物初始位置的距离 float distance_look = Vector3.Distance(target.position, transform.position); //怪物与player的距离 anim.SetFloat("Attack", distance_look); //Debug.Log(distance_look); if (findTarget && distance_follow <= followRadius) { anim.SetBool("InPursuit", true); agent.SetDestination(target.position);// 追踪目标 Debug.Log(isAttacking); if (distance_look <= stopDistance || isAttacking) { if (faceTarget) { FaceTarget(); } agent.SetDestination(transform.position); } } else { anim.SetBool("InPursuit", false); agent.SetDestination(OriginPosition);//怪物回到初始位置 Vector3 toBase = OriginPosition - transform.position; toBase.y = 0; anim.SetBool("NearBase", toBase.sqrMagnitude < 2 * 2f); } if (playerHealth.isDead) { agent.SetDestination(OriginPosition);//怪物回到初始位置 anim.SetFloat("Attack", 10f); } }
public void ScanTarget() { Target = playerScanner.Detect(this.transform, false); }