首页 > 代码库 > Unity物理引擎-刚体碰撞

Unity物理引擎-刚体碰撞

刚体组件:

为对象添加刚体属性并加以某些参数设置可以模拟显示世界的物理效果:

添加:

就是选中物体,在Component中选择物理,选中其中的rigidbody

此时在场景中的被添加了刚体属性的物体就可以按照重力下落了。

具体设置在监视器中设置:

 

可以设置使用恒力作用于物体:

添加以下组件:

 

同样可以使用脚本来进行设置:

通常是在FixedUpdate()函数中设置刚体的受力,作为一个固定时间刷新的内容:

C#脚本如下:

1 void FixedUpdate()2     {3         rigidbody.AddForce(0.0F,10.0F,0.0F);4     }

具体设置可以查找Rigidbody文档等

 

刚体碰撞和消息传递:

创建一个自带的物体的时候会自动设置碰撞其,譬如平面物体的网格碰撞器,球形的碰撞器等等,这些东西会在添加物理属性之后在碰撞发生是时候进行某些反应

 

刚体碰撞中的消息传递:

在OnCollisionEnter函数中就可以设置进入碰撞后的逻辑

如:C#

void OnCollisionEnter(Collider collsion)    {        print(collsion.gameObject);    }

此处collison变量是被碰撞的碰撞体

打印出的是被碰撞的物体类型,

说明在发生碰撞的时候函数接受到了消息并且做出了反应;

 

触发碰撞和消息传递:

每一个碰撞器都有一个这个是否触发的选项,此选项被设置后再次播放场景的时候就不会产生碰撞效果,但是会捕捉到碰撞消息并发送给一个名为OnTriggerEnter的函数执行

就像这样:

void OnTriggerEnter(Collider other)    {        print(other.gameObject);    }

图示:

可以看到左下角输出了所有经过碰撞到的物体 ,主要优势是可以在不影响物体运动的情况下进行碰撞检测;

以上。

Unity物理引擎-刚体碰撞