【发布时间】:2017-01-05 04:00:54
【问题描述】:
我有以下脚本:
using UnityEngine;
using System.Collections;
public class BallScript : MonoBehaviour {
public float speed;
private Rigidbody body;
// Use this for initialization
void Start () {
body = GetComponent<Rigidbody> ();
}
// Update is called once per frame
void Update () {
body.AddForce(transform.forward * speed);
}
void OnCollisionEnter(Collision collision) {
Debug.Log("Collision");
Destroy (this);
}
}
您可以看到它有一个OnCollisionEnter,但是我的对象无法与任何东西发生碰撞,而是飞过每个对象?
这是我的prefab:
我试图与之碰撞的对象:
谁能告诉我我做错了什么?
【问题讨论】:
-
为什么你的 Sphere 是触发器?禁用触发器,应该没问题
-
可悲的是这也不起作用:(
-
您可能还想考虑使用
RigidBody.AddForce()或其他物理方法来移动您的对象 - 如果您使用Translate(),它会在不注意物理交互的情况下移动它,并且可能会导致一些错过碰撞。 -
@Serlite 我更新了我的代码,你可以看看。它仍然没有触发碰撞
-
您还应该确保您的刚体不是运动学的,否则它不会进入物理模拟。
标签: unity3d collision-detection