【Unity 3D】学习笔记三十六:物理引擎——刚体
物理引擎就是游戏中模拟真是的物理效果。如两个物体发生碰撞,物体自由落体等。在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 initialization
void Start ()
{
//获取施加普通力的对象
addFrceObj = GameObject.Find("Sphere0");
//获取施加目标位置力的对象
addPosObj = GameObject.Find("Sphere1");
//获取目标对象
cubeObj= GameObject.Find("Cube");
} void OnGUI() { if(GUILayout.Button("普通力",GUILayout.Height(50)))
{
//施加一个力。X轴方向力度为1000,Y轴方向力度为1000
addFrceObj.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】学习笔记三十六:物理引擎——刚体的更多相关文章
- 【Unity 3D】学习笔记三十七:物理引擎——碰撞与休眠
碰撞与休眠 上一篇笔记说过,当给予游戏对象刚体这个组件以后,那么这个组件将存在碰撞的可能性.一旦刚体開始运动,那么系统方法便会监视刚体的碰撞状态.一般刚体的碰撞分为三种:进入碰撞,碰撞中,和碰撞结束. ...
- PHP学习笔记三十六【try 二】
<?php //定义一个顶级异常处理器 要定义在最上面 function my_exception($e) { echo "我是顶级异常处理:".$e->getMess ...
- Nodejs学习笔记(十六)--- Pomelo介绍&入门
目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json 配置servers.json ...
- Nodejs学习笔记(十六)—Pomelo介绍&入门
前言&介绍 Pomelo:一个快速.可扩展.Node.js分布式游戏服务器框架 从三四年前接触Node.js开始就接触到了Pomelo,从Pomelo最初的版本到现在,总的来说网易出品还算不错 ...
- angular学习笔记(三十)-指令(10)-require和controller
本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...
- angular学习笔记(三十)-指令(7)-compile和link(2)
继续上一篇:angular学习笔记(三十)-指令(7)-compile和link(1) 上一篇讲了compile函数的基本概念,接下来详细讲解compile和link的执行顺序. 看一段三个指令嵌套的 ...
- angular学习笔记(三十)-指令(7)-compile和link(1)
这篇主要讲解指令中的compile,以及它和link的微妙的关系. link函数在之前已经讲过了,而compile函数,它和link函数是不能共存的,如果定义了compile属性又定义link属性,那 ...
- angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令
在angular学习笔记(三十)-指令(4)-transclude文章的末尾提到了,如果在指令中需要反复使用被嵌套的那一坨,需要使用transclude()方法. 在angular学习笔记(三十)-指 ...
- angular学习笔记(三十)-指令(5)-link
这篇主要介绍angular指令中的link属性: link:function(scope,iEle,iAttrs,ctrl,linker){ .... } link属性值为一个函数,这个函数有五个参数 ...
随机推荐
- HDU_3496_(二维费用背包)
Watch The Movie Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)T ...
- 梦想CAD控件图层COM接口知识点
梦想CAD控件图层COM接口知识点 一.新建图层 主要用到函数说明: _DMxDrawX::AddLayer 增加新的图层.详细说明如下: 参数 说明 BSTR pszName 图层名 c#中实现代码 ...
- 如何快速的vue init 属于自己的vue模板?
相信很多接触过vue的小伙伴非常熟悉了,我们在开启项目之前都需要vue init webpack xx来初始化自己的项目目录.但是在实际开发中我们往往会根据公司要求或者业务的需要会对目录进行局部的调整 ...
- LOJ #6009 「网络流 24 题」软件补丁
题面 某公司发现其研制的一个软件中有 $ n $ 个错误,随即为该软件发放了一批共 $ m $ 个补丁程序.每一个补丁程序都有其特定的适用环境,某个补丁只有在软件中包含某些错误而同时又不包含另一些错误 ...
- Storm 开箱笔记
目录 Storm 开箱 1. 什么是 Storm 2. Hello World(WordCountTopology) 3. 常用API 4. 基本概念 5. 流分组策略 6. 并行度 7. Acker ...
- 3.2.2.5 BRE运算符优先级
在数学表达式里,正则表达式的运算符具有某种已定义的优先级,指的是某个运算符(优先级较高)将比其他运算符先被处理. BRE运算符优先级,由高至低 运算符 表示含义 [..] [= ...
- TestNG常用注解
原文链接:https://www.yiibai.com/testng/basic-annotations.html 以下是TestNG支持的注释列表: 注解 描述 @BeforeSuite 在该 ...
- 电商架构设计-通过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性
个人观察 1.通过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性. 2.单一职责原则SRP,真的很关键,广大程序员需要不断深入理解这个原则. 3.架构图是架构师的重要输出,通过图 ...
- IDEA建立一个可运行的struts2项目
参考博客:https://blog.csdn.net/shuai_wy/article/details/79027573 直接使用IDEA创建struts2项目,配置好tomcat后是跑不起来的 需要 ...
- hadoop full cluster 改为伪分布
https://hadoop.apache.org/docs/r2.7.6/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Di ...