【发布时间】:2016-11-15 10:45:06
【问题描述】:
我在 3D 环境中工作,这是一栋有 16 个房间的房子。在每个房间中,我放置了一个带有名为“RoomsToScanTag”标签的隐形立方体。我正在使用一个名为 Behavior Designer 的资产,在我的检查器中,我给出了要查找的标记名(在本例中为“RoomsToScanTag”)。有了这个标记名,我希望机器人先去 room1,然后继续去 room2,直到 room16。
这是我的代码
using UnityEngine;
using BehaviorDesigner.Runtime;
using BehaviorDesigner.Runtime.Tasks;
public class MoveTowardsNew : Action
{
private Transform[] roomsToScanHAHA;
public string targetTagRooms;
public Transform targetyo;
int i = 0;
int controlNumber = 0;
public override void OnAwake()
{
var targets = GameObject.FindGameObjectsWithTag (targetTagRooms);
roomsToScanHAHA = new Transform[targets.Length];
for (int i = 0; i < targets.Length; i++) {
roomsToScanHAHA [i] = targets [i].transform;
}
}
public override TaskStatus OnUpdate()
{
while (controlNumber < roomsToScanHAHA.Length)
{
targetyo = roomsToScanHAHA [controlNumber];
if (Vector3.SqrMagnitude (transform.position - targetyo.position) < 0.5f)
{
if (controlNumber < roomsToScanHAHA.Length) {
controlNumber++;
}
return TaskStatus.Success;
}
}
NavMeshAgent agent = GetComponent<NavMeshAgent> ();
agent.destination = targetyo.position;
return TaskStatus.Running;
}
}
我的问题
Unity 崩溃...它与这段代码有关,我无法弄清楚。有人知道出了什么问题吗?
这是我正在处理的图像:
提前致谢!
【问题讨论】: