物理引擎就是游戏中模拟真是的物理效果。如两个物体发生碰撞,物体自由落体等。在unity中使用的是NVIDIA的physX,它渲染的游戏画面很逼真。

刚体

刚体是一个很很中要的组件。

默认情况下,新创的物体是不具备物理效果的,而刚体组件能够给物体加入一些常见的物理属性。比方说:质量。摩擦力。碰撞等。

假设对象加入了刚体组件。那么它将感应物理引擎中的一切物理效果。

简单的使用下

首先穿件一个游戏对象,接着在hierarchy视图中选择创建的游戏对象。然后在unity导航菜单条中选择component——physics——rigidbody就可以。以下将创建3个立方体。将其放置在凌空地面上。

并给当中的一个立方体加入刚体。执行后发现红色的立方体感应了物理效果,掉下来了。而其它的两个依然停留在原地。

刚体的属性:

mass:质量。数值越大物体下落越快,尽量不超过10,不然会显得不真实。

drag:阻力。数值越大物体速度减慢就越快。

angular drag:角阻力。数值越大自转速度减慢就越快。

use gravity:是否使用重力。

is kinematic:是否受物理影响。

interpolate:设置图像差值。

collision detection:碰撞监測。

constrains:冻结,停止某个轴向感应物理引擎的效果

freeze position:冻结X轴。Y轴,Z轴,方向。

freeze rotation:冻结X轴。Y轴。Z轴,旋转。

物理管理器

在物理管理器中,能够设置整个项目全部的物理效果。比方说重力。反弹力,速度等。

在菜单导航栏中。选择edit——project setting——physics就可以打开physics manager。

例如以下图:

gravity:重力,默认下物体受Y轴向下的重力为9.8 N,可改动三个轴的受力方向。

default material:默认物理材质。

bounce threshold:反弹值。

sleep velocity:睡眠速度,当速度低于睡眠速度时,它保持精巧状态。

sleep angular velocity:睡眠角速度,当角速度低于睡眠速度时。自身不旋转。

max angular velocity:最大角速度。

min penetration for penalty:用于物体与物体之间碰撞后最小穿透力。

solver iteration count:迭代数量,默认值为7.

raycasts hit triggers:是否启动命中触发器。

layer collision matrix:图层碰撞矩阵。

刚体组件能够受力的作用,比方给刚体一个向X轴的力,那么刚体将沿着X轴向前运动。unity中力的方式有两种:普通的力,须要设定力的方向和大小。目标位置力。须要设置目标点的位置,该物体将朝向这个目标位置施加力。

接下来做一个样例来说明。共放置两个球对象。点击普通力后,小球像被踢了一脚。

点击位置力。小球将被施加一个朝向目标的力。

代码:

using UnityEngine;
using System.Collections;public class Script_06_02 : MonoBehaviour
{//施加普通力的对象GameObject addFrceObj = null;//施加目标位置力的对象GameObject addPosObj = null;//目标对象GameObject cubeObj = null;// Use this for initializationvoid Start () {//获取施加普通力的对象addFrceObj = GameObject.Find("Sphere0");//获取施加目标位置力的对象addPosObj = GameObject.Find("Sphere1");//获取目标对象cubeObj= GameObject.Find("Cube");}void OnGUI() {if(GUILayout.Button("普通力",GUILayout.Height(50))){//施加一个力。X轴方向力度为1000,Y轴方向力度为1000addFrceObj.rigidbody.AddForce (1000, 0, 1000);}if(GUILayout.Button("位置力",GUILayout.Height(50))){//施加一个位置力。物体将会朝向这个位置发力移动。力的模式为冲击力。

Vector3 force = cubeObj.transform.position - addPosObj.transform.position; addPosObj.rigidbody.AddForceAtPosition(force,addPosObj.transform.position,ForceMode.Impulse); } } }

执行:

