• 本文概述: 分析Unity中几个2D物理关节组件的基本功能、使用方法、运用场景等
  • 开发环境:Unity2019.3.0a2 / VS2017
  • 项目资源包: 2D Joints Starter
  • 说明: 较比于源项目,我自行做了如下设置
    • 主场景为Demo
    • 对Unity新版本下的新参数进行解释
    • 简单做了新的UI
    • 对各脚本的注释及修改
    • 对场景下物体有序归类: 将各组件的示例物体归于对应组件名称的空物体下,例如涉及DistanecJoint2D组件的物体存放于Distance Joint 2D物体下等


Distance Joint 2D 距离关节

  • 基本功能:

    • 使两物体被距离关节限制,保持一定距离
    • 一个物体可对另一个物体做基于物理特性的环绕运动(环绕物体与被环绕物体)
    • 注意:环绕物体自身不旋转
  • 使用方法:
    • Enable Collision:被关节连接的两个物体是否能相互碰撞
    • Connected Rigid Body:定义被环绕物体的锚点到指定物体上
    • Auto Configure Connected:自动配置锚点与世界空间中的锚点匹配(暂没用过,但我相信点了你会Ctrl+Z的)
    • Anchor:环绕物体锚点的坐标
    • Connected Anchor:被环绕物体锚点的坐标
    • Auto Configure Distance:自动计算并设置两物体的距离,即在运行时拖拽环绕物体则会改变Distance,若关闭则Distance始终为预设值
    • Distance:两物体的距离
    • Max Distance Only:使得物体摆动到较高位置时会沿关节连线方向下沉稍许距离.若关闭,物体在环绕运动中的距离始终为Distance
  • 实现用途:
    • 摆锤

Spring Joint 2D 弹簧关节

  • 基本功能:

    • 使两物体被弹簧关节限制,保持一定范围距离
    • 一个物体可对另一个物体做基于物理特性的弹簧拉伸压缩运动(副物体与主物体)
    • 注意:副物体在围绕主物体作类弹簧运动时,自身也会旋转
  • 使用方法:
    • Enable Collision:被关节连接的两个物体是否能相互碰撞
    • Connected Rigid Body:定义主物体的锚点到指定物体上
    • Auto Configure Connected:自动配置锚点与世界空间中的锚点匹配
    • Anchor:副物体锚点的坐标
    • Connected Anchor:主物体锚点的坐标
    • Auto Configure Distance:自动计算并设置两物体的距离,即在运行时拖拽环绕物体则会改变Distance,若关闭则Distance始终为预设值
    • Distance:两物体的距离
    • Damping Ratio:阻尼比,值范围[0,1]
    • Frequency:震动频率,单位Hz,值范围[0,1000000],但个人认为[0,10]较为常用
  • 实现用途:
    • 弹簧
    • 弹射器

Hinge Joint 2D 铰链关节

  • 基本功能:

    • 使物体围绕一个固定点旋转
  • 使用方法:
    • Edit Joint Angular Limits :手动调节旋转中心及可旋转角度范围
    • Enable Collision:物体是否能相互碰撞(但相比于前2个关节,此处用法暂不明)
    • Connected Rigid Body:定义物体的锚点到指定物体上
    • Auto Configure Connected:自动配置锚点与世界空间中的锚点匹配
    • Anchor:物体旋转中心较于物体自身锚点的坐标.通常调节此参数
    • Connected Anchor:暂不明具体含义,总之使用Edit Joint Angular Limits足矣
    • Use Motor:是否使用马达.若使用,则使铰链关节保持稳定转速;若不适用,则就是简单受到重力因素而摆动的铰链关节
      • Motor Speed:旋转速度.单位米/秒或者角度/秒,取决于是线性马达还是角电机.可为负值表示反方向
      • Maximum Motor Force:最大扭矩值,表示到最大旋转速度的难易程度.建议默认值
    • Use Limits:是否使用角度限制.若使用则铰链关节旋转到限制角度后就停止.参数包含Lower Angle及Upper Angle
  • 实现用途:
    • 横版游戏中的障碍,跳台

Slider Joint 2D 滑动关节

  • 基本功能:

    • 使物体可在某方向上进行滑动(自动或手动)
  • 使用方法:
    • Enable Collision:物体是否能相互碰撞
    • Connected Rigid Body:定义物体的锚点到指定物体上
    • Auto Configure Connected:自动配置锚点与世界空间中的锚点匹配
    • Anchor:滑动物体的锚点,默认0为物体中心
    • Connected Anchor:物体滑向的锚点
    • Auto Configure Angle:根据当前Scene内的坐标,自动调节物体起始的角度
    • Angle:自行设置并固定物体起始时的角度
    • Use Motor:是否使用马达.若使用,则可自动滑动到终点
      • Motor Speed:滑动速度,单位同上.可正可负
      • Maximum Motor Force:最大扭矩值,含义同上
    • Use Limits:是否使用距离限制,限制滑块两端的距离.也就是说,Connected Anchor锚点始终在Lower Translation和Upper Translation两端内,就在这样一个范围内进行滑动.
  • 实现用途:
    • 自动或者手动的滑块(机关)

