我有以下脚本:
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
:
我试图碰撞的对象:
谁能告诉我我做错了什么?
答案 0 :(得分:2)
如果您想使用isTrigger
,则需要检查与OnTriggerEnter
的碰撞。如果您想使用OnCollisionEnter
尝试使用rigidBody
(针对性能)标记向多维数据集添加is kinematic
,请从球体中禁用is trigger
,看看是否有效
检查方法的不同之处:
https://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.html https://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
此致