Unity 组件 Constraint系列(不用设置父子关系模拟设置父子关系的操作)

这篇具有很好参考价值的文章主要介绍了Unity 组件 Constraint系列(不用设置父子关系模拟设置父子关系的操作)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

目录

组件设置分析

Aim Constraints

 Parent Constraints

小结


概要

Constraint组件可以约束物体,链接本物体与目标物体的Transform,跟随目标物体的位置、旋转、缩放,实现父子物体一样的效果,却不用设置父子关系。而且一个物体可以同时关联多个目标物体,设置不同的权重

  • Aim:旋转受约束的游戏对象以面向链接的游戏对象。

  • Look At:将受约束的游戏对象旋转到链接的游戏对象(简化的目标约束)。

  • Parent:使用链接的游戏对象移动和旋转受约束的游戏对象。

  • Position:像链接的游戏对象一样移动受约束的游戏对象。

  • Rotation:旋转受约束的游戏对象,就像链接的游戏对象一样。

  • Scale:缩放受约束的游戏对象,如链接的游戏对象。

这是Unity官方给出的约束类型组件的解析

组件设置分析

所有Constraints共用的属性

Active:激活组件,并锁定编辑

Zero:重置组件,并锁定编辑

Is Active:是否激活组件

Weight:组件被影响的权重值

Lock:是否锁定编辑

Sources:要关联的目标对象,可以有多个,但是不同类型的组件所使用的权重分配是不一样的

Aim Constraints

在 Unity 中,瞄准约束是一个组件,可用于使对象或骨骼跟随并瞄准特定目标。它通常用于动画和绑定中,以创建逼真的瞄准或跟踪行为。

unity parentconstraint,unity,游戏引擎

  • Object Rotation Up:选择此选项时,源变换的"上方"将与源变换自身的旋转方向对齐。这意味着源变换的本地坐标系的上方将在朝向过程中保持不变
  • Object Up:Object Up:选择此选项时,源变换的"上方"将与参考对象的上方对齐。参考对象是Aim Constraint组件所附加的对象的一个子对象,可以通过设置Reference Up属性来指定参考对象。源变换将在朝向过程中与参考对象的上方对齐。
  • Scene Up:选择此选项时,源变换的"上方"将与场景的全局上方对齐。全局上方是场景中的世界坐标系的上方。
  • World:选择此选项时,源变换的"上方"将与世界坐标系的上方对齐。这意味着源变换将在朝向过程中始终保持与世界坐标系的上方对齐,无论参考对象或场景中的旋转如何变化。
  • Rotation At Rest:目标对象权重为0时的旋转
  • Rotation Offset:自动旋转时的偏移量
  • Freeze Rotation Axes:Object Up:要冻结的旋转轴,冻结的轴向才能关联目标对象自动旋
  • Sources:要关联的目标对象,可以有多个,但是所使用的权重是相同的
  • Up Vector:用于定义源变换的"上方"向量。它确定了在源变换朝向目标时,源变换应该如何对齐其"上方"。通过选择不同的Up Vector选项,可以根据需求来确定源变换在朝向过程中的"上方"对齐方式。这可以影响到朝向的行为和结果。
  • Aim Vector:用于定义源变换的朝向向量。它确定了源变换将朝向目标时的方向。通过选择不同的Aim Vector选项或设置自定义向量,可以控制源变换朝向目标的方向。这在需要特定朝向行为的情况下非常有用,例如使物体朝向特定方向或指定相机朝向目标。
  • World UP Vector:用于定义在源变换朝向目标时,用于确定"上方"方向的自定义向量。它允许你手动指定源变换朝向时的上方方向,而不是使用默认的世界坐标系或参考对象的上方方向。World Up Vector属性是一个三维向量,通过设置其X、Y和Z分量来定义自定义的上方方向。你可以在属性面板中直接编辑这些分量,或者在脚本中通过代码设置它们。当你选择World Up Type属性为Custom时,World Up Vector属性才会生效。通过设置自定义的向量,你可以控制源变换朝向时的上方方向,从而实现更精确的控制和朝向效果。请注意,当选择了Custom作为World Up Type,并设置了自定义的World Up Vector时,它将覆盖其他选择(例如Object Up、Scene Up或World),并使用你指定的自定义向量作为上方方向。
  • World UP Object:用于指定一个参考对象,该对象的本地上方方向将被用作源变换朝向时的上方方向。当选择World Up Type属性为Object Up时,World Up Object属性会生效。你可以将一个对象指定为World Up Object,该对象的本地上方方向将被用作源变换朝向时的上方方向。要设置World Up Object属性,你可以在Unity编辑器中将一个对象拖拽到World Up Object属性字段中,或者通过代码设置该属性。在源变换朝向目标时,Aim Constraint会根据World Up Object的本地上方方向来对齐源变换的上方。这样可以实现与参考对象的上方保持一致的朝向效果。

 Parent Constraints

