【发布时间】:2017-05-25 18:09:47
【问题描述】:
嗨,我想创造的是玩家可以右键点击一个敌人,他会跟随一定距离。这工作正常。但我也希望它也停在那个距离上。目前,如果敌人停下来,他会尝试前往其确切位置,而不是稍微停下来,这就是我目前所拥有的。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class Attacking : MonoBehaviour {
NavMeshAgent agent;
Transform target;
public float distance;
public float followDistance;
// Use this for initialization
void Start () {
agent = GetComponent<NavMeshAgent>();
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButton(0))
{
target = null;
}
if (Input.GetMouseButton(1))
{
RaycastHit hit;
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100))
{
if (hit.collider.gameObject.tag == "enemy" || hit.collider.gameObject.tag == "Player")
{
target = hit.collider.transform;
}
}
}
if(target != null)
{
distance = Vector3.Distance(transform.position, target.position);
if (followDistance <= distance)
agent.destination = target.position;
}
}
}
【问题讨论】:
-
您知道 NavMeshAgent 组件实际上允许您指定停止距离吗?
-
这会影响一切,即使是正常运动。我想要的只是靠近敌人时的距离
-
当距离到达代理停止并重置路径