目标是让一个物体在2D中移动到另一个物体。 所以我有两个物体,一只松鼠和一只苹果。 两个对象都有boxcollider2d和rigidbody2d。 触发器是否未选中 Kinematic是否未经检查。
松鼠有剧本
using UnityEngine;
using System.Collections;
public class moveToApple : MonoBehaviour {
public Transform apple;
public float speed = 5.0f;
void FixedUpdate()
{
transform.position = Vector3.MoveTowards(transform.position, apple.position, speed*Time.deltaTime);
}
}
因此,出于某种原因,当苹果检查了istrigger时,你会看到松鼠移动到苹果。 但如果取消选中触发,松鼠就会消失,但它会与苹果碰撞。
有人可以向我解释为什么会这样吗? 和/或我如何修复它以便松鼠可以移动到苹果,同时可见,而不会被触发检查。
答案 0 :(得分:0)
我刚刚在我的项目中尝试过你的代码并且它正在运行。
确保您的timeScale不是0
在开始时设置timeScale
void Start()
{
Time.timeScale = 1.0f;
}
或尝试删除Time.deltaTime,该时间乘以MoveTowards函数末尾的速度。