对象发生碰撞但未出现在屏幕上

时间:2014-03-18 03:17:51

标签: c# unity3d collision

目标是让一个物体在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时,你会看到松鼠移动到苹果。 但如果取消选中触发,松鼠就会消失,但它会与苹果碰撞。

有人可以向我解释为什么会这样吗? 和/或我如何修复它以便松鼠可以移动到苹果,同时可见,而不会被触发检查。

1 个答案:

答案 0 :(得分:0)

我刚刚在我的项目中尝试过你的代码并且它正在运行。

确保您的timeScale不是0

在开始时设置timeScale

void Start()
{
    Time.timeScale = 1.0f;
}

或尝试删除Time.deltaTime,该时间乘以MoveTowards函数末尾的速度。