文章目录
- 先看最终效果
- 2D平台效应器(Platform Effector 2D)
- 1. 这里简单解释一下
- 2.一些常见的效果包括:
- 3.Platform Effector 2D具有各种属性,使我们可以控制它的行为。这些属性包括:
- 可向上穿越的平台
- 向下穿越的平台
- 最终效果
先看最终效果
实现这个效果的重点就是2D平台效应器(Platform Effector 2D)
2D平台效应器(Platform Effector 2D)
1. 这里简单解释一下
2D平台效应器(Platform Effector 2D)是Unity中的一个组件,它可以用于为2D游戏中的平台添加一些特殊的物理效果。要使用2D平台效应器,您需要首先为游戏对象添加一个2D碰撞器组件,然后再添加PlatformEffector2D组件。在PlatformEffector2D组件的属性面板中,您可以调整各种参数以实现所需的效果。
2.一些常见的效果包括:
- 单向平台:允许游戏角色从平台的底部穿过,然后站在平台的顶部。这在很多2D平台游戏中是常见的效果。
- 表面弹力:为平台表面添加弹力,使游戏角色在接触平台时产生弹跳效果。
- 表面摩擦:控制游戏角色在平台表面上移动时的摩擦力,可以影响角色在平台上的移动速度。
3.Platform Effector 2D具有各种属性,使我们可以控制它的行为。这些属性包括:
- Surface Arc:它用于控制平台曲面上的弧度,可以让平台变得更加平滑或更加弯曲。
- Use One-Way:它用于控制玩家
是否可以从平台下面穿过
,可以让平台变成像一个通道一样。 - Surface Penalty:它用于控制玩家在平台上的摩擦力大小,可以让玩家滑动更远或更少。
- Use Global Angle:它用于控制玩家与平台的相对角度,可以让玩家更容易或更难在平台上移动。
总之,Platform Effector 2D提供了一种有用的方式来创建2D平台游戏中的各种效果。使用它可以让游戏更加有趣和具有挑战性。
可向上穿越的平台
给平台添加2D平台效应器(Platform Effector 2D),记得勾选Use One-Way,让平台变成一个通道,当然它默认就已经勾选了
给平台添加碰撞器,勾选使用效用器
这时候就已经实现了向上单向穿越,是不是很简单
向下穿越的平台
要实现向下穿越平台,得书写代码实现,
添加脚本,将脚本挂载在人物上,代码已经添加了非常详细的注释了,这里我就不做过多的解释了
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BallJump : MonoBehaviour
{
Rigidbody2D rb2D; // 2D刚体组件
CircleCollider2D cc2D; // 2D圆形碰撞器组件
// 在游戏对象启动时执行
private void Start()
{
rb2D = GetComponent<Rigidbody2D>(); // 获取2D刚体组件
cc2D = GetComponent<CircleCollider2D>(); // 获取2D圆形碰撞器组件
}
// 每帧更新时执行
private void Update()
{
// 设置水平速度
rb2D.velocity = new Vector2(Input.GetAxisRaw("Horizontal") * 5, rb2D.velocity.y);
// 按下空格键时,给球施加向上的力
if (Input.GetKeyDown(KeyCode.Space))
{
rb2D.AddForce(Vector2.up * 10, ForceMode2D.Impulse);
}
// 按下S键时,设置圆形碰撞器为触发器
if (Input.GetKeyDown(KeyCode.S))
{
cc2D.isTrigger = true;
}
}
// 当游戏对象离开触发器时执行
private void OnTriggerExit2D(Collider2D collision)
{
// 如果离开的游戏对象属于第8层(Layer 8)
if (collision.gameObject.layer == 8)
{
// 设置圆形碰撞器不再是触发器
cc2D.isTrigger = false;
}
}
}
这段代码主要实现了一个球体在水平方向上移动,按下空格键时跳跃,以及按下S键时通过其他游戏对象的功能。记得给平台加个layer 层