003-unity3d 物理引擎简介以及示例

Posted 木子旭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
        }

  将脚本拖拽至具体游戏推向即可,同一个脚本可以给多个游戏对象。    

  运行测试点击鼠标查看效果。

以上是关于003-unity3d 物理引擎简介以及示例的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式开发裸机引导操作系统和ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )(代码片

JVM04_程序计数器

制作简单的2D物理引擎(零)

UNITY物理系统简介

Unity物理组件之刚体Rigidbody

物理引擎Havok教程