• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >游戏开发 > Unity 3D刚体(Rigidbody)

Unity 3D刚体(Rigidbody)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2022-04-30

匿名通过本文主要向大家介绍了等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Unity 3D 中的 Rigidbody(刚体)可以为游戏对象赋予物理属性,使游戏对象在物理系统的控制下接受推力与扭力,从而实现现实世界中的运动效果。

在游戏制作过程中,只有为游戏对象添加了刚体组件,才能使其受到重力影响。

刚体是物理引擎中最基本的组件。在物理学中,刚体是一个理想模型。

通常把在外力作用下,物体的形状和大小(尺寸)保持不变,而且内部各部分相对位置保持恒定(没有形变)的理想物理模型称为刚体。

在一个物理引擎中,刚体是非常重要的组件,通过刚体组件可以给物体添加一些常见的物理属性,如质量、摩擦力、碰撞参数等。

通过这些属性可以模拟该物体在 3D 世界内的一切虚拟行为,当物体添加了刚体组件后,它将感应物理引擎中的一切物理效果。

Unity 3D 提供了多个实现接口,开发者可以通过更改这些参数来控制物体的各种物理状态。

刚体在各种物理状态影响下运动,刚体的属性包含 Mass(质量)、Drag(阻力)、Angular Drag(角阻力)、Use Gravity(是否使用重力)、Is Kinematic(是否受物理影响)、Collision Detection(碰撞检测)等。

刚体添加方法

如下图所示,在 Unity 3D 中创建并选择一个游戏对象,执行菜单栏中的 Component→Physics→Rigidbody 命令为游戏对象添加刚体组件。

添加刚体组件

刚体选项设置

如下图所示,游戏对象一旦被赋予刚体属性后,其 Inspector 属性面板会显示相应的属性参数与功能选项,具体内容如下表所示。

刚体组件参数设置

参 数含义功 能
Mass质量物体的质量(任意单位)。建议一个物体的质量不要与其他物体 相差100倍
Drag阻力当受力移动时物体受到的空气阻力。0表示没有空气阻力,极 大时使物体立即停止运动
Angular Drag角阻力当受扭力旋转时物体受到的空气阻力。0表示没有空气阻力, 极大时使物体立即停止旋转
Use Gravity使用重力该物体是否受重力影响,若激活,则物体受重力影响
Is Kinematic是否是运动学游戏对象是否遵循运动学物理定律,若激活,该物体不再受物理 引擎驱动,而只能通过变换来操作。适用于模拟运动的平台或 者模拟由铰链关节连接的刚体
Interpolate插值物体运动插值模式。当发现刚体运动时抖动,可以尝试下面的 选项:None(无),不应用插值;Interpolate(内插值),基于上一巾贞 变换来平滑本帧变换;Extrapolate(外插值),基于下一帧变换来 平滑本帧变换
Collision Detection碰撞检测碰撞检测模式。用于避免高速物体穿过其他物体却未触发碰 撞。碰撞模式包括Discrete (不连续)、Continuous (连续)、 Continuous Dynamic (动态连续〉3种。其中,Discrete模式用来 检测与场景中其他碰撞器或其他物体的碰撞;Continuous模式 用来检测与动态碰撞器(刚体)的碰撞;Continuous Dynamic模 式用来检测与连续模式和连续动态模式的物体的碰撞,适用于 高速物体
Constraints约束对刚体运动的约束。其中,Freeze Position(冻结位置)表7TC刚体 在世界中沿所选HZ轴的移动将无效,Freeze Rotation(冻结 旋转)表示刚体在世界中沿所选的X、Y、Z轴的旋转将无效

实践案例:刚体测试

案例构思

刚体使物体像现实方式一样运动,任何物体想要受重力影响,都必须包含一个刚体组件。

利用刚体类游戏组件,遵循万有引力定律,在重力作用下,物体会自由落下。

刚体组件还会影响到物体发生碰撞时产生的效果,使物体的运动遵循惯性定律,使其发生碰撞时在运动冲量作用下产生速度。

本案例旨在利用刚体测试重力效果以及碰撞后的交互效果。

案例设计

本案例在 Unity 3D 内创建一个简单的三维场景,场景内放有 Cube 和 Plane,Plane 用于充当地面,Cube 用于刚体重力测试,然后通过 Ctrl+D 键再复制出两个 Cube 以测试刚体间相互碰撞的效果,如下图所示。

刚体碰撞测试效果

案例实施

步骤 1):新建项目,将场景命名为 Rigidbody。

