unity 横版过关单向通行实现(PlatformEffector2D)

news2024/11/6 9:43:35

目录

  • 前言
  • 一、什么是 PlatformEffector2D?
  • 二、使用步骤
    • 1.创建模型
    • 2.创建jump脚本
    • 3.PlatformEffector2D组件
  • 三、效果
  • 总结


前言

在 2D 游戏中,处理角色与平台之间的交互是一个常见但复杂的任务。为了简化这一过程,Unity 提供了 PlatformEffector2D 组件,提供了更灵活的方式来定义角色与平台之间的交互行为。


一、什么是 PlatformEffector2D?

PlatformEffector2D 是 Unity 中的一个 2D 物理组件,用于调整 2D 角色与平台之间的交互行为。通常情况下,角色在跳跃、站立或行走时需要与平台进行交互,PlatformEffector2D 可以实现这些行为并提供更多的控制选项。

PlatformEffector2D 提供了许多优势,使得处理角色与平台交互变得更加简单和灵活:

  • 简化交互行为:通过 PlatformEffector2D,无需手动编写复杂的代码来实现角色与平台之间的交互行为,而是通过简单的属性调整就能完成。
  • 灵活性:PlatformEffector2D 提供了多种属性选项,允许根据游戏需求调整平台的行为,包括曲率、摩擦力、反弹力等。
  • 可视化编辑:所有属性都可以通过 Unity 编辑器直观地进行调整,可以立即看到修改的效果,从而加速开发过程

二、使用步骤

1.创建模型

创建3个模型
在这里插入图片描述
分别挂上对应的collider
在这里插入图片描述
在这里插入图片描述
圆球上还需要加上刚体用于碰撞检测和移动
在这里插入图片描述

2.创建jump脚本

创建一个jump脚本,挂着圆球上
代码如下(示例):

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

public class Jump : MonoBehaviour
{
    private Rigidbody2D rb;
    public float jumpForce;

    public float moveSpeed;


    // Start is called before the first frame update
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        if (Input.GetKey(KeyCode.Space))
        {
            rb.velocity = new Vector3(0, jumpForce, 0);
        }

        if (Input.GetKey(KeyCode.A))
        {
            rb.velocity = new Vector3(-moveSpeed, 0, 0);
        }

        if (Input.GetKey(KeyCode.D))
        {
            rb.velocity = new Vector3(moveSpeed, 0, 0);
        }
    }
}

3.PlatformEffector2D组件

在需要穿越的墙面或者平面添加PlatformEffector2D组件
并且需要勾上collider的Used By Effector
在这里插入图片描述
在这里插入图片描述

  1. 表面曲率(Surface Arc):表面曲率定义了平台边缘的曲率程度,影响角色在平台边缘的移动。设置曲率为 0 表示平台边缘是直线的,而设置较高的曲率则会使边缘更加圆滑。
  2. 旋转角度(Rotation Angle):旋转角度允许定义平台的旋转角度,这在设计斜坡或倾斜平台时特别有用。
  3. 表面类型(Surface Type):表面类型定义了角色在平台表面上的行为。可以选择 Standard(标准)、Ignored(忽略)、Frictionless(无摩擦力)或 Custom(自定义)之一。选择 Custom 时,可以进一步调整摩擦力和反弹力。
  4. 用于下降的边缘(Used by Effector):可以选择允许角色在下降时忽略平台边缘,这对于角色从平台边缘下落时避免意外停顿非常有用。
  5. One Way(单向):启用此选项后,角色只能从平台的一侧穿过,另一侧则不可穿越。这在设计上升台阶或特定方向移动的平台时非常有用

三、效果

在这里插入图片描述

总结

PlatformEffector2D 是 Unity 中一个强大的工具,能够简化 2D 游戏中角色与平台之间的交互设计。通过使用它,可以更快地创建出具有流畅交互的游戏世界,提升游戏体验。如果你是一个 2D 游戏开发者,不妨尝试使用 PlatformEffector2D 来改善游戏中的平台交互效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1549824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM(五)——类加载阶段

一、类加载阶段 一个类型从被加载到虚拟机内存中开始&#xff0c;到卸载出内存为止&#xff0c;它的整个生命周期将会经历加载 &#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff08;Resol…

基于PHP高校网上教材征订系统的设计与实现(论文+源码)_kaic

高校网上教材征订系统设计与实现 摘 要 本高校网上教材征订系统是针对目前高校网上教材征订管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的高校网上教材征订系统存在的问题进行分析&#xff0c;结合计算机系统的结构、概念、模型、原理、方法&#xff0c;在计算…

VBA高级应用30例应用2:MouseMove鼠标左键按下并移动鼠标事件

《VBA高级应用30例》&#xff08;版权10178985&#xff09;&#xff0c;是我推出的第十套教程&#xff0c;教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开&#xff0c;这套教程案例与理论结合&#xff0c;紧贴“实战”&#xff0c;并做“战术总结”&#xff0c;以…

【GitLab】Ubuntu 22.04 快速安装 GitLab

在 Ubuntu 22.04 上安装最新版本的 GitLab&#xff0c;可以按照以下步骤操作&#xff1a; 1. 更新系统&#xff1a; 在终端中执行以下命令以确保系统是最新的&#xff1a; sudo apt update sudo apt upgrade2. 安装依赖&#xff1a; 安装 GitLab 所需的依赖包&#xff1a; …

唯美动态个人404页面源码

源码介绍 手机端先加载静态图再缓慢加载gif动图&#xff0c;电脑端先加载静态图在加载mp4。提升打开速度&#xff01; 源码截图 下载地址 唯美动态个人404页面源码

BUG定位---一起学习吧之测试

