目录
1. OnCollisionEnter(Collision collision)
1.只要挂在的对象 能和别的物体产生碰撞或者触发 那么对应的这6个函数是就能被响应
2.6个函数不是说 我都得写 我们一般时根据需求来进行选择书写
3.如果时一个异型物体。刚体在父对象上,如果你想通过子对象上挂脚本检测是不行的 必须得挂在这个刚体的父对象上
一、如何让两个游戏物体之间产生碰撞
必备条件:至少一个刚体和两个碰撞器
二、物理碰撞检测响应函数
1. OnCollisionEnter(Collision collision)
代码如下(示例):
private void OnCollisionEnter(Collision collision)
{
//Collision类型的参数包含了 碰到自己的对象的相关信息
//关键参数
//1.碰撞到的对象碰撞器的信息
//collision.collider
//2.碰撞对象的依附对象(gameobject)
//collision.gameObject
//3.碰撞对象的依附对象的位置信息
//collision.transform
//4.接触点数相关
//collision.contactCount
//接触点 具体的坐标
//ContactPoint[] pos=collision.contactCount;
print(this.name + "被" + collision.gameObject.name + "碰撞");
//只要得到 了碰撞对象的一个信息,就能得到他的所有信息
}
2.碰撞结束分离时 会自动执行的函数
代码如下(示例):
private void OnCollisionExit(Collision collision)
{
print(this.name + "和" + collision.gameObject.name + "分离");
}
3.两个物体相互摩擦时 会不断执行的函数
private void OnCollisionStay(Collision collision)
{
print(this.name + "被" + collision.gameObject.name + "摩擦");
}
三.触发器检测响应函数
1.触发器的作用是什么
让两个物体碰撞时没有物理效果,只进行碰撞处理
2.触发开始的函数 当第一次接触会自动调用
private void OnTriggerEnter(Collider other)
{
}
3.触发结束的函数 当水乳交融的状态结束时 会调用一次
private void OnTriggerExit(Collider other)
{
}
4.当两个对象 水乳交融时 会不停调用
private void OnTriggerStay(Collider other)
{
}
四. 要明确什么时候会响应函数
1.只要挂在的对象 能和别的物体产生碰撞或者触发 那么对应的这6个函数是就能被响应
2.6个函数不是说 我都得写 我们一般时根据需求来进行选择书写
3.如果时一个异型物体。刚体在父对象上,如果你想通过子对象上挂脚本检测是不行的 必须得挂在这个刚体的父对象上
4.要明确物理碰撞和触发器碰撞响应的区别
总结
例如:本篇文章介绍了unity3d碰撞检测函数的基本使用