第二十九章 Unity关节Joint

这篇具有很好参考价值的文章主要介绍了第二十九章 Unity关节Joint。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关节组件将刚体连接到另一个刚体或空间中的固定点。关节施加使刚体移动的力,而关节限制功能可以限制该移动。Unity 提供的以下关节可以对刚体组件施加不同的力和限制,从而使这些刚体具有不同的运动:

Hinge Joint铰链关节:使两个刚体像被连接在一个铰链上那样运动。用于模拟门和手指关节。

Fixed Joint固定关节:将两个刚体束缚在一起, 相对位置保持不变。

Spring Joint弹簧关节:将两个刚体连接在一起,使其像连接着弹簧那样运动。

Character Joint角色关节:模拟球窝关节,例如臀部或肩膀。

Configurable Joint可配置关节:模拟任何骨骼关节,例如布娃娃中的关节。

接下来创建一个新的场景“SampleScene4.unity”,然后创建一个球体Sphere

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

接下来,我们为Sphere添加一个“Hinge Joint”类型的关节。在导航菜单栏中选择“Component”->“Physics”,然后从中选择“Hinge Joint”组件。添加该组件前必须先添加碰撞体和刚体两个组件。我们创建Sphere的时候自动为其添加碰撞体,然后添加“Hinge Joint”组件的时候,Unity自动为我们添加刚体组件。为了不让重力影响Sphere,我们取消了刚体组件的“Use Gravity”属性。然后,我们点击Sphere游戏对象,查看其Inspector检视视图:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

在组件“Hinge Joint”中,我们能够看到“Connected Body”(连接刚体),“Anchor”(锚点)和“Axis”(轴向)三个属性。其中锚点和轴向都是游戏物体的局部坐标系,而“连接刚体”则需要我们添加另一个附带刚体的游戏对象。如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

我们在Sphere的正上方添加了一个Cube,该Cube添加了刚体组件。为了不让重力影响Cube,我们取消了刚体组件的“Use Gravity”属性。如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

接下来,我们点击选中Sphere游戏对象,然后从Hierarchy层次面板中拖动Cube到Sphere游戏对象的“Hinge Joint”组件下的“Connected Body”后面的输入框中,如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

接下来我们在给Sphere施加一个X轴方向的力,如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

然后,我们来Play运行整个工程,

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

运行的效果可以看到了,当黄球Sphere向右移动的时候,红色Cube被牵引着一起移动。仿佛两者之间有一条“连接线”似的。

使用“Hinge Joint”铰链关节比较经典的一个案例就是门的打开和关闭的效果。

首先,我们创建一个新的场景“SampleScene5.unity”,然后我们添加一个平面Plane作为地面,然后添加一个Cube,让其变成一个“门轴”,然后再添加一个Cube(1),让其变成一个“门扇”。门轴和门扇都添加刚体,最后给门扇添加一个“Hinge Joint”铰链关节。

首先添加一个门轴Cube,并且添加刚体组件,如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

然后添加门扇Cube(1),也添加刚体组件,如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

 unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

接下来,我们给门扇Cube(1) 添加“Hinge Joint”组件。我们现在要做的就是让黄色的“门扇”能够围绕紫色的“门轴”转动,从而产生开门的效果。也就是说,我们给门扇一个力的时候,门扇需要围绕门轴转动,门轴则固定不动。因此,对于门轴而言,它的刚体组件需要勾选“Is Kinematic”属性(不能受刚体控制而移动或旋转)。如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

然后我们还需要给门扇的刚体组件一个阻力,不能让门扇遇到碰撞后,不停的旋转,如下:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

接下来就是门扇的“Hinge Joint”铰链关节属性,如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

首先,我们需要将门轴拖动到“Connected Body”位置,然后修改Anchor锚点和Axis轴向两个参数。要控制门的旋转主要改变铰链关节组件的Anchor和Axis两个属性。请注意,游戏物体门扇是围绕锚点沿轴向方向移动或旋转的。因此,我们的锚点应该门扇靠近门轴的边缘位置,而轴向的话应该是Y轴垂直方向。点击“Edit Angular Limits”如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

 unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

上图显示了我们的锚点就位于门轴位置,且轴向就是Y轴向上。那么,当我们给门一个力的时候,门就会围绕门轴移动旋转了。这里我们添加一个胶囊体Capsule游戏对象,

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

然后添加刚体组件,并勾选“Is Kinematic”属性,

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

接下来,我们创建“MoveScript.cs”脚本,使用代码来控制胶囊体Capsule移动,代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveScript : MonoBehaviour
{
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.W)) transform.Translate(transform.forward);
    }
}

接下来,我们将脚本附加Capsule胶囊体上,然后Play运行整个工程,如下所示:

unity 关节,Unity基础,unity,unity基础,unity入门,unity教程