unity parentconstraint,unity,游戏引擎

Unity 中的Parent Constraints用于根据对象的位置和旋转来控制对象的位置和旋转。它允许在对象之间创建分层关系并控制其转换。

设置Parent Constraints后,对父对象的位置和旋转所做的任何更改都将相应地影响子对象。子对象将根据约束设置保持其与父对象的相对位置和旋转。Parent Constraints对于在 Unity 中创建复杂的动画、角色绑定和控制对象层次结构非常有用。它们提供了一种建立父子关系和同步对象之间转换的便捷方法。

  • Position At Rest:目标对象权重为0时的位置
  • Rotation At Rest:目标对象权重为0时的旋转
  • Freeze Position Axes:要冻结的移动轴,冻结的轴向才能关联目标对象自动移动
  • Freeze Rotation Axes:要冻结的旋转轴,冻结的轴向才能关联目标对象自动旋转
  • Sources:要关联的目标对象,可以有多个,并设置不同的权重

其他的就不一一介绍了其大致意义上所实现的就是在两个物体没有父子关系的状态下,去实现存在父子物体的操作.

小结

Constraint:组件系列是用来制作一个游戏对象相对于另一个游戏对象一些操作,使很多操作可以不将物体设置为另一个物体的子物体来使用.

在Unity中,约束(Constraint)是一种用于控制对象之间关系和行为的组件。它们允许定义对象之间的约束条件,以实现各种效果和交互。

  1. 位置约束(Position Constraint):使一个对象跟随另一个对象的位置。通过将位置约束组件添加到跟随者对象,可以将其位置与目标对象的位置对齐或保持一定的偏移。

  2. 旋转约束(Rotation Constraint):使一个对象跟随另一个对象的旋转。通过将旋转约束组件添加到跟随者对象,可以使其旋转与目标对象的旋转对齐或保持一定的偏移。

  3. 缩放约束(Scale Constraint):使一个对象跟随另一个对象的缩放。通过将缩放约束组件添加到跟随者对象,可以使其缩放与目标对象的缩放对齐或保持一定的比例关系。

  4. 轴向约束(Aim Constraint):使一个对象朝向另一个对象。通过将轴向约束组件添加到朝向对象,可以指定朝向对象应该朝向的目标对象或方向。

  5. 距离约束(Distance Constraint):控制两个对象之间的距离。通过将距离约束组件添加到一个对象,可以指定该对象与目标对象之间的最小或最大距离。

  6. 物理约束(Physics Constraint):使用物理引擎控制对象之间的约束关系。例如,可以使用物理约束来模拟连接两个物体的绳子、关节或弹簧等。

通过使用这些约束组件,可以实现各种对象之间的复杂交互和关系。可以在Unity编辑器中手动添加和配置约束组件,也可以通过脚本在运行时动态添加和控制约束。约束是一种非常强大和灵活的工具,但也可能会增加复杂性。了解每种约束类型的属性和用法,并在使用时小心权衡其效果和性能影响。文章来源地址https://www.toymoban.com/news/detail-775964.html

