Unity2D中的效应器

1 篇文章 0 订阅

Unity2D 中有5个以”Effector”为组成要素的组件,构成2D游戏的效应器组件。使用这些组件在无需编码的情况下可以构建一些特殊游戏效果,例如: 排斥力、吸引力、浮力、方向力、单向通过等,图13.4_6 是这5个组件外观。

以下是我们将要给大家介绍的5大组件,后面笔者会就每一个组件进行详述。

  •  PointEffector2D,模拟2D排斥与吸引效果。
  • SurfaceEffector2D,模拟2D物体表面方向力。
  • AreaEffector2D,模拟2D物体内部一个方向力。
  • PlatformEffector2D,模拟2D 物体平台的方向通过性。
  • Buoyancy Effector2D,模拟2D浮力效果。

下图13.4_7是官方针对前四种效应器组件给出的演示示意图,这样先让大家有一个大体的了解。

Unity2017.x最新2D特效功能

 

图13.4_7 部分精灵效应器组件效果示意图

  •   PointEffector2D。

这个组件模拟在“点范围”内,2D的排斥与吸引力效果。 如下图13.4_8所示,演示效果:当小鸟靠近红色(下方)箱子时会被一股力弹开,当靠近黑色(上方)箱子时则被一股吸引力吸住无法脱离。

制作步骤:

1: 给下图“Box_repulsive”对象添加“PointEffector2D”组件(属性窗口Add Component-->Physics2D--> PointEffector2D),其属性“Force Magnitude”表示力的大小,正数表排斥力,负数表吸引力。

2:添加PointEffector2D组件后,属性窗口会报警告信息。按照系统要求,在对应的2D碰撞体组件中需要勾选“Is Trigger”与 "Used By Effector"属性。

 Unity2017.x最新2D特效功能

 

图13.4_8  Point Effector 2D 组件设置

 

  • SurfaceEffector2D。

这个组件模拟在物体表面2D的方向力,类似表面很光滑或者表面推动力效果(类似现实生活中的刮风)。 如下图13.4_9所示,演示效果:当小鸟靠近绿色箱子(中间有斜度的并排四个箱子)表面时会被一股力快速推下去,仿佛受到了一种方向力的推动。

制作步骤:

1: 给下图Box_1、Box_2、Box_3、Box_4对象添加“SurfaceEffector2D”组件(属性窗口Add Component-->Physics2D--> SurfaceEffector2D),其属性“Speed”表示速度,正数表向右的方向力,负数表向左的方向力。

2:添加SurfaceEffector2D组件后,属性窗口会报警告信息。按照系统要求,在对应的2D碰撞体组件中需要勾选 "Used By Effector"属性。

Unity2017.x最新2D特效功能

 

图13.4_9  SurfaceEffector2D 组件设置

  • AreaEffector2D。

这个组件模拟在“区域内部”,2D的方向力效果。 如下图13.4_10所示,演示效果:当程序运行后,大量小鸟会被四根大型管道内不同方向的力所推动不断的向前运动。由于设置的四根管道组成了一个封闭逆时针的循环往复力空间,所以大量小鸟会不断的逆时针往复无限运动。

制作步骤:

1: 给下图Pipe_1、Pipe_2、Pipe_3、Pipe_4对象添加“AreaEffector2D”组件(属性窗口Add Component-->Physics2D--> AreaEffector2D),其属性“Use Global Angle”表示全局角度建议勾选,“Force Angle”表示力的角度(0:右方、90:上方、180:左方、270下方),“Force Magnitude”表示力的大小。

2:添加AreaEffector2D组件后,属性窗口会报警告信息。按照系统要求,在对应的2D碰撞体组件中需要勾选“Is Trigger”与 "Used By Effector"属性。

Unity2017.x最新2D特效功能

 

图13.4_10  AreaEffector2D 组件设置

 

  •   PlatformEffector2D 。

这是一个构建“方向通过性”组件,详细说就是2D精灵关于某个角度的可通过性。 如下图13.4_11所示,演示效果:当小鸟靠近不同2D对象时,其可通过性都不一样。

1>:左上角“LandSky1”对象只能从下往上通过。

2>:左下角“LandSky2”对象只能从上往下通过。

3>:中间“Box1”对象左边沿无法通过,其他三个方向均可。

4>:右边“Box2”对象只有右下角方向可以通过,其他三个方向无法通过。

结合图13.4_11左边的扇形区域,我们就可以总结规律是: 凡是在弧度之内的2D对象边沿都不能通过,反之可以通过。

以左上角“LandSky1”对象为例,叙述制作步骤:

1: 参考图 13.4_12所示,给“LandSky1”添加“PlatformEffector2D”组件(属性窗口Add Component-->Physics2D--> PlatformEffector2D)。其属性“Rotational Offset”表示角度偏移量,填入-90(单位为“度”,表示-90角度)。确认勾选 “Use One Way”。属性“Surface Arc”填入 180,表示表面180度之内阻止通过。

2:添加PointEffector2D组件后,属性窗口会报警告信息。按照系统要求,该对象必须存在2D碰撞体组件,且需要确认勾选了"Used By Effector"属性。

Unity2017.x最新2D特效功能

 

              图13.4_11  PlatformEffector2D组件方向通过性演示场景

 Unity2017.x最新2D特效功能

             图13.4_12  PlatformEffector2D组件重要参数

 

  • Buoyancy Effector2D。

这是浮力效应器组件,模拟2D世界的湖泊与河流等。演示效果:运行程序后,上空大量木箱在重力的作用下纷纷往下掉落,当落在水面上的木箱因为有的质量大有的质量小(注: 通过Rigibody 2D 的“Mass”属性调节物体质量)的缘故,部分木箱漂浮水面,部分逐渐下沉。如下图13.4_13所示。

制作步骤:

1: 给下图“Water”对象添加“Buoyancy Effector2D”组件(属性窗口Add Component-->Physics2D--> Buoyancy Effector2D),其属性Desity 表示水的密度,填入数值2。 Surface Level 表示水面的高度。Damping 中Linear Drag/Angular Drag 分别表示水面的线性与角阻力,填入5。Flow Angle /Flow Magnitude 等数值表示水流的角度与大小,填入一定数值后,水中的木箱等物件会随着“水流”而冲走。

2:添加Buoyancy Effector2D组件后,属性窗口会报警告信息。按照系统要求,在对应的2D碰撞体组件中需要勾选“Is Trigger”与 "Used By Effector"属性。

 Unity2017.x最新2D特效功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值