【unity造轮子】最简单的双向可穿越平台制作(Platform Effector 2D的使用)

news2024/11/27 15:34:00

文章目录

  • 先看最终效果
  • 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.一些常见的效果包括:

  1. 单向平台:允许游戏角色从平台的底部穿过,然后站在平台的顶部。这在很多2D平台游戏中是常见的效果。
  2. 表面弹力:为平台表面添加弹力,使游戏角色在接触平台时产生弹跳效果。
  3. 表面摩擦:控制游戏角色在平台表面上移动时的摩擦力,可以影响角色在平台上的移动速度。

3.Platform Effector 2D具有各种属性,使我们可以控制它的行为。这些属性包括:

  1. Surface Arc:它用于控制平台曲面上的弧度,可以让平台变得更加平滑或更加弯曲。
  2. Use One-Way:它用于控制玩家是否可以从平台下面穿过,可以让平台变成像一个通道一样。
  3. Surface Penalty:它用于控制玩家在平台上的摩擦力大小,可以让玩家滑动更远或更少。
  4. 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 层

最终效果

在这里插入图片描述

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

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

相关文章

代码随想录算法训练营第一天| 704.二分查找、27.移除元素

LeetCode704.二分查找 链接:(704.二分查找) 题目描述&#xff1a;给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 题目就…

远程服务调用的简单应用,并轻松解决LinkedHashMap无法转成相关实体类的问题

&#x1f3c0;&#xff08;一&#xff09;为啥需要远程服务调用&#xff1f; &#x1f420;知其然还要知其所以然&#xff0c;在我们的生产项目上一般而言会部署多个微服务&#xff0c;每个微服务会负责不同版块的业务工作。如果某个微服务需要借助另外的某些微服务中的接口才能…

尚硅谷甄选

搭建后台管理系统模板 项目初始化 今天来带大家从0开始搭建一个vue3版本的后台管理系统。一个项目要有统一的规范&#xff0c;需要使用eslintstylelintprettier来对我们的代码质量做检测和修复&#xff0c;需要使用husky来做commit拦截&#xff0c;需要使用commitlint来统一提…

tb6612电机驱动与JGB37-520减速直流电机

tb6612电机驱动与JGB37-520减速直流电机 文章目录 tb6612电机驱动与JGB37-520减速直流电机电机驱动模块TB6612TB6612的引脚说明真值表&#xff08;直流电机的驱动状态&#xff09;TB6612的正转反转原理 直流电机原理减速器编码器一、关于编码器的介绍二、编码器的工作原理&…

Linux:DHCP服务

我的DHCP服务器 是 centos7 使用的yum安装DHCP服务&#xff08;如果不会搭建yum库可以查看&#xff09; Linux&#xff1a;rpm查询安装 && yum安装_鲍海超-GNUBHCkalitarro的博客-CSDN博客 我的环境为&#xff1a; 两台centos7一台win10 第一台centos7 为 DHCP服务器…

【Python 私有变量和私有方法】零基础也能轻松掌握的学习路线与参考资料

Python是一种面向对象的编程语言。在Python类中&#xff0c;私有变量和私有方法是常见的概念。私有变量和私有方法是指只能在类内部访问的变量和方法。在本文中&#xff0c;我们将介绍Python私有变量和私有方法的学习路线&#xff0c;并给出参考资料和优秀实践。 学习Python面…

【MySQL数据库 | 第七篇】图形化界面工具DataGrip基础应用教学

目录 前言&#xff1a; DataGrip安装界面&#xff1a; 利用DataGrip创建数据库&#xff1a; 利用DataGrip为数据库创建表&#xff1a; 利用datagrip修改表&#xff1a; 添加元素&#xff1a; 结束&#xff01; 前言&#xff1a; 在之前我们一直接触的是MySQL命令行语句开…

macOS Sonoma 14beta With OpenCore 0.9.3 and winPE双引导分区黑苹果原版镜像

镜像特点&#xff08;原文地址&#xff1a;http://www.imacosx.cn/113888.html&#xff09; 完全由黑果魏叔官方制作&#xff0c;针对各种机型进行默认配置&#xff0c;让黑苹果安装不再困难。系统镜像设置为双引导分区&#xff0c;全面去除clover引导分区&#xff08;如有需要…

RL - 强化学习 马尔可夫决策过程 (MDP) 转换 马尔可夫奖励过程 (MRP)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/131097165 马尔可夫决策过程&#xff08;Markov Decision Process&#xff0c;MDP&#xff09;和马尔可夫奖励过程&#xff08;Markov R…

