Unity - 2D中的物理关节
- 本文概述: 分析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中的物理关节的更多相关文章
- 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 在第一篇文章[Unity3D基础教程] ...
- 【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了MonoBehaviou ...
- 实例介绍Cocos2d-x中Box2D物理引擎:使用关节
下面我们将使用Box2D物理引擎技术进行重构.使得关节能够掌握如何在Box2D使用关节约束.HelloWorldScene.cpp中与使用关节的相关代码如下: void HelloWorld::add ...
- Unity 2D游戏开发教程之游戏中精灵的跳跃状态
Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...
- 喵的Unity游戏开发之路 - 推球:游戏中的物理
很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...
- Unity 2D入门基础教程之僵尸先生
注:这是根据网上教程完成的. 翻译:http://blog.1vr.cn/?p=1422 原文:http://www.raywenderlich.com/61532/unity-2d-tutorial ...
- Unity 2D 入门
原文:Introduction to Unity 2D 作者:Sean Duffy 译者:kmyhy 3/15/17 更新说明: 升级至 Unity 5.5. Unity 是一个非常流行和强大的游戏引 ...
- 【转】通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider
作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 在第一篇文章[Unity3D基础教程] ...
- i3D的一篇Unity教程中的笔记
原地址:http://blog.sina.com.cn/s/blog_72b936d80100wwej.html 以下是i3D的一篇Unity教程中的笔记. i3D的这篇教程是[i3D.Next-Ge ...
随机推荐
- Asp.NetCore源码学习[2-1]:配置[Configuration]
Asp.NetCore源码学习[2-1]:配置[Configuration] 在Asp. NetCore中,配置系统支持不同的配置源(文件.环境变量等),虽然有多种的配置源,但是最终提供给系统使用的只 ...
- Spring IoC源码解析之getBean
一.实例化所有的非懒加载的单实例Bean 从org.springframework.context.support.AbstractApplicationContext#refresh方法开发,进入到 ...
- C#之BackgroundWorker从简单入门到深入精通的用法总结
需求分析 经常用到的耗时操作,例如: 1.文件下载和上载(包括点对点应用程序传输文件,从网络下载文件.图像等)2.数据库事务(从数据库读到大量的数据到WinForm界面中的DataGridview里呈 ...
- 深入剖析PHP7内核源码(一)- PHP架构与生命周期
PHP7 为什么这么快? 全新的zval 更节约的空间,栈上分配内存 zend_string 存储字符串的Hash值,数组查询的时候不需要进行Hash计算 在HashTable桶内直接存数据,减少了内 ...
- 完美解决迅雷极速版强制升级到迅雷X
虽然迅雷已死,但是还是软件还是有点点用的.废话不好多说,直接上解决办法: 1. 找到桌面的迅雷图标,右键选择打开文件位置; 2. 根据路径找到: 相对路径:Thunder Network\Thunde ...
- 《Java 8 in Action》Chapter 1:为什么要关心Java 8
自1998年 JDK 1.0(Java 1.0) 发布以来,Java 已经受到了学生.项目经理和程序员等一大批活跃用户的欢迎.这一语言极富活力,不断被用在大大小小的项目里.从 Java 1.1(199 ...
- 搭建本地的idea激活服务器
前言 博主用的是idea这个IDE,因为最近idea官方打击第三方激活服务有些严重,所以我的idea经常处于今天可以用,到了明天就不能用的状态,所以,从idea激活的网站找到了本地的id ...
- 【CSS】Houdini, CSS的成人礼
前情提要 CSS:老板,你看ES9,ES10都出来了,您看我的事情什么时候... W3C: 这不是正在走着流程嘛!小C你不要心急! W3C:(语重心长)你看啊,我们先(1)提个开发提案章程, 然后再批 ...
- 一篇文章让你马上入门Hibernate
在前面我们学完了Struts2,接下来我们就要去学习第二个框架Hibernate. 那什么是Hibernate? Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对 ...
- shell习题1
1------->>>批量创建用户. $# --- 统计传入参数的数量 $* --- 传入若干个参数 使用id来确认用户是否存在并创建 向$*进行传参,在运行时加上需要添加的 ...