Unity3D Pyisics
1. 物理引擎简介
1.1 游戏物理
定义:
- 通过物理公式的计算来模拟真实世界的物理现象(e.g.重力、刚体、柔体、碰撞、变形、流体、布料)。
优点:
- 增加游戏的真实性
- 减少美术工作量
- 减少逻辑代码的工作量
性能与真实性之间的取舍:
- 如何欺骗玩家
常见的物理模拟类型:
- 刚体物理
- 破碎物理
- 粒子物理
- 流体物理
1.2 游戏引擎
定义:
- 已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程式的核心组件。
- 为游戏设计者提供各种编写游戏所需的各种工具。
- 通常包含:渲染引擎、物理引擎、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理等。
举例:
- Unity:《王者荣耀》、《神庙逃亡》、《纪念碑谷》、《崩坏》
- Unreal(虚幻):《质量效应》、《战地之王》、《剑灵》、《绝地求生》
- Frostbite(寒霜):《战地》、《极品飞车》、《荣誉勋章》
- CryENGINE:《幽灵战士》、《孤岛危机》、《怪物猎人onile》
- 3DGame Studio
- RenderWare:《侠盗列车手》、《实况足球》、《轩辕剑》、《仙剑》
- Gamebryo:《上古卷轴》、《文明4》、《战锤》、《辐射3》
1.3 物理引擎
作用:
- 物理引擎计算物体位置、速度、加速度,而后通过绘图引擎渲染图像
定义:
- 通过为物体赋予真实的物理属性的方式来计算运动、旋转和碰撞反应等物理反应。
- 实际上通常是一个函数库。
在挑选时的考量:
- 功能、正确性、性能、支持的平台、是否开源、文件完整性、有无可视化工具等。
- Unity3D使用的物理引擎是:PhysX(3D)、Box2d(2D)
2. 二维物理引擎组件
2.1 刚体(Rigidbody 2D)
定义:
刚体是受物理引擎控制的元件,场景中运动的元件都应加上刚体。
属性:
2.2 碰撞器(Collider 2D)
类型:
Is Trigger属性:
- 通常用于可被穿透的物体。
相关函数:
//进入碰撞体时
void OnTriggerEnter2D(Collider2D other)
{
}//结束碰撞时
void OnTriggerExit2D(Collider2D other)
{}
3. 三维物理引擎组件
3.1 刚体(Regidbody)
属性:
相关函数:
//在物体的中心点位置新增一个Vector3的力,使物体朝该Vector3方向运动
Rigidbody.AddForce(Vector3);//在物体中心新增一个力矩Vector3可以使物体旋转,刚体将顺着torque轴旋转
Rigidbody.AddTorque(Vector3);//在某个位置新增一个大小为float,半径为range的爆炸力
//向爆炸范围内各个方向的物体施加一个力,用来模拟爆炸效果
//爆炸力随着刚体的距离线性衰减
Rigibody.AddExplosionForce(float forceStrength,Vector3 positon,float range);
3.2 碰撞器(Collider)
3.2.1 盒子碰撞器(Box Collider)
3.2.2 胶囊碰撞器(Capsule Collider)
3.2.3 网格碰撞器(Mesh Collider)
3.2.4 轮胎碰撞器(Wheel Collider)
3.2.5 地表碰撞器(Terrain Collider)
3.2.6 静态碰撞器(Static Colliders)
定义:
- 将包含碰撞器但不包含刚体的游戏物体中的碰撞器称为“静态碰撞器”,应当注意尽量不要移动带有静态碰撞器的物体,消耗资源较大。
3.3 刚体与碰撞器的比较
关系:
- 刚体能够给物体新增物理效果,碰撞器能够使物体之间发生碰撞。
- 碰撞体不一定要有刚体,但是刚体一定要有碰撞器才可以有碰撞效果。
- 两个碰撞体至少要有一个是刚体。
3.4 Joints
作用:
- 产生两个Rigidbody之间的约束力,以对其相对运动加以限制。
- 需要Rigidbody同时存在才有效果。
类型:
4. 碰撞算法
- AABB算法
- SAT算法
Unity3D Pyisics相关推荐
- unity3d游戏开发猜想——当程序猿老去
程序猿将代码注入生命去打造互联网的浪潮之巅.当有一天他们老了.会走向那里,会做些什么? 非常多年以后,在我60岁的那天早晨,天刚蒙蒙亮我就起床了,先去公园晨练,然后回来做早餐(50岁的时候我学会了做饭 ...
- Unity3D 中 2D_Toolkit插件下载 和 导入方法
Unity3D 中 2D_Toolkit插件下载 和 导入方法 1.你把下载来的包放到 安装目录:Editor\Standard Packages里面. 2.然后按ctrl+9,进入asset sto ...
- Unity3D 镜面反射
原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:[119706192] 本文链接地址: Unity3D 镜面反射 这是官方CharacterCustomization事例中的镜面 ...
- [推荐]C#快速开发3d游戏工具--Unity3d
最近有幸接触了一点Unity3d的东西,和大家分享一下. Unity3d 简介 是一款可视化的,3d游戏开发软件.可以进行手动绘制3d场景,自己添加摄像机角度,3d模型设计,事件触发,对于园子里大家很 ...
- unity3d 切换网络_Unity3d新网络请求方式UnityWebRequest详解
Unity将要逐步放弃www网络请求api,新的api请求方式来临:UnityWebRequestThe,也正是本篇文章要给大家介绍的重点,那就是UnityWebRequestThe的使用详解. 旧的 ...
- Unity3D提示“XX,some are mac os x (unix) and some are windows”
2019独角兽企业重金招聘Python工程师标准>>> 解决办法: 将Unity安装目录\Editor\Data\Resources\ScriptTemplates\目录下的所有文件 ...
- unity3d教程运行物理机制
首先,我们将把Hooke定律写Euler方法结合在一起找到新坐标.加速和速度. Hooke定律是F=kx,这里的F是指由水流产生的力(记住,我们将把水体表面模拟为水流),k是指水流的常量.x则是位移. ...
- 【跟我一起学Unity3D】做一个2D的90坦克大战之AI系统
对于AI,我的初始想法非常easy,首先他要能动,而且是在地图里面动. 懂得撞墙后转弯,然后懂得射击,其它的没有了,基于这个想法,我首先创建了一个MyTank类,用于管理玩家的坦克的活动,然后创建AI ...
- UNITY3D拓展编辑器 - 目录
前文: 最近在自学UNITY3D拓展器,对以上功能点做一些认知范围内的总结. 目录: 1. 属性编辑器 http://weizeteng.blog.51cto.com/5604545/1774431 ...
最新文章
- 谷歌AI新技术:通过追踪虹膜,普通摄像头也能测距
- 学习知识[置顶] C++学习方式方法
- Eclipse 常用快捷键-java
- 一键了结CUP100%问题
- LateX在windows中运用MiKTeX
- 每日一练丨性能优化-实例优化(三)
- VueSummary_note
- Mysql Docker 主从配置
- 如果没有云栖大会,中国云计算将要落后多少年?
- 6、ES6的let和const
- XP系统优化简单实用技法
- ECSHOP全球国际通用配送快递插件,DHL、FEDEX、TNT、UPS配送快递插件
- Encountered unexpected token:XXXXX
- .Net服务器性能监控,应用耗时统一监控平台
- Sam版Matlab粒子群PSO工具已经更新
- UVM基础-Sequence、Sequencer(二)
- C语言之stroke_s()
- java cookbook 3_CookBook/Java核心/3-Java反射.md at master · Byron4j/CookBook · GitHub
- ch19.PDO。p360---练习三。通过pdo更新数据
- 北京信息科技大学计算机研究生在哪个校区,北京信息科技大学有几个校区,哪个校区最好及各校区介绍...