判断一个BUG是前端还是后端的&#xff0c;通常需要根据BUG的具体表现、发生的环境以及相关的技术栈来进行分析。以下是一些常用的判断方法&#xff1a; 错误发生的位置&#xff1a; 如果BUG涉及的是页面的布局、样式、交互效果等&#xff0c;那么很可能是前端的BUG。如果BUG与…

架构师之路--Docker的技术学习路径

Docker 的技术学习路径 一、引言 Docker 是一个开源的应用容器引擎&#xff0c;它可以让开发者将应用程序及其依赖包打包成一个可移植的容器&#xff0c;然后在任何支持 Docker 的操作系统上运行。Docker 具有轻量级、快速部署、可移植性强等优点&#xff0c;因此在现代软件开…

自定义你的商店 – 设计WooCommerce商店的新方法

WooCommerce 8.8即将推出&#xff0c;带来了一种无需代码即可创建精美商店的新方法。向“自定义你的商店”问好&#xff0c;这是一项全新功能&#xff0c;将取代“个性化你的商店”入门步骤。 自定义你的商店将利用最新的WordPress站点编辑工具以及酷炫的新Pattern Assembler …

RHCE-网络服务实验1

要求: 请给openlab搭建web网站 网站需求: 基于域名www.epenlab.com可以访问网站内容为 welcome to openlab!!!给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站&#xff0c;基于www.openlab.com/student 网站访问学生信息&#xff0c;www.openlab.com/…

简单了解C++线程库

thread类简单介绍 在C11之前&#xff0c;涉及到多线程问题&#xff0c;都是和平台相关的&#xff0c;比如windows和linux下各有自己的接 口&#xff0c;这使得代码的可移植性比较差。C11中最重要的特性就是对线程进行支持了&#xff0c;使得C在 并行编程时不需要依赖第三方库…

Llama模型下载

最近llama模型下载的方式又又变了&#xff0c;所以今天简单更新一篇文章&#xff0c;关于下载的&#xff0c;首先上官网&#xff0c;不管在哪里下载你都要去官网登记一下信息&#xff1a;https://llama.meta.com/llama2 然后会出现下面的信息登记网页&#xff1a; 我这里因为待…

9.windows ubuntu 子系统,centrifuge:微生物物种分类。

上次我们用了karken2和bracken进行了物种分类&#xff0c;这次我们使用centrifuge. Centrifuge 是一种用于快速和准确进行微生物分类和物种鉴定的软件。其主要功能包括&#xff1a; 快速分类和物种鉴定: Centrifuge 可以对高通量测序数据&#xff08;如 metagenomic 或 RNA-Se…

Redis 教程系列之Redis 发布订阅(十五)

Redis 发布订阅 Redis 发布订阅(pub/sub)是一种消息通信模式&#xff1a;发送者(pub)发送消息&#xff0c;订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 &#xff0c; 以及订阅这个频道的三个客户端 —— client2 、 client5 和 cl…

Mac安装minio

Mac安装minio 本文介绍使用 mac 安装 MinIO。 所有软件安装优先参考官网&#xff1a;MinIO Object Storage for MacOS — MinIO Object Storage for MacOS #使用 brew 安装 minio brew install minio/stable/minio#找到 minio tong ~ $ brew list minio /opt/homebrew/Cella…

【深度学习|基础算法】2.AlexNet学习记录

AlexNet示例代码与解析 1、前言2、模型tips3、模型架构4、模型代码backbonetrainpredict 5、模型训练6、导出onnx模型 1、前言 AlexNet由Hinton和他的学生Alex Krizhevsky设计&#xff0c;模型名字来源于论文第一作者的姓名Alex。该模型以很大的优势获得了2012年ISLVRC竞赛的冠…

循环神经网络之序列模型

自回归模型 自回归模型&#xff1a; 只与x 有关 &#xff0c;对自己执行回归隐变量自回归&#xff1a;与X 和过去观测总结h 都有关 案例 %matplotlib inline import torch from torch import nn from d2l import torch as d2lT 1000 # 总共产生1000个点 time torch.aran…

【深度学习基础(4)】pytorch 里的log_softmax, nll_loss, cross_entropy的关系

一、常用的函数有&#xff1a; log_softmax,nll_loss, cross_entropy 1.log_softmax log_softmax就是log和softmax合并在一起执行&#xff0c;log_softmaxlogsoftmax 2. nll_loss nll_loss函数全称是negative log likelihood loss, 函数表达式为&#xff1a;f(x,class)−x[…

备考ICA----Istio实验11---为多个主机配置TLS Istio Ingress Gateway实验

备考ICA----Istio实验11—为多个主机配置TLS Istio Ingress Gateway实验 1. 部署应用 kubectl apply -f istio/samples/helloworld/helloworld.yaml -l servicehelloworld kubectl apply -f istio/samples/helloworld/helloworld.yaml -l versionv12. 证书准备 接上一个实验…

Day23:事务管理、显示评论、添加评论

事务管理 事务的定义 什么是事务 事务是由N步数据库操作序列组成的逻辑执行单元&#xff0c;这系列操作要么全执行&#xff0c;要么全放弃执行。 事务的特性(ACID) 原子性(Atomicity):事务是应用中不可再分的最小执行体&#xff08;事务中部分执行失败就会回滚 。一致性(C…

开源大数据集群部署(十八)Hive 安装部署

作者&#xff1a;櫰木 1 创建hive Kerberos主体 bash /root/bigdata/getkeytabs.sh /etc/security/keytab/hive.keytab hive2 安装 在hd1.dtstack.com主机root权限下操作&#xff1a; 解压包 [roothd3.dtstack.com software]# tar -zxvf apache-hive-3.1.2-bin.tar.gz -C …