Unity 关于Rigidbody刚体组件的理解

一、基本了解

刚体Rigidbody因具体物理相关的属性,使得实际应用中更有真实感。应用也多:

  • Rigidbody它可以受到重力、碰撞或者力的作用,所以我们可以用它模拟物体的真实物理行为,如受到重力的作用、与其他刚体对象进行碰撞,并模拟物体的运动和旋转。
  • 一个带有刚体Rigidbody组件的物体是可以与其它的刚体或者带有碰撞体的物体发生碰撞事件,从而通过碰撞事件执行特定事件或行为。
  • 通过Rigidbody刚体的AddForce()方法,我们可以为刚体施加力,从而可以模拟物体受到推力、拉力或其他类型的力的作用,可以实现推动、冲击等效果。
  • Rigidbody刚体可以用于实现角色控制。通过施加力或应用力的方式,可以控制角色的移动、跳跃和旋转等行为。

二、组件认识

Rigidbody组件如下图:

其中,

  1. Mass(质量):刚体的质量。较大的质量会使刚体更难加速或减速。
  2. Drag(阻力):用于模拟物体在空气中的阻力效果。较大的阻力会减慢刚体的运动。
  3. Angular Drag(角阻力):用于模拟刚体旋转时的阻力效果。
  4. Use Gravity(使用重力):确定是否应用重力到刚体上。
  5. Is Kinematic(是否是运动学刚体):如果勾选,刚体将不受外部力的影响,只能通过Transform组件的移动来改变位置。
  6. Interpolate(插值):控制刚体的插值方式,即在每一帧之间如何插值计算刚体的位置和旋转。它有三个选项:
    (1)None:没有插值,刚体的位置和旋转会直接根据物理模拟的结果进行更新。这是最精确的插值方式,但可能会导致视觉上的抖动。
    (2)Interpolate:使用线性插值,刚体的位置和旋转会平滑地从上一帧过渡到当前帧的物理模拟结果。这可以减少视觉上的抖动,但可能会导致轻微的延迟。
    (3)Extrapolate:根据物体的速度和加速度预测未来的位置和旋转。这可以使物体的运动看起来更加流畅,但可能会导致物体位置的不准确。
  7. Collision Detection(碰撞检测):确定刚体之间的碰撞检测方式。它有4个选项,其中:
    (1)Discrete(离散):使用离散碰撞检测,即在物体之间使用离散的时间步长进行碰撞检测。这是一种较快的碰撞检测方式,但可能会导致物体之间的穿透。
    (2)Continuous(连续):使用连续碰撞检测,即在物体之间使用连续的时间步长进行碰撞检测。这可以避免物体之间的穿透,但会增加计算开销。
  8. Constraints(约束):在刚体上应用约束,控制其自由度。其中,
    (1)Freeze Position(冻结位置):可以冻结刚体在某个轴上的位置,使其在该轴上无法移动。勾选可以冻结相应的坐标位置。
    (2)Freeze Rotation(冻结旋转):可以冻结刚体在某个轴上的旋转,使其在该轴上无法旋转。勾选可以冻结相应的旋转轴。
  9. Info(信息):Info属性提供了一些关于刚体状态的信息,包括质量、速度、加速度等。

 三、相关方法

1、AddForce()方法:向刚体施加力。常用语法为:AddForce(Vector3 force, ForceMode mode),可以使用这个方法来推动、拉动或施加冲击到刚体上。其中参数mode可以是Force(力)、Acceleration(加速度)、Impulse(冲量)和VelocityChange(速度变化)。

2、AddTorque()方法:向刚体施加扭矩。常用语法为:AddTorque(Vector3 torque, ForceMode mode),torque参数表示施加的扭矩大小和方向,mode参数可以是Force(力)、Acceleration(加速度)、Impulse(冲量)和VelocityChange(速度变化)。

3、MovePosition()方法:将刚体移动到指定的位置。可以使用这个方法来直接控制刚体的位置,而不受物理模拟的影响。角色控制一般用该方法,语法有:MovePosition(Vector3 position)。

4、MoveRotation()方法:将刚体旋转到指定的角度。可以使用这个方法来直接控制刚体的旋转,而不受物理模拟的影响。语法有:MoveRotation(Quaternion rotation)。

5、Sleep():使刚体进入休眠状态。当刚体静止一段时间后,为了节省计算资源,可以调用该方法将刚体设置为休眠状态。休眠的刚体不会参与物理模拟,直到受到外部力的作用或碰撞等事件唤醒。

6、WakeUp():唤醒休眠中的刚体。可以使用这个方法来手动唤醒休眠的刚体,使其恢复参与物理模拟。

7、ResetInertiaTensor():重置刚体的惯性张量。当刚体的形状或质量发生变化时,可以调用该方法来重新计算和应用刚体的惯性张量,以确保物理模拟的准确性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/245309.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计 SpringBoot的医院门诊在线挂号系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

pandas空格及网页空格符NBSP替换处理

df3[动作一课程内容]df3[动作一课程内容].str.replace( ,) df3[动作一课程内容]df3[动作一课程内容].str.replace( ,) 截图中代码为python展示代码,由于网页空格符和常规空格符看起来大致相同,但却不能用常规空格替换解决

虾皮选品网:如何使用虾皮选品数据软件提升您的选品策略

在虾皮(Shopee)平台上进行选品时,了解市场趋势、竞争程度和产品潜力是非常重要的。为了帮助卖家更好地分析虾皮市场,并为选品和运营策略提供有力支持,有一些数据软件和工具可以派上用场。本文将介绍一些建议使用的虾皮…

