unity3d游戏开发之物理引擎Word格式.docx
- 文档编号:18453886
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:9
- 大小:1.08MB
unity3d游戏开发之物理引擎Word格式.docx
《unity3d游戏开发之物理引擎Word格式.docx》由会员分享,可在线阅读,更多相关《unity3d游戏开发之物理引擎Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
运行后可以发现,添加了刚体的红色cube感应到了物理效应,会从空中落下。
而蓝色cube依然是静止不动的
可以看到Inspector可以看到Rigidbody包含的属性,简单的看下几个属性的含义,详细的可以看手册
力
力是物理学中一个非常重要的元素,其种类有很多,刚体组件可以受力的作用,比如给刚体施加一个X轴方向的力,那么该刚体绑定的物体将沿X轴方向向前移动,这就好比用力将物体仍出去一样,该物体会以抛物线的形式移动,而不是呆板的做匀速平移。
力的方式有两种
1:
普通力,通过设定里的方向和大小,相当于把力施加在物体的重心上。
2:
位置力,需要设定目标点的位置,该物体就朝向这个目标位置施加力。
AddForce和AddForceAtPosition
还是拿之前的那个列子做演示。
在Hierarchy视图中创建两个Sphere,红色的添加普通力,白色的添加位置力
红色Cube当作位置力的目标对象。
即向该位置发射一个位置力
创建脚本。
定义三个变量:
public
GameObjectwhiteSph;
//白色球体施加普通力的对象
GameObjectredSph;
//红色球体施加目标位置力的对象
GameObjecttargetPos;
//目标对象
GUI绘制两个Button,分别控制“普通力”和“位置力”逻辑代码
void
OnGUI()
{
if
(GUILayout.Button("
普通力"
))
{
redSph.rigidbody.AddForce(0,1000,0);
//Y轴上力的大小为1000。
即向上
}
if
位置力"
//算出whiteSph到targetPos的目标向量
Vector3c=targetPos.transform.position-whiteSph.transform.position;
//在c位置施加一个位置力,targetPos将会向这个位置移动
whiteSph.rigidbody.AddForceAtPosition(c,targetPos.transform.position,ForceMode.Impulse);
}
}
3:
脚本挂载到Camera上。
给变量拖拽赋值。
运行看效果.
运行游戏,刚体会受物理效应会往下落
当单击普通力。
红色球体会往天空弹起,因为它有刚体。
最终还是外往下落。
当单击位置力。
白色球体会朝着红色方块位置添加力。
最终移动到这个位置。
当改变红色cube坐标后。
目标位置也跟着移动。
说了这么多。
那AddForce和AddForceAtPosition到底有什么区别呢?
我也是跟着学。
跟着看手册,也许只有等以后知道了它运用在什么逻辑代码中。
就自然而然了解了。
手册上的解释:
添加一个力到刚体。
作为结果刚体将开始移动。
在position位置应用force力。
作为结果这个将在这个物体上应用一个力矩和力。
力矩?
是什么。
这个我也犯迷糊。
不过在手册手看到这样一个函数。
AddTorque:
添加一个力矩到刚体。
作为结果刚体将绕着torque轴旋转。
手册上函数有很多。
有兴趣的可以自己去测试,等下把手册给大家。
我也是网上下载的。
碰撞与休眠
刚体与物体之间是存在碰撞的,一旦刚体开始移动,就可以在系统方法中监听刚体的碰撞状态,碰撞分为三种:
进入碰撞
碰撞中
碰撞结束
我们通过一张图片来了解
碰撞器
游戏对象如果需要感应碰撞,那么必须给其添加碰撞器,默认情况下,创建游戏对象时,会自动将碰撞器添加到其中。
unity一共为对象提供了6种碰撞器
BoxCollider
盒子碰撞器
SphereCollider
球体碰撞器
CapsuleCollider
胶囊碰撞器
4:
MeshCollider
网格碰撞器
5:
WheelCollider
车轮碰撞器
6:
TerrainCollider
地形碰撞器
在碰撞器之间可以添加物理材质,用于设定物理碰撞后的效果,它将将开始
相互反弹,反弹的力度是有物理材质决定的。
unity标准资源包中提供了一些物理材质的资源,我们可以导入到当前工程中
导入成功后:
好。
我们可以看出之前的游戏中,球体下落是立即禁止的。
现在给之前的Plane添加弹性材质,运行游戏
这篇文章来自狗刨学习网
可以看到刚体在弹性材质的作用下。
会反弹
碰撞检测
两个游戏对象必须有Collider
对于双方都要检测的物体,至少其中一个必须是刚体。
如果刚体是运动的,那么在双方都没有设置碰撞体的IsTrigger属性的时候,
双方都可以通过OnCollisionEnter函数检测碰撞
如果至少一个碰撞体IsTrigger被设置,那么双方可以通过OnTriggerEnter检测碰撞
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- unity3d 游戏 开发 物理 引擎