Unity教程(十)Tile Palette搭建平台关卡

devtools/2024/9/22 14:35:18/

Unity开发2D类银河恶魔城游戏学习笔记

Unity教程(零)Unity和VS的使用相关内容
Unity教程(一)开始学习状态机
Unity教程(二)角色移动的实现
Unity教程(三)角色跳跃的实现
Unity教程(四)碰撞检测
Unity教程(五)角色冲刺的实现
Unity教程(六)角色滑墙的实现
Unity教程(七)角色蹬墙跳的实现
Unity教程(八)角色攻击的基本实现
Unity教程(九)角色攻击的改进

Unity教程(十)Tile Palette搭建平台关卡
Unity教程(十一)相机


如果你更习惯用知乎
Unity开发2D类银河恶魔城游戏学习笔记目录


文章目录

  • Unity开发2D类银河恶魔城游戏学习笔记
  • 前言
  • 一、概述
  • 二、Tile Palette瓦片面板的使用
    • (1)创建Palette
    • (2)在Tile Palette中添加资产
    • (3)瓦片的编辑
  • 二、Tile Palette搭建地图
    • (1)创建Tilemap
    • (2)为地面添加碰撞
    • (3)搭建地图
  • 总结


前言

本文为Udemy课程The Ultimate Guide to Creating an RPG Game in Unity学习笔记,如有错误,欢迎指正。

本节使用Tile Palette瓦片面板制作Tilemap瓦片地图。
对应b站视频:
【Unity教程】从0编程制作类银河恶魔城游戏P42
【Unity教程】从0编程制作类银河恶魔城游戏P43


一、概述

Tilemap 组件是一个存储和处理瓦片资源以便创建 2D 关卡的系统。此组件将所需信息从放置在组件上的瓦片传输到其他相关组件,例如 Tilemap Renderer 和 Tilemap Collider 2D。
详细内容可见Unity官方手册Tilemap

我们需要使用Tile Palette将瓦片面板修改瓦片并将其放置到Tilemap瓦片地图上。在本节中会讲到Tile Palette的基本操作。
详细内容可见Unity官方手册Tile Palette

二、Tile Palette瓦片面板的使用

(1)创建Palette

布局添加Tile Palette面板
Window->2D->TilePalette
将瓦片面板拖到层次面板旁边
在这里插入图片描述
在这里插入图片描述
创建新的面板
下拉框->Create New Palette->重命名为TileSet->Create
在这里插入图片描述
在这里插入图片描述
创建文件夹Tile Palette存放
在这里插入图片描述

(2)在Tile Palette中添加资产

将下图部分拖大一些。

在这里插入图片描述
将素材拖拽到Tile Palette窗口
素材位置:Assets->Graphics->Surroundings->Medieval_Castle->Tiles
创建一个文件夹Tile Assets来存放素材(因为当时直接导入了教程工程的Graphics这一部分已经有了,可以直接把Tile Assets里的资产拖进来)
在这里插入图片描述
在这里插入图片描述
单个拖入比较麻烦可以,按Shift键选中多个要拖入的瓦片一起添加
在这里插入图片描述
可以看到瓦片的顺序不对,需要我们进行编辑

(3)瓦片的编辑

上面这一栏编辑工具可以用来瓦片地图,也可以编辑瓦片面板本身。
在这里插入图片描述
如果编辑没有开启,点击下面按钮
在这里插入图片描述
这些工具的功能

工具快捷键介绍
图片描述选择工具S单击选择一个瓦片;按住选择多个瓦片
图片描述移动工具M先用选择工具选择,按住将选中的瓦片拖到其他位置
图片描述画笔工具B在瓦片面板中选择瓦片,单击瓦片地图进行绘制;
注意:可以按住Shift键切换擦除工具
图片描述框填工具U在瓦片面板中选择瓦片,在瓦片地图上框选绘制
图片描述选取器工具I类似取色器,可以瓦片面板或者瓦片地图中选择瓦片,
使用选中瓦片在瓦片地图上绘制
图片描述橡皮擦工具D单击选中瓦片删除;按住拖动删除多个瓦片
图片描述填充工具G使用选定的瓦片填充连续的空单元格或相同瓦片区域,
不能选择多个样式的瓦片填充

使用这些工具编辑瓦片面板将素材准备好

二、Tile Palette搭建地图

(1)创建Tilemap

删除之前创建的Platform
在层次面板中创建Tilemap
右键->2D Object->TileMap->Rectangular->重命名为Ground
在这里插入图片描述

