【发布时间】:2017-01-17 09:33:21
【问题描述】:
你好,我正在尝试为我的角色创建一个 AI,但它不起作用 我希望它在视线中拍摄我的角色,但它只是在场景中徘徊而不是拍摄 甚至我的 debug.log 都不起作用
public Transform[] Targets;
private int DestPoint = 0;
private NavMeshAgent Agent;
public Transform Player;
public Rigidbody Bullet;
public Transform Instantiator;
void Start()
{
Agent = GetComponent<NavMeshAgent> ();
Agent.autoBraking = false;
}
void Update()
{
if (Vector3.Distance(transform.position, Player.position) < 30f)
{
Debug.Log ("Shoot");
transform.LookAt (Player);
Shoot ();
}
else if (Vector3.Distance(transform.position, Player.position) > 30f)
{
GotoNextPoint ();
}
}
void GotoNextPoint()
{
Agent.destination = Targets [DestPoint].position;
DestPoint = (DestPoint + 1) % Targets.Length;
}
void Shoot()
{
Rigidbody Clone = Instantiate (Bullet, Instantiator.position, Instantiator.rotation) as Rigidbody;
Clone.AddForce (Vector3.forward);
}
【问题讨论】:
-
如果 debug.log 不起作用,那么
Vector3.Distance(transform.position, Player.position)永远不会小于 30。debug.log 距离if之前的距离,看看会发生什么
标签: unity3d artificial-intelligence