Wheel Joint 2D 车轮关节

  • 基本功能:

    • 模拟实现车轮的运动状态,即车轮以车轴为圆心旋转
  • 使用方法:
    • Enable Collision:被关节连接的两个物体是否能相互碰撞
    • Connected Rigid Body:定义车轮的锚点到车轴上
    • Auto Configure Connected:自动配置车轮锚点与世界空间中的锚点匹配
    • Anchor:车轮锚点的坐标
    • Connected Anchor:车轴锚点的坐标
    • Suspension:悬架,用于配置车轮震动效果等
      • Damping Ratio:阻尼比,值范围[0,1]
      • Frequency:震动频率,单位Hz,值范围[0,1000000],此处建议(0,10]
      • Angle:可以调节车轮的角度,但尚未知晓具体作用
    • Use Motor:是否使用马达.若使用,则可实现自动旋转
      • Motor Speed:转动速度,单位同上.可正可负
      • Maximum Motor Force:最大扭矩值,含义同上
  • 实现用途:
    • 汽车车轮
    • 不规则自转
    • 某些旋转特效
  • 备注:在demo2场景下还有一个Wheel Joint2D的实例,详细配置过程不再赘述



参考

Unity - 2D中的物理关节的更多相关文章

  1. 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 在第一篇文章[Unity3D基础教程] ...

  2. 【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了MonoBehaviou ...

  3. 实例介绍Cocos2d-x中Box2D物理引擎:使用关节

    下面我们将使用Box2D物理引擎技术进行重构.使得关节能够掌握如何在Box2D使用关节约束.HelloWorldScene.cpp中与使用关节的相关代码如下: void HelloWorld::add ...

  4. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  5. 喵的Unity游戏开发之路 - 推球:游戏中的物理

    很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...

  6. Unity 2D入门基础教程之僵尸先生

    注:这是根据网上教程完成的. 翻译:http://blog.1vr.cn/?p=1422 原文:http://www.raywenderlich.com/61532/unity-2d-tutorial ...

  7. Unity 2D 入门

    原文:Introduction to Unity 2D 作者:Sean Duffy 译者:kmyhy 3/15/17 更新说明: 升级至 Unity 5.5. Unity 是一个非常流行和强大的游戏引 ...

  8. 【转】通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 在第一篇文章[Unity3D基础教程] ...

  9. i3D的一篇Unity教程中的笔记

    原地址:http://blog.sina.com.cn/s/blog_72b936d80100wwej.html 以下是i3D的一篇Unity教程中的笔记. i3D的这篇教程是[i3D.Next-Ge ...

随机推荐

  1. [Pulsar系列] 10分钟学会Pulsar消息系统概念

    Apache Pulsar Pulsar是一个支持多租户的.高性能的服务与服务之间消息通讯的解决方案,最初由雅虎开发,现在由Apache软件基金会管理. Pulsar的主要特性如下: Pulsar实例 ...

  2. java随笔之接口

    /* * 接口大致上可以分为:哑接口,抽象接口,接口类 * 哑接口:就是public,protected(注意protect有包权限,只有本包才开放接口)方法 * 抽象接口:就是哑接口变为抽象方法,在 ...

  3. APP启动优化

    1. 去除启动黑屏 1.1 在style.xml中定义两种主题: <style name="AppTheme" parent="Theme.AppCompat.Da ...

  4. intellIJ IDEA学习笔记

    如果你初次用idea,毫无目的的度娘如何使用IDEA     浪费的将会是大量的时间.为以表诚意, 上一套IDEA教学视频,以表我诚意.(下载地址:https://pan.baidu.com/s/1g ...

  5. 工作中常见的五种技术leader

    力不从心型 在工作中有种技术leader,总认为自己是最好的.在方案设计的时候,自己有一种方案,下属有一种方案.leader非要别人听他的.如果两种方案没有优劣之分,比较建议的做法是让真正实施的人按照 ...

  6. 「雕爷学编程」Arduino动手做(9)——火焰传感器模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  7. 阿里巴巴JAVA开发规范学习笔记

    一.编程规约 (一)命名规约 1.类名驼峰.领域模型除外VO.BO.DTO.DO统称POJO 4.数组String[] args 8.枚举类 Enum ,其实就是特殊的常量类,构造方法强制私有 ( 二 ...

  8. iView表格行验证问题

    iView Table 3.2.0 版本 需求: 验证前两行的姓名不能为空: 解决方案: 判断是否前两行,如是则增加校验规则: 需在<FormItem>前加<Form>标签否则 ...

  9. 【JS档案揭秘】第四集 关于this的讨论到此为止

    网上关于this的指向问题的博客文章很多,但大多数都是复制粘贴,也不能用简洁的语言讲清楚,而是不停地写一些示例,看得人云里雾里. 这一集,我只给出结论,以及判定的通用方法,至于是否确实如我所讲,大家可 ...

  10. K8S学习笔记之filebeat采集K8S微服务java堆栈多行日志

    0x00 背景 K8S内运行Spring Cloud微服务,根据定制容器架构要求log文件不落地,log全部输出到std管道,由基于docker的filebeat去管道采集,然后发往Kafka或者ES ...