HCIA-H12-811题目解析(7)

1、【多选题】RSTP协议包含以下哪些端口状态? 2、【单选题】当采用LACP模式进行链路聚合时华为交换机的默认系统优先级是? 3、【单选题】下面关于二层以太网交换机的描述说法不正确的是? 4、【单选题】以下哪种类型的ACL不能匹配网络层信息…

事务--03---TCC空回滚、悬挂、幂等解决方案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Seata TCC 模式设计思路TCC存在的问题1、空回滚以及解决方案解决方案: 2、幂等问题以及解决方案解决方案: 3、悬挂问题以及解决方案解决方案…

WPF-UI HandyControl 简单介绍

文章目录 前言我的网易云专栏和Gitee仓库HandyControlHandyControl示例相关资源地址 我的运行环境快速开始和Material Design功能对比手风琴右键菜单自动补充滚动条轮播图消息通知步骤条托盘按钮 结尾 前言 最近我在研究如何使用WPF做一个比较完整的项目,然后我就先…

【Bootloader学习理解----跳转优化异常】

笔者接着来介绍一下Bootloader的跳转代码以及优化 1、跳转代码理解 跳转代码可能要涉及到芯片架构的知识,要跳转到对应的位置,还要设置相关的SP 堆栈指针,具体可以参考笔者这篇文章BootLoader的理解与实现。 STM32的跳转代码如下所示: u32 …

Knowledge Distillation from A Stronger Teacher(NeurIPS 2022)论文解读

paper:Knowledge Distillation from A Stronger Teacher official implementation:https://github.com/hunto/dist_kd 前言 知识蒸馏通过将教师的知识传递给学生来增强学生模型的性能,我们自然会想到,是否教师的性能越强&…

前端已死?别低估前端,他是互联网世界的核心!【这是一篇治愈系文章】

文章目录 💥 AI回答🦋 现状🦉 焦虑🐉 力量🦅 观点🐣 粗浅分析🦥 快乐的韭菜🏆 总结 💥 AI回答 前端已死? ai的答案是这样: 前端并没有死掉,它仍然…

Python FuckIt模块:代码的“不死鸟”

更多资料获取 📚 个人网站:ipengtao.com 在编程世界中,每个开发者都曾遇到过代码中的错误,有时这些错误可能让人崩溃。但是,有一天,听说了一个叫做"FuckIt"的模块,它声称可以帮助摆脱…

UE5 C++(四)— 容器(TArray,TMap,TSet)

文章目录 数组(TArray)TMapTSet 数组(TArray) TArray是虚幻c中的动态数组,TArray特点:速度快,内存消耗小,安全性高。并且TArray所有元素均完全为相同类型,不能进行不同元…

数字图像处理(实践篇)二十四 使用dlib实现人脸对齐

目录 1 安装依赖库 2 下载shape_predictor_68_face_landmarks.dat文件 3 人脸对齐方案 4 涉及的函数 5 实践 1 安装依赖库 使用如下命令即可安装dlib: pip install dlib 在使用

【Qt之QNetworkAccessManager】概述及示例

概述 QNetworkAccessManager类允许应用程序发送网络请求和接收应答 网络访问API是围绕一个QNetworkAccessManager对象构建的,该对象为它发送的请求保存通用配置和设置。它包含代理和缓存配置,以及与此类问题相关的信号,以及可用于监视网络操…

读书笔记-《数据结构与算法》-摘要5[归并排序]

归并排序 核心:将两个有序对数组归并成一个更大的有序数组。通常做法为递归排序,并将两个不同的有序数组归并到第三个数组中。 先来看看动图,归并排序是一种典型的分治应用。 public class MergeSort {public static void main(String[] ar…

Unity Mono加密解决方案

Unity Mono 是 Unity 引擎默认的脚本运行时环境,在游戏开发中扮演着重要的角色。Mono 由跨平台的开源 .NET 框架实现,它允许开发者使用 C# 等编程语言编写游戏逻辑。凭借简单易用的开发环境和高效的脚本编译速度,得到了众多游戏的青睐。 在 …

C语言数据结构-二叉树的入门

文章目录 0 碎碎念1 二叉树的概念和结构1.1 概念和特点1.2 结构1.3 特殊的二叉树1.4 二叉树的存储与性质1.5 前序、中序和后序 2 简单二叉树的实现2.1 定义数据结构类型2.2 前序、中序和后序接口的实现2.3 二叉树中节点的个数2.4 叶子节点的个数 3 完整代码块3.1 BinaryTree.h3…

Pycharm2023安装

PyCharm是一种Python IDE(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高…

亚马逊云科技发布企业生成式AI助手Amazon Q,助力企业迈向智能化时代

(声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区、知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道) 一、前言 随着人工智能技术的快速发展和广泛应用,我们…

WTF ‘Questions‘

WTF ‘Tech Team Lead’ As a Tech Team Lead, your role is to oversee the technical aspects of a project or team, and to provide guidance, support, and leadership to your team members. Here are some key responsibilities and aspects of the role: Leadership …

ChatGLM大模型推理加速之Speculative Decoding

目录 一、推测解码speculative decoding 1、自回归解码 2、speculative decoding 3、细节理解 二、核心逻辑代码 1、算法流程代码 2、模型自回归代码 a、带缓存的模型自回归实现代码 b、优化版本带缓存的模型自回归实现代码 c、ChatGLM的past_key_values的回滚 三、…