当我们移动绿色的胶囊体向前移动的时候,它会碰撞到门,门会向前移动,但是由于铰链关节的影响,它只能沿着门轴旋转,也就是开门的效果了。

本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id文章来源地址https://www.toymoban.com/news/detail-613591.html

到了这里,关于第二十九章 Unity关节Joint的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 第十九章 Unity 其他 API

    本节介绍一些其他经常使用的Unity类。首先,我们回顾一下Vector3向量类,它既可以表示方向,也可以表示大小。它在游戏中可以用来表示角色的位置,物体的移动/旋转,设置两个游戏对象之间的距离。在我们之前的课程中,我们讲过向量的一些运算。例如向量的加法可以表示

    2024年02月05日
    浏览(39)
  • 第五十九章 Unity 发布Android平台

    本章节我们讲解如何打包发布到安卓手机平台。要为 Android 构建和运行应用程序,必须安装 Unity Android Build Support 平台模块。还需要安装 Android 软件开发工具包(SDK)和原生开发工具包(NDK)才能在 Android 设备上构建和运行代码。默认情况下,Unity 会安装基于 OpenJDK 的 Java 开

    2024年02月14日
    浏览(43)
  • 第三十九章 Unity 图像 (Image) UI

    本章节,我们介绍一下“Image”UI元素,首先我们创建一个新场景“SampleScene2.unity”。然后我们点击菜单栏“GameObjec”-“UI”-“Image”,如下所示 我们将其放置到了中间位置,检视面板中的参数如下  默认情况下,这个“Image”的尺寸是100 * 100像素。 这里,我们主要介绍它的

    2024年02月10日
    浏览(46)
  • 第四十九章 Unity UI适配器组件

    首先,我们介绍内容大小适配器 (Content Size Fitter)组件。 我们新建一个“SampleScene6.unity”场景,然后添加一个Text UI元素,让其居中显示,并且尺寸设置为50*30。   由于我们设置Text的尺寸在水平方向上面太小,也就是Width值太小,里面的内容“New Text”无法全部显示。当然,我

    2024年02月04日
    浏览(44)
  • Unity(第二十一部)动画的基础了解(感觉不了解其实也行)

    动画视频 Play Automatically 是否自动播放 Animate Physics 驱动方式,勾选后是物理驱动 Culling Type 剔除方式 默认总是动画化就会一直执行下去,第二个是基于渲染播放(离开镜头后不执行), 如果没有动画的话,可以自己做,点击窗口动画进入动画面板 选中物体,创建动画 动画就

    2024年03月11日
    浏览(44)
  • Unity基础 弹簧关节SpringJoint

    弹簧关节 在游戏开发中,物体之间的交互性是非常重要的。为了模拟现实世界中的弹性特性,Unity提供了弹簧关节(Spring Joint)组件。通过弹簧关节,我们可以轻松实现物体之间的弹性交互效果。本文将详细介绍Unity中的弹簧关节,包括其基本原理、属性设置和示例应用。 一

    2024年02月13日
    浏览(61)
  • Unity基础 固定关节 FixedJoint

    Unity是一款强大的游戏开发引擎,它提供了各种丰富的功能和组件,使开发者能够轻松创建复杂的游戏世界。其中,固定关节(FixedJoint)是Unity中一个非常重要的组件,它用于实现物体之间的固定连接。     组件主要面板属性: Connected Body对关节所依赖的刚体的引用(可选)。

    2024年02月11日
    浏览(31)
  • 第二十三章 Unity 材质

    3D模型主要是通过材质(Material)和贴图(Texture)来表现其精美的外表,说白了就是一张“画皮”而已。我们之前的DirectX课程中介绍过材质,它实际就是对光的反射率,这样简单的设置并不能展现3D模型的外观,因此就引入了贴图来展示模型物体的表面纹理。请 注意,贴图是

    2024年02月16日
    浏览(43)
  • 第二十一章 Unity 光源

    光源是每个场景必不可少的部分,光源除了能够照亮场景之外,还可以产生阴影效果。 Unity中分为四种 光源类型 : 1. 方向光:Directional Light 用于模拟太阳光,方向光任何地方都能照射到。 2. 点光源:Point Light 用于模拟电灯泡的照射效果。 3. 聚光灯:Spot Light 用于模拟聚光灯

    2024年02月16日
    浏览(45)
  • 第二十八章 Unity射线检测

    本章节我们介绍一下射线。射线就是从一个固定点向一个方向发射出一条直线,在发射过程中需要判断该射线有没有与游戏物体发送碰撞。射线既可以用来检测射击游戏中武器指向目标;又可以判断鼠标是否指向游戏物体。射线的创建方式,一般使用代码来实现。接下来,我

    2024年02月11日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包