https://blog.csdn.net/qq_35373690/article/details/86695000
一:碰撞检测的最低限制条件
1.双方必须有碰撞核(Colider)。
2.有一方必须有物理特性(Rigibody)
举例:假如是2D物体 ,连个2D 物体都有碰撞核(BoxColider2D),一方有刚体(Rigibod2yD)
3D 物体碰撞核(BoxColider)和刚体(Rigibody)和2D 的不能混着用
二:碰撞检测有两种
1.有碰撞检测有物理特性 ,(图1),(图2)是场景中的两个物体,还有脚本挂入方式,如下:
图(1)
图(2)
脚本代码
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start () {
}
private void OnCollisionEnter(Collision collision)
{
//碰撞开始
Debug.Log("碰撞开始");
}
private void OnCollisionExit(Collision collision)
{
Debug.Log("碰撞结束");
}
private void OnCollisionStay(Collision collision)
{
Debug.Log("碰撞中");
}
// Update is called once per frame
void Update () {
}
}
运行结果:
2.带有物体特性碰撞没有物理特性
操作同上述相同就是把图(1) 的 IsTrigger 打个勾 ,即可
代码如下:
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
void Start () {
}
private void OnTriggerEnter(Collider other)
{
Debug.Log("碰撞开始");
}
private void OnTriggerExit(Collider other)
{
Debug.Log("碰撞结束");
}
private void OnTriggerStay(Collider other)
{
Debug.Log("碰撞中");
}
// Update is called once per frame
void Update () {
}
}