Unity3D学习笔记——物理引擎

这篇具有很好参考价值的文章主要介绍了Unity3D学习笔记——物理引擎。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、物理引擎

Unity3D学习笔记——物理引擎

1、刚体 Rigidbody

1>简介

  • 刚体可以为游戏对象赋予物理特性,是游戏对象在物理系统的控制下接受推力和扭力,从而实现现实世界的物理学现象。

2>属性

Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎

2、碰撞体 Collider

1>简介

  • 碰撞器是物理组件的一类,他与刚体一起促使碰撞发生
  • 碰撞体是简单形状,如方块、球形或者胶囊形,在 Unity 3D 中每当一个 GameObjects 被创建时,它会自动分配一个合适的碰撞器。一个立方体会得到一个 Box Collider(立方体碰撞体),一个球体会得到一个 Sphere Collider(球体碰撞体),一个胶囊体会得到一个 Capsule Collider(胶囊体碰撞体)等。

2>分类

  • 当游戏对象中的Rigidbody碰撞组件被添加后,其属性面板中会显示相应的属性设置选项,每种碰撞体的资源类型稍有不同。
    Unity3D学习笔记——物理引擎

3>属性

a) Box Collider 盒型碰撞体
  • Box Collider 是最基本的碰撞体,Box Collider 是一个立方体外形的基本碰撞体
  • 一般游戏对象往往具有 Box Collider 属性,如墙壁、门、墙以及平台等,也可以用于布娃娃的角色躯干或者汽车等交通工具的外壳,当然最适合用在盒子或是箱子上。
    Unity3D学习笔记——物理引擎
    Unity3D学习笔记——物理引擎
  • 如果 Is Trigger 选项被勾选,该对象一旦发生碰撞动作,则会产生 3 个碰撞信息并发送给脚本参数,分别是 OnTriggerEnter、OnTriggerExit、OnTriggerStay
  • Physics Material 定义了物理材质,包括冰、金属、塑料、木头等
b) Sphere Collider 球形碰撞体
  • Sphere Collider 是球体形状的碰撞体
  • Sphere Collider 是一个基于球体的基本碰撞体,Sphere Collider 的三维大小可以按同一比例调节,但不能单独调节某个坐标轴方向的大小
  • 当游戏对象的物理形状是球体时,则使用球体碰撞体,如落石、乒乓球等游戏对象
    Unity3D学习笔记——物理引擎
    Unity3D学习笔记——物理引擎
c) Capsule Collider 胶囊碰撞体
  • Capsule Collider 由一个圆柱体盒两个半球组合而成,Capsule Collider 的半径和高度都可以单独调节,可用在角色控制器或与其他不规则形状的碰撞结合来使用
  • 通常添加至 Character 或 NPC 等对象的碰撞属性
    Unity3D学习笔记——物理引擎
    Unity3D学习笔记——物理引擎
d) Mesh Collider 网格碰撞体
  • Mesh Collider(网格碰撞体)根据 Mesh 形状产生碰撞体,比起 Box Collider、Sphere Collider 和 Capsule Collider,Mesh Collider 更加精确,但会占用更多的系统资源
  • 专门用于复杂网格所生成的模型
    Unity3D学习笔记——物理引擎
    Unity3D学习笔记——物理引擎
e) Wheel Collider 车轮碰撞体
  • Wheel Collider(车轮碰撞体)是一种针对地面车辆的特殊碰撞体,自带碰撞侦测、轮胎物理现象和轮胎模型,专门用于处理轮胎
    Unity3D学习笔记——物理引擎
    Unity3D学习笔记——物理引擎
f) Terrain Collider 地形碰撞体
  • 地形碰撞体 (Terrain Collider) 实现了一个碰撞表面,其形状与其所附加到的 Terrain 对象相同
    Unity3D学习笔记——物理引擎
    Unity3D学习笔记——物理引擎

4>物理材质

  • 用于调整碰撞对象的摩擦力和反弹效果
    Unity3D学习笔记——物理引擎
  • 属性
    Unity3D学习笔记——物理引擎
    Unity3D学习笔记——物理引擎

5>碰撞条件

  • 在unity3D中要实现碰撞检测,需要满足以下条件:
    1、两个物体都具有碰撞组件
    2、至少有一个物体拥有Rigidbody组件
    3、Collider都不勾选Is Trigger

6>碰撞三阶段

  • MonoBehaviour.OnCollisionEnter:当进入碰撞时触发
  • MonoBehaviour.OnCollisionExit:当退出碰撞时时触发
  • MonoBehaviour.OnCollisionStay:当逗留在碰撞中触发

3、触发器 Trigger