选项功能
Hexagonal - Flat - Top六边形瓦片地图,边在上
Hexagonal - Pointed - Top六边形瓦片地图,顶点在上
Isometric等距瓦片地图,默认值
Isometric Z as Y等距瓦片地图,Z 位置值转换为沿 Y 轴的偏移,并且以不同 Z 位置绘制的瓦片在瓦片地图上看起来具有不同的高度。
Rectangular矩形瓦片地图

右击Grid再创建一个Tilemap命名为Background
在这里插入图片描述
将Background的渲染层级调为-1,这样他就会在地面的后面
在这里插入图片描述

(2)为地面添加碰撞

为Ground添加碰撞盒Tilemap Collider 2D 和 Composite Collider 2D
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


将刚体改为静态的
在这里插入图片描述
Tilemap Collider 2D中勾选Used By Composite
在这里插入图片描述
注意:不要忘记修改Ground的层次,不然无法进行碰撞检测
在这里插入图片描述

(3)搭建地图

在瓦片面板中选择要绘制瓦片的组件
在这里插入图片描述

在这里插入图片描述
这是我们平台的效果
在这里插入图片描述
平台和背景的效果是不同的,地面有碰撞,背景没有添加碰撞,在绘制时要选择好绘制的层级。
下面是二者对比
绘制在Ground中
在这里插入图片描述
绘制在Background中
在这里插入图片描述

总结

现在可以用Tile Palette来搭建一个你喜欢的地图啦
但不要在上面耗费太多时间,因为这个教程后面还有很多要学习的内容


http://www.ppmy.cn/devtools/95316.html

相关文章

Spring Boot整合Drools入门:实现订单积分规则

文章目录 项目结构Maven配置配置Drools订单实体类订单积分规则测试规则总结 在开发过程中,我们经常遇到需要根据业务规则来进行决策的场景。比如,电商平台可能需要根据订单金额为用户添加相应的积分。为了灵活地处理这些业务规则,我们可以借助…

开源异构数据库同步工具DBSyncer

DBSyncer是一款开源的数据同步中间件,它提供了多种数据库和数据源之间的同步解决方案,包括MySQL、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL等同步场景。 以下是对DBSyncer的详细介绍: 一、主要功能与特点 多种…

提升前端性能的 JavaScript 技巧

提升前端性能的 JavaScript 技巧 在现代前端开发中,性能优化是一个至关重要的主题。随着网页应用的复杂度增加,用户对加载速度和响应时间的要求也越来越高。为了提升前端性能,我们可以使用一些有效的 JavaScript 技巧。本文将介绍几个关键的…

Vue3 v-bind 指令用法

在 Vue 3 中&#xff0c;v-bind 指令用于将表达式的值绑定到 DOM 元素的属性上。这个指令的语法与 Vue 2 相同&#xff0c;但有一些细微的变化和改进。 以下是 Vue 3 中 v-bind 指令的基本用法&#xff1a; 基本用法: <button v-bind:class"{ active: isActive }"…

软件测试第1章 软件测试是什么

目录​​​​​​​ 内容说明 一、软件测试与质量概览需要熟悉什么 二、如何理解质量保证 三、软件测试的误区-程序员和测试的关系 四、软件测试是什么&#xff1f; 五、软件测试的目的 六、软件测试与软件质量保证 七、软件测试的必要性 八、软件测试的基本概念分析 …

C++ 容器 list

在了解list容器之前&#xff0c;我们要知道双向链表是什么&#xff0c;不知道的可以看这一篇&#xff1a;数据结构之链表-CSDN博客&#xff0c;其中就讲了双向链表。 list 下面我会从list结构简单讲解&#xff0c;list的相关函数介绍及使用&#xff0c;list的简单实现来讲解l…

界面优化 - QSS

目录 1、背景介绍 2、基本语法 3、QSS 设置方式 3.1 指定控件样式设置 代码示例: 子元素受到影响 3.2 全局样式设置 代码示例: 使用全局样式 代码示例: 样式的层叠特性 代码示例: 样式的优先级 3.3 从文件加载样式表 代码示例: 从文件加载全局样式 3.4 使用 Qt Desi…

LVS(Linux Virtual Server)负载均衡

一、LVS&#xff08;Linux Virtual Server&#xff09;的简介 1.LVS&#xff08;Linux Virtual Server&#xff09;即Linux虚拟服务器&#xff0c;是由章文嵩博士主导的开源负载均衡项目&#xff0c;目前LVS已经被集成到Linux内核模块中。 该项目在Linux内核中实现了基…