FluxMQ 规则引擎 《一》

规则引擎介绍 演示环境 http://demo.fluxmq.com:50000/ 账号&#xff1a;fluxmq密码&#xff1a;fluxmq 简介 FluxMQ Rule Engine (以下简称规则引擎) 用于配置FluxMQ 消息流与设备事件的处理、响应规则。规则引擎不仅提供了清晰、灵活的 “配置式” 的业务集成方案&#xff0…

(二)CSharp-关于内存分配的总结和疑惑(未解决)

同时看了好几本书&#xff0c;对变量的内存分配概念总是稀里糊涂的。所以干脆专门写一篇文章来对C#内存分配进行研究和总结。 1、值类型和引用类型 对值类型&#xff1a; 值类型实例通常存在线程的堆栈里。即所有值类型的非成员数据都放在线程的堆栈里。如果值类型是类的数据…

4.使用Express跨域资源共享(继上一章)

4.5、CORS跨域资源共享 1.接口的跨域问题 刚才编写的GET和POST接口&#xff0c;存在一个很严重的问题&#xff1a;不支持跨域请求。 解决接口跨域问题的方案主要有两种&#xff1a; ①CORS&#xff08;主流的解决方案&#xff0c;推荐使用&#xff09; ②JSONP&#xff08…

Windows软件架构概念

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来聊聊Windows软件架构的概念。 Shaw和Garlan在他们划时代的著作中以如下方式讨论了软件的体系结构&#xff1a;从第一个程序被划分成模块开始&#xff0c;软件系统就有了体系结构。现在&#xff0c…

PostgreSQL部署出现只有超级用户能创建扩展

最近在Windows Server服务器上部署PostgreSQL12遇到了一个问题,部署完成时,任务问题都没有,也可以远程连接。但是在给数据库添加扩展时出现了如下所述的问题: 执行sql命令create extension "uuid-ossp"出现问题如下:create extension “uuid-ossp” 错误: 创建扩…

文心一言 VS 讯飞星火 VS chatgpt (34)-- 算法导论5.3 1题

一、Marceau 教授不同意引理 5.5 证明中使用的循环不变式。他对第1次送代之前循环不变式是否为真提出质疑。他的理由是&#xff0c;我们可以很容易宣称一个空数组不包含0排列。因此一个空的子数组包含一个0排列的概率应是 0&#xff0c;从而第 1次选代之前循环不变式无效。请重…

Python3+Selenium2完整的自动化测试实现之旅(三):Selenium-webdriver提供的元素定位方法

目录 前言 前端技术名词解释 Selenium-webdriver定位元素 一、 通过id定位 二、通过name定位 三、通过class定位 四、 通过tag定位 五、 通过link定位 六、通过partial_link定位 七、 通过Xpath定位 八、通过CSS定位 总结 前言 本篇以实例介绍selenium下的webdriv…

mysql数据库备份文件回复的方法

备份数据表的恢复 前提配置 关闭防火墙 systemctl stop firewalld iptables -F setenforce 0 安装了mysql数据库 以下列库表为例 先有一个数据库mydb&#xff0c;包含两个数据表customer,timestamps; 其中customer数据表包含数据如下&#xff1a; 备份数据表的回复 第一步…

回溯算法之深度优先搜索

目录 放牌 员工的重要性 图像渲染 岛屿的周长 被围绕的区域 岛屿的数量 岛屿的最大面积 电话号码的字母组合 二进制手表 组合总和 活字印刷 N皇后 深度优先搜索&#xff08;Depth First Search&#xff09;------ 一条道走到黑 放牌 假如有编号为1~3的3张扑克牌…

cpython编译与运行

一.配置环境 python 本身不能运行 cpython 的语法&#xff0c;需要 编译 后引用 需要 gcc 编译器 和 cython 编译器 gcc编译器 把 c语言 编译成扩展模块 Cython 编译器是一种源到源的编译器 python 语法编译成 c语法 1.安装gcc 编译器 gcc 编译器可以下载 Visual Studio 或者…

Android系统的启动流程(一):进入Zygote进程的初始化

Android系统的启动流程 概要 本篇文章主要是从Android系统启动电源开始介绍到程序运行到Java框架层并且完成Zygote进程的启动为止。下面先给出一张简单的概要图&#xff0c;本篇文章将会从源码进行分析Android的部分启动流程&#xff0c;这里的源码来自于AndroidCodeSearch,截…