目录
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碰撞检测函数的基本使用
本文介绍了Unity3D中实现游戏物体碰撞的方法,包括至少需要一个刚体和两个碰撞器。详细讲解了物理碰撞检测的三个响应函数OnCollisionEnter、OnCollisionStay和OnCollisionExit,以及触发器检测的OnTriggerEnter、OnTriggerStay和OnTriggerExit的使用。每个函数都有其特定的执行时机,如OnCollisionEnter在碰撞开始时调用,OnTriggerExit在触发结束时调用。文章强调了选择合适函数的重要性以及物理碰撞和触发器碰撞的区别。
1258





