【Unity2D】制作可以左右移动的平台
学习目标:
游戏中经常出现各种可以移动的平台,如空洞骑士和死亡细胞里面的电梯。那我们也可以制作一个可以一直左右移动的平台。
先用SunnyLand的图片来实现一个简单的左右移动的平台
这个是SunnyLand的下载地址
学习内容:
先拖入一张图片两个空对象在图片中,如果我想左右移动的话保持y的坐标一致即可
然后我们创建一个脚本叫MovingPlatform。
内容如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovingPlatform : MonoBehaviour
{
public float moveSpeed;
private float waitTime;
public float totalTime;
public Transform[] movePos;
private Transform playerTransform;
//i是1则右,是0则变成左
private int i;
void Start()
{
playerTransform = GameObject.FindGameObjectWithTag("Player").transform.parent;
i = 1;
waitTime = totalTime;
}
void Update()
{
transform.position = Vector2.MoveTowards(transform.position, movePos[i].position, moveSpeed * Time.deltaTime);
//如果两点的距离小于等于0.1
if (Vector2.Distance(transform.position, movePos[i].position) <= 0.1f)
{
//且等待时间小于0
if (waitTime < 0)
{
if (i == 1)
{
i = 0;
}
else
{
i = 1;
}
waitTime = totalTime;
}
else
{
waitTime -= Time.deltaTime;
}
}
}
private void OnTriggerEnter2D(Collider2D other)
{
if(other.gameObject.CompareTag("Player") && other.GetType().ToString() == "UnityEngine.CapsuleCollider2D")
{
//将movingPlateform作为player的父对象
other.gameObject.transform.parent = gameObject.transform;
}
}
private void OnTriggerExit2D(Collider2D other)
{
if (other.gameObject.CompareTag("Player") && other.GetType().ToString() == "UnityEngine.CapsuleCollider2D")
{
//将movingPlateform作为player的父对象
other.gameObject.transform.parent = playerTransform;
}
}
}
补充一点为什么要作为父对象,因为站上去的时候人物需要随着movingplatform进行移动,如果不是父对象的话人物是不能跟着平台移动。
别忘了给movingplatform加上左右坐标的位置
还要添加一个碰撞器, 要和人物产生碰撞
如果想要人物在平台上跳跃。需要在PlayerController的脚本上给个判断
void CheckOnGround()
{
isGround = circoll2D.IsTouchingLayers(ground) || circoll2D.IsTouchingLayers(movingPlatform);
}
学习产出:
能跳跃并且跟着动,可以下我hierarchy面板的父对象关系。
【Unity2D】制作可以左右移动的平台相关推荐
- 积目服务器维护,搭建经济高效的制作网络服务器群试验平台
经过前两年非线性制作网络的使用,我们对网络的安全和网管人员的能力培训作了很多尝试,最后通盘考虑,我们还是决定搭建一个试验平台,把复杂的测试工作先在试验平台中试验,通过后再上生产网络实践.搭建一个试验平 ...
- UE4从零开始制作数字孪生道路监测平台
UE4从零开始制作数字孪生道路监测平台 UE4集成Cesium for Unreal和WebSocket,后端使用NodeJs搭建服务器进行数据模拟和真实数据实时转发. 1:新建UE4项目并集成Ces ...
- 55节开源巨献,教你制作一个智能无线电应答平台
<如何制作一个智能无线电应答平台> 作者:BG7EJL 项目背景 目前市面上基于U/V ...
- 用QT制作聆心云数据可视化平台
因为博客园越来越不好用,所以就此转战csdn. 之所以要制作这个可视化平台呢,是因为了完成[数据可视化]课程的大作业,一篇综述和聆心云平台的数据展示. 好吧,现在先来看作业要求: 各位同学好,就本课程 ...
- 制作适用于ZYNQ(ARM平台)的Ubuntu系统
目录 前言 一.主要流程 二.制作FSBL.U-Boot和内核 三.获得Ubuntu基本rootfs 3.1 利用debootstrap工具 3.2 从Ubuntu官网下载 四.挂载相关文件系统并ch ...
- 基于HTML+CSS+JavaScript制作学生网页——外卖服务平台10页带js 带购物车
⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | HTML期末大学生网页设计作业 HTML:结构 CSS:样式 ...
- Unity3D游戏制作(三)——移动平台上的角色阴影制作
本系列文章由 Amazonzx 编写,欢迎转载,转载请注明出处. http://blog.csdn.net/amazonzx/article/details/7973740 本文将重点介绍两种目前在移 ...
- unity2D制作一个2D游戏场景Tilemap
今天使用了一下2020版本的unity.做一个2D的游戏场景.由于公司软件一直停留在5.X时代,很多新版本功能并没有用到.这次用了新版本,感觉发现了新大陆了. 目的:做一个2D的游戏场景.使用的是20 ...
- 室内导航电子地图制作,室内地图可视化平台
懒图科技基于多年的专业技术底蕴,为商场提供专业的电子地图应用服务,产品理念不仅为顾客提供喜闻乐见.便捷的地图应用形式,同时让地图作为窗口,有效展现.提升商场形象.通过先进的技术和细致的产品设计,从应用 ...
最新文章
- poj 3321 Apple Tree
- 听听阿里老哥对算法工程师技术学习路线的建议
- POJO和javabean的异同
- QT的QActionGroup类的使用
- 产业数字化升级进入深化期,腾讯智慧出行释放“数字底座”核心能力
- 基于 Kubernetes 实践弹性的 CI/CD 系统 1
- 【图像处理】彩色图像自适应对比度增强(OpenCV实现)
- Qt简介以及如何配置Qt使用VS2010进行开发
- zeromq不需要消息服务器,ZeroMQ发布订阅TCP丢弃消息订阅服务器失败
- j2se--Socket沟通
- Java 复制文件并改名
- WPS 使用宏 下载 VBA
- 铁路cj继电器_铁路信号继电器简介讲解
- 应用程序正常初始化失败 VS2005
- vscode搭建c++开发环境
- 不礼让行人怎么抓拍的_斑马线前不礼让行人抓拍处罚,到底怎么才算
- INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法
- 学好c语言对php的帮助,学好c语言可以干什么?
- 【机器学习】Goldstein-Armijo line-search
- 海店湾:酒店成七夕新宠,浪漫之旅周边游说走就走!