【Unity 3D】学习笔记三十六:物理引擎——刚体相关推荐

  1. Jenkins +maven+tomcat自动构建部署(学习笔记三十六)

    https://my.oschina.net/denglz/blog/524154 摘要: jenkins + maven + svn + tomcat 自动部署 jenkins  是做什么用的,如果 ...

  2. opencv学习笔记三十六:AKAZE特征点检测与匹配

    KAZE是日语音译过来的 , KAZE与SIFT.SURF最大的区别在于构造尺度空间,KAZE是利用非线性方式构造,得到的关键点也就更准确(尺度不变性 ): Hessian矩阵特征点检测 ,方向指定, ...

  3. Mr.J-- jQuery学习笔记(三十二)--jQuery属性操作源码封装

    扫码看专栏 jQuery的优点 jquery是JavaScript库,能够极大地简化JavaScript编程,能够更方便的处理DOM操作和进行Ajax交互 1.轻量级 JQuery非常轻巧 2.强大的 ...

  4. python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

  5. Slicer学习笔记(十六)图像配准

    Slicer学习笔记(十六)分割配准 1.记录配准过程: 2.尝试不同的配准方法,找最好配准效果的方法 generic rigid (all) 3D MR T1, monomodal (brain) ...

  6. python分析鸢尾花数据_python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据...

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

  7. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  8. OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc

    OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...

  9. OpenCV学习笔记(十六):直方图均衡化:equalizeHist()

    OpenCV学习笔记(十六):直方图均匀化:equalizeHist() 参考博客: 直方图均衡化的数学原理 直方图匹配的数学原理 直方图均衡化广泛应用于图像增强中: 直方图均衡化处理的"中 ...

最新文章

  1. 1.2 Kali与Debian的关系
  2. DEDE如何调用指定文章ID来调用特定文档
  3. 【产品干货】幼年产品狗如何养成?这是完全自我修炼教程!
  4. 计量经济学和机器学习方法的在假设上的区别
  5. Apache的配置详解
  6. 高光谱数据集_文献选读|从地面和空间高光谱数据中提取红边位置参数,以估算水稻冠层叶氮含量...
  7. 如何在Ubuntu Linux上安装JDK
  8. redis 哨兵 异步_Redis稍微往上一点点写点集群
  9. 博文视点程序员读书节,大咖带你共读十日精彩
  10. Diagrams for Mac(原生流程图制作工具)
  11. Linux发行版列表
  12. 【信号与系统实验】实验七 音频信号的采集和传输
  13. python采集修改原创_火车头采集标题如何伪原创(附教程)
  14. 软件定义网络带来新的自动化优势和挑战
  15. Matconvnet完全安装及踩坑实录
  16. 腾讯不缺少梦想,但是缺算法与数据管理
  17. Windows 安装 KMS 与 MAK 的区别
  18. 关于邮件签名证书的常见问题
  19. matlab心电信号的qrs波检测,基于matlab的操作员心电信号QRS波检测及分析
  20. SQL AlawaysOn 之五:ISCSI共享磁盘

热门文章

  1. CPU主频越高越好吗
  2. 扫盲:关于Android手机内存ROM、RAM还有SD卡的解释
  3. a_2可以用作python标识符嘛,【单选题】下列选项中,可作为Python标识符的是哪项? A. getpath() B. throw C. my#var D. _ My_price...
  4. eds800变频器故障代码_变频器常见故障代码及处理实例(经典,建议收藏)
  5. 爬虫入门的基本原理,如果你连这些都不知道那你可以放弃爬虫了
  6. 汇编call指令详解_我也能写出雷军的的代码吗?最好的汇编语言入门教程在这里!...
  7. java面向对象电子科大版答案_电子科大17秋《面向对象程序设计》在线作业1
  8. oracle sql 平均分配 分组_SQL学习二
  9. netmiko 自动判断设备类型python_Python模块-Netmiko入门
  10. 厦大计算机学硕考研复试,【图片】一战厦大计算机上岸,经验帖。慢更【考研吧】_百度贴吧...