1>简介

  • 在Unity3D中,检测碰撞发生的方式有两种
    1、利用碰撞体
    2、利用触发器
  • 在很多游戏引擎或工具中都有触发器,他被用来触发事件
  • 碰撞体与触发器的区别在于:
    1、碰撞体是触发器的载体
    2、触发器只是碰撞体的一个属性
  • 如果既想要检测到物理的接触,又不想让碰撞检测影响物体的移动,或者要检测一个物体是否经过控件中的某个区域,这是就可以用到触发器
  • 例如:碰撞体适合模拟汽车被撞飞、皮球掉在地上又反弹的效果,而触发器适合模拟人站在靠近门的位置时门自动打开的效果

2>触发条件

  • 在unity3D中要实现触发检测,需要满足以下条件:
    1、两个物体都具有Collider组件
    2、至少有一个物体拥有Rigidbody组件
    3、至少有一个物体的Collider组件勾选了Is Trigger
    Unity3D学习笔记——物理引擎

3>触发三阶段

  • MonoBehaviour.OnTriggerEnter:当进入触发器时触发
  • MonoBehaviour.OnTriggerExit:当退出触发器时触发
  • MonoBehaviour.OnTriggerStay:当逗留在触发器中触发

4、恒定力 Constant Force

1> 简介

  • 恒定力 (Constant Force) 可用于快速向刚体添加恒定力。如果不希望某些一次性对象以较大的速度开始而是逐渐加速(比如火箭),则很适合使用恒定力
    Unity3D学习笔记——物理引擎

2> 属性

Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎

  • 要使对象向上运动,请添加具有正 Y 值 Force 属性的恒定力。
  • 要使对象向前飞行,请添加具有正 Z 值 Relative Force 属性的恒定力。

5、角色控制器 Character Controller

1>简介

  • 在 Unity 3D 中,游戏开发者可以通过角色控制器来控制角色的移动。
  • 角色控制器允许游戏开发者在受制于碰撞的情况下发生移动,而不用处理刚体
  • 角色控制器不会受到力的影响,在游戏制作过程中,游戏开发者通常在任务模型上添加角色控制器组件进行模型的模拟运动
    Unity3D学习笔记——物理引擎

2> 属性

Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎

6、关节 Joint

1> 简介

  • 在 Unity 3D 中,物理引擎内置的关节组件能够使游戏对象模拟具有关节形式的连带运动
  • 关节对象可以添加至多个游戏对象中,添加了关节的游戏对象将通过关节连接在一起并具有连带的物理效果
  • 需要注意的是,关节组件的使用必须依赖刚体组件

2> 分类

Unity3D学习笔记——物理引擎

  • Hinge Joint 铰链关节
    1、铰链关节 (Hinge Joint) 将两个刚体组合在一起,对刚体进行约束,让它们就像通过铰链连接一样移动。
    2、铰链关节非常适合用于门,但也可用于模拟链条、钟摆等对象
  • Fixed Joint 固定关节
    1、 固定关节 (Fixed Joint) 将对象的移动限制为依赖于另一个对象。这有点类似于管控 (Parenting),但是实现的方式是通过物理系统而不是变换 (Transform) 层级视图。
    2、使用固定关节的最佳场合是在希望对象可以轻松相互分离时,或者在没有管控情况下连接两个对象的移动。
  • Spring Joint 弹簧关节
    1、弹簧关节 (Spring Joint) 将两个刚体连接在一起,但允许两者之间的距离改变,就好像它们通过弹簧连接一样
  • Character Joint 角色关节
    1、角色关节 (Character Joint) 主要用于布娃娃效果。此类关节是延长的球窝关节,可在每个轴上限制该关节
  • Configurable Joint 可配置关节
    1、可配置关节 (Configurable Joint) 包含其他关节类型的所有功能,并提供更强大的角色移动控制。
    2、当您想要自定义布娃娃的运动并对角色强制实施某些姿势时,这种关节特别有用。
    3、使用可配置关节还可以将关节修改为您自行设计的高度专业化关节

3> 属性

a) Hinge Joint 铰链关节

Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎

b) Fixed Joint 固定关节

Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎

c) Spring Joint 弹簧关节

Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎

d) Character Joint 角色关节

Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎

  • 示例
    Unity3D学习笔记——物理引擎
  • 扭转轴(用辅助图标上的橙色椎体可视化)可在很大程度上控制上限和下限,允许按照度数指定上限和下限(限制角度是相对于开始位置进行测量的)。Low Twist Limit > Limit 中的值 –30 和 High Twist Limit > Limit 中的值 60 可将围绕扭转轴(橙色辅助图标)的旋转范围限制在 –30 度到 60 度之间。
  • Swing 1 Limit 可限制摆动轴的旋转范围(用辅助图标上的绿色轴可视化)。限制角度是对称的。因此,值 30 会将旋转限制在 –30 到 30 之间。
  • Swing 2 Limit 轴未显示在辅助图标上,但该轴垂直于其他两个轴(即辅助图标上用橙色可视化的扭转轴和辅助图标上用绿色可视化的 Swing 1 Limit 轴)。 角度是对称的,因此值 40 可将围绕该轴的旋转范围限制在 –40 度到 40 度之间。
