003-unity3d 物理引擎简介以及示例
一、概述
物理引擎就是模拟真实世界中物体碰撞、跌落等反应的引擎,通过ballence、愤怒的小鸟等理解。Unity3D的物理引擎使用的是Nvidia的PhysX。
物理引擎是一个计算机程序模拟牛顿力学模型,使用质量、速度、摩擦力和空气阻力等变量。可以用来预测这种不同情况下的效果。它主要用在计算物理学和电子游戏以及电脑动画当中。
物理引擎有两种类型常见的型类:实时物理引擎和高精度物理引擎。高精度的物理引擎需要更多的处理能力来计算非常精确的物理,通常使用在科学研究(计算物理学)和电脑动画电影制作。实时物理引擎使用通常使用在电子游戏并且简化运算,降低精确度增以减少计算时间,得到在电子游戏当中可以接受的的处理速度。
二、示例
选一个游戏对象,主菜单→Component→Physics→Rigidbody,这样就添加了刚体组件,一旦给一个GameObject添加刚体组件,他就会受重力、碰撞等的反应,最典型的就是“脚下无地”就会坠落、和其他刚体碰撞会反弹,无法进入等。地面用Plane,加光照会更好。
开发步骤:
1、创建项目,打开软件,
默认如下,
也可以手工新增加一个新的 Sence,
2、创建球体,点击上图create ,创建 3d object→Sphere.配置其坐标x:0 y:5 z:0
3、设置球体为刚体,选中sphere,在Component上选择Physics→Rigidbody,此时在Inspector,中可以看到
设置Drag 为1
具体含义可看第一讲安装的文档
4、设置球体材质
只导入必要的包
将材质属性,拖拽至球体上即可
5、添加地面
在create→Plane即可,点击工具栏运行即可看到效果。
6、添加脚本
7、脚本内容编写
设置脚本打开方式:edit→perferences→External Tool→选择开发脚本工具即可
脚本默认有两个方法
Start 对象初始化
Update:每一帧调用时候执行
在Update增加以下内容
if (Input.GetMouseButtonDown(0)) { this.gameObject.GetComponent<Rigidbody>().AddForce(Vector3.forward, ForceMode.Impulse); }
将脚本拖拽至具体游戏推向即可,同一个脚本可以给多个游戏对象。
运行测试点击鼠标查看效果。
相关文章
- 大数据ClickHouse进阶(六):Distributed引擎深入了解
- TDSQL敏态引擎TDStore新技术演进
- JuiceFS 在火山引擎边缘计算的应用实践
- 【MySQL高级】Mysql的体系结构概览及存储引擎以及索引的使用
- MySQL数据库存储引擎
- Drools 规则引擎—-向领域驱动进步(五)详解编程语言
- 《Drools7.0.0.Final规则引擎教程》第4章 Query查询之基础详解编程语言
- 火狐浏览器Mozilla Firefox v79正式版发布 优化量子渲染引擎增强图形性能
- 深度剖析:MySQL 数据存储引擎背后的奥密!(mysql数据存储引擎)
- MyISAM和InnoDB引擎优化分析
- 模板引擎smarty工作原理以及使用示例
- PHP数据库万能引擎类adodb配置使用以及实例集锦