我想要一个简单的圆圈AI跟随我掉下来的一些不可见的游戏对象。转到第一个,然后停止。
我在第二个if语句中放置了一个调试对象,它没有记录日志。我还尝试将第二个if语句更改为else。
using UnityEngine;
using System.Collections;
public class FollowPath : MonoBehaviour
{
public Transform[] target;
public float speed;
private int current = 0;
void Update()
{
if(transform.position != target[current].position)
{
Vector2 pos = Vector2.MoveTowards(transform.position, target[current].position, speed * Time.deltaTime);
GetComponent<Rigidbody2D>().MovePosition(pos);
}
if(transform.position == target[current].position)
{
current++;
Debug.Log("2");
}
}
}
答案 0 :(得分:3)
您几乎从不希望比较游戏中的位置是否相等,而要检查它们是否比合理的较小距离更近。
代替:
if(transform.position == target[current].position)
尝试类似的方法,即根据您认为可接受的条件(在我的示例中为0.01f)来确定您是否“合理地接近”:
if((transform.position - target[current].position).magnitude < 0.01f)