e) Configurable Joint 可配置关节

Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎
Unity3D学习笔记——物理引擎文章来源地址https://www.toymoban.com/news/detail-411028.html

到了这里,关于Unity3D学习笔记——物理引擎的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE虚幻引擎,Unity3D,Blender区别和联系

    Unity UE Blender Unity 用户手册 (2019.4 LTS) - Unity 手册 虚幻引擎5.2文档 | 虚幻引擎5.2文档 (unrealengine.com) Blender 3.5 Reference Manual — Blender Manual Blender 是一款免费的开源软件,是一个开源的三维建模和动画软件 Blender: Design and animation platform which assists organizations of all sizes with rendering,

    2024年02月12日
    浏览(44)
  • 【Unity学习笔记】b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别)

    自己跟着学完了,写了不少代码,会放在CSDN代码库,因为老师并没有提供源码,录屏也不是完全连续,所以难免 有代码缺少、无法运行 的情况,但是确实学到了不少真本事,主要是了解老师的架构思想。 b站课程地址 课程我自己是跟着学完了的,本文是个人笔记记录和好课

    2024年02月02日
    浏览(56)
  • 【毕业论文】| 基于Unity3D引擎的冒险游戏的设计与实现

    📢博客主页:肩匣与橘 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 肩匣与橘 编写,首发于 CSDN 🙉 📢生活依旧是美好而又温柔的,你也是✨  基于Unity3D引擎的冒险游戏的设计与实现 📢前言 摘要 Abstract 1 绪论 1.1 选题背景 1.2 研究目的及意义 2 开发工具

    2024年02月05日
    浏览(66)
  • 【Unity3D赛车游戏优化篇】【十】汽车粒子特效和引擎咆哮打造极速漂移

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity游戏demo – 😶‍🌫️版本: Unity2021 😶‍🌫️适合人群:Unity初学者进阶 😶‍🌫️学习目标:3D赛车游戏的基础制作 😶‍🌫️技能

    2024年02月09日
    浏览(68)
  • 用Unity3D制作FPS游戏的学习笔记————人物移动、利用鼠标实现视角转动和人物跳跃(含人物悬空不掉落修复)

    前言: 这是我第一次发布文章,此文章仅供参考,我也是刚学习接触untiy,在制作项目的过程中将有用的写下来记一记,以便自己之后能回头看看,各位大佬轻点喷,若有错误请麻烦积极提谢谢各位。该文章参考自B站UP主蔡先森_rm-rf发布的 【第一人称射击游戏教程2.0【已完结

    2024年04月27日
    浏览(70)
  • Unity --- 物理引擎 ---- 刚体RigidBody 与 碰撞器 collider

      1.RigidBody(刚体)的作用是让物体具有物理特性(比如说重力,摩檫力等等) 2.如果想让物体能够与其它物体发生碰撞的话,我们还需要一个组件 --- Colider碰撞器组件 1.上图就是Unity中提供的已经准备好的各种形状的碰撞器组件 2.形成不同形状的碰撞器所需的面数不同,面数

    2024年02月16日
    浏览(39)
  • Unity3D学习记录02——PloyBrush场景搭建

    首先在Window-Package Manager里面搜索Poly Brush,下载后将URP的Shader样例导入  导入后Asset文件夹下会有Sample的文件夹,在菜单栏 Tools-PolyBrush-PolyBrush Window 打开窗口 这个窗口最上面的五个,第一个是用来调整地形高低的,第二个是进行柔化场景的,第三个是调整颜色的, 第四个可以

    2024年02月08日
    浏览(59)
  • GameFrameWork框架(Unity3D)使用笔记(八) 实现场景加载进度条

            游戏在转换场景的时候,需要花费时间来加载相关的资源。而这个过程往往因为游戏场景的规模和复杂度以及玩家电脑配置的原因花费一小段时间(虽然这个项目里用不到)。         所以,如果这一小段时间,画面就卡在这里,啥也做不了,玩家也不知道啥时候能

    2024年02月02日
    浏览(49)
  • Unity3D学习-Day01-环境搭建及学习资源导入

    版本选择可以最新,但是不能太老。因为很多资源都只兼容后续版本。 总体步骤可以概括为: 一:安装 1.下载 Unity Hub 2.下载最新的 Unity Personal 正式版 3.登录 Unity ID 4.安装编辑器时,保持默认安装选项。(尽量选择LTS的,我选择的是2020.3.4) 二:导入 1.下载项目 2.使用 Unit

    2024年02月07日
    浏览(78)
  • Unity3D学习记录03——Navigation智能导航地图烘焙

    首先还是在Package Manager中安装AI Navigation 接着选择我们场景的地面,右键,找到AI的NavMesh Surface,它会为我们的Ground添加一个叫NavMesh Surface的子物体 在Inspector窗口中可以看到它的详细的参数: 图中的R,H为你人物的参数,45°为你的人物可以爬行的最大角度 Agent Type里面可以改

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包