步骤 2):创建游戏对象。执行 GameObject→3D Object→Plane 命令,此时在 Scene 视图中出现了一个平面,在右侧的 Inspector 面板中设置平面位置(0,0,-5),如下图所示。

创建平面

步骤 3):创建游戏对象。在菜单栏中执行 GameObject→Create Other→Cube 命令,在右侧的 Inspector 面板中设置立方体的位置(0,5,0),按 F2 键可将其重新命名,如下图所示。

创建立方体

步骤 4):美化场景。采用纹理贴图的方法将地面和立方体都贴上纹理。

首先,将资源图片放置在项目的根目录 Assets 下,Unity 3D 会自动加载资源。

然后分别选中立方体和平面,将对应的资源图片分别拖到立方体和平面上即可,效果如下图所示。

添加材质后的效果

步骤 5):为立方体添加刚体属性。选中立方体,然后执行菜单栏中的 Component→Physics→Rigidbody 命令,当右侧的 Inspector 面板中出现了 Rigidbody 属性面板时,即为立方体添加了刚体属性,如下图所示。

刚体属性面板

步骤 6):单击 Play 按钮进行测试,发现置于半空中的立方体由于受到重力作用做自由落体运动,掉落到平面上,效果如下图所示。

自由落体运动前的效果

自由落体运动后的效果

步骤 7):复制游戏对象。在 Hierarchy 视图中,选中 Cube1 后按 Ctrl+D 键复制立方体 Cube2 并将其摆放于场景中,在 Inspector 面板中设置新复制的立方体的位置属性(0.4,0.5,0),按此方法再复制一个立方体 Cube3 斜放于 Cube2 上,设置Cube3 的位置为(0,1.5,0)。

步骤 8):执行菜单栏的 Component→Physics→Rigidbody 命令为每一个立方体添加刚体属性。

步骤 9):单击 Play 按钮测试一下,发现最上方立方体进行自由落体运动,撞击到地面,盒子发生倒塌,效果如下图所示。

测试前效果

测试后效果

步骤 10):创建 JavaScript 脚本文件,输入下列代码:
var speed=10;function OnMouseDrag(){    transform.position+=Vector3.right*Time.deltaTime*Input.GetAxis("MouseX")*speed;    transform.position+=Vector3.up*Time.deltaTime*Input.GetAxis("Mouse Y")*speed;}
步骤 11):将脚本分别连接到 3 个立方体上。

步骤 12):单击 Play 按钮测试,效果如下图所示。

刚体拖拽效果1

刚体拖拽效果2
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-06-05 cocos2dxwin32窗口大小不对
  • 2022-04-30Unity 3D贴图
  • 2022-04-30Unity 3D Skin控件
  • 2020-02-11Unity3D的四种坐标系
  • 2017-06-05 有没有什么好的材料方法适合自学Unity3D
  • 2017-09-06canvas3d学习一 应用结构
  • 2017-06-05 刚入行cocos2d-x手游开发,怎么才能快速提高自己,提高工资
  • 2017-06-05 box2d如何让场景中的所有物体静止不动(有重力的场景),又如何让所有物体恢复运动
  • 2017-06-05 unity3d为什么对MAC支持不好?
  • 2022-04-30Unity 3D下载安装教程

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Unity 3D Project视图
    • OpenGL绘制一个三角形要调用多少次顶点和片段着色器的main函数
    • h5的canvas做游戏,提高性能最好用几层canvas
    • 出现这个错误是什么情况,怎么解决啊
    • Unity 3D游戏发布到WEB平台
    • Unity 3D游戏发布到Android平台
    • cocos2d-x
    • cocos2d-x-35的android移植问题
    • Unity 3D导入三维模型
    • cocos2dx打包出现VM内存不足怎么解决

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有