到了这里,关于Unity 组件 Constraint系列(不用设置父子关系模拟设置父子关系的操作)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 《Linux操作系统编程》 第六章 Linux中的进程监控: fork函数的使用,以及父子进程间的关系,掌握exec系列函数

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(36)
  • 【Unity实战100例】用户头像圆形遮罩使用Shader不用Mask组件

    目录 一.创建材质 二.创建Shader文件编写Shader代码 三.Image材质设置 源码:https://download.csdn.net/download/qq_37310110/88196529 前言:我们在使用Unity的自带组件Mask的时候会出现毛边现象很难处理掉,这里我们使用着色

    2024年02月19日
    浏览(52)
  • 【Linux】进程的基本属性|父子进程关系

    个人主页:🍝在肯德基吃麻辣烫 我的gitee:Linux仓库 个人专栏:Linux专栏 分享一句喜欢的话:热烈的火焰,冰封在最沉默的火山深处 本篇文章继上文的进程概念后,现在对进程概念有了一定的理解。前面说过,操作系统管理进程实际上是管理描述进程的 PCB对象 ,而PCB对象是

    2024年02月12日
    浏览(42)
  • 【PyQt学习篇 · ⑦】:QWidget - 父子关系扩充和层级控制

    childAt(x, y) 函数可以根据传入的坐标参数获取该QWidget中位于该坐标位置的子QWidget,如果该位置没有子QWidget则返回None。 parentWidget() 函数可以获取当前QWidget的父QWidget,如果没有父QWidget则返回None。通过这个函数可以遍历组成QWidget树的所有QWidget。 childrenRect() 函数可以获取该Q

    2024年02月07日
    浏览(44)
  • Elasticsearch中父子文档的关联:利用Join类型赋予文档的层级关系

    码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! Elasticsearch是一个强大的搜索引擎,它提供了丰富的功能来满足复杂的搜索需求。其中,父子索引类型的join功能是一个强大的工具,它允许我们在同一索引中创建具有层级关系的文档

    2024年04月15日
    浏览(42)
  • 包含了父子关系的单位对象的List数据转成树状结构

    你知道的越多,你不知道的越多 点赞再看,养成习惯 如果您有疑问或者见解,或者没有积分想获取项目和定制项目,欢迎指教: 企鹅:869192208 需求 将一个包含了父子关系的单位对象的 List 数据,转成一个带层级关系的数据。 原始数据,用 json 格式展示 实现代码: 最终返

    2024年02月12日
    浏览(47)
  • react 组件之间的通信(父子组件)

    React中 组件内调用其他组件不需要进行 类似于vue 声明组件(components) React 组件内调用其他组件 直接将组件导入 放置在对应的JSX 代码中 父子组件通信(传统): 1、父组件-子组件  通过属性传递 2、子组件-父组件  父组件通过将自身的函数对象传递给子组件, 子组件执行父组件

    2024年02月08日
    浏览(66)
  • unity调试手机游戏(Android)【模拟器+真机】+设置运行时游戏横屏

    注:我使用的unity版本为2021.3.2f1c1 1、将平台调整为Android 点击“文件“ —— ”生成设置“ 在平台选择Android,点击右下方的切换平台 (如果没有下载Android平台包需要先下载,我的下载好后自动配置了SDK/JDK/NDK,在下载时可选。若没有选择下载SDK/NDK/JDK,需要自行配置) 检查

    2024年02月08日
    浏览(53)
  • VUE 父子组件、兄弟组件 之间通信 最强详解

    目录 1. 父组件 调用 子组件 内参数/方法 1.1 通过 ref 调用/获取 子组件内参数/方法 2. 子组件 调用 父组件 内参数/方法 2.1 通过 emit 调用 父组件方法 2.2 通过 props 调用 父组件方法/参数 2.3 通过 this.$parent 调用 父组件方法/参数 3. 兄弟组件 通信 3.1 通过 bus 进行 兄弟组件 通信

    2024年02月05日
    浏览(60)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包