UNITY 2D像素类/横板/战斗游戏制作笔记

课程:《勇士传说》入门到进阶

P1:安装Unity引擎和代码编辑器|Unity2022.2 最新教程《勇士传说》入门到进阶|4K_哔哩哔哩_bilibili

P2素材导入和整理|Unity2022.2 最新教程《勇士传说》入门到进阶|4K_哔哩哔哩_bilibili

重要知识点1:关于图片资源的基础设定

①点击Project中的资源,在Inspector中进行设置。

②设置内容包含:

- 每个unity白线格子中的可以显示的像素数量,需要与资源绘制时的像素比例保持一致。(例如绘制时为“16*16”,那么此处应填写“16”。)

- 过滤模式,像素类游戏需要选择“Point(no filter)”,意味着不需要添加任何过滤。

- 压缩,选择无压缩,保证美术资源质量。

③设置调整好后,需要Apply。

重要知识点2:关于图片资源的切割方法(以人物资源为例)

①点击Project中的资源,在Inspector中进行设置。(与上文一致)

- 需要特别注意如果图片为单图则在Spirite中选择Single;如果图片为图集则需要在Spirite中选择Multiple。

②点击Sprite Editor进入其界面。

③点击Sprite Editor卡界面中,左上角的Slice,进行切割方式设置。

- 选择切割方式:Automatic为自动切割,锚点与切割都大小不一样,后续动画难以继续制作。

- 选择Grid By Cell Count,根据计算图片中行列数量进行切割。(例如例图中人物的数量为11*8,将其数据填好,即可等比切割。)

- 锚点设置:为方便后续动画制作,我们需要将切割后的单图锚点位置设置为每张图片的底部(例图中的角色脚底中心点),可将Pivot选项更改为Bottom。

④点击Slice切割。

⑤点击Sprite Editor界面中右上角的Apply进行应用。

- 课程中应用切割后,需要在Inspector中再次进行Apply,但我在操作中Apply是灰色,不知道是不是因为unity版本原因,后续制作中会关注此问题。

P3:场景绘制和叠层设置 Tilemap|Unity2022.2 最新教程《勇士传说》入门到进阶|4K_哔哩哔哩_bilibili

重要知识点1:Unity2D绘制工具-创建瓦片地图/调色盘/瓦片

①场景绘制前,需要将场景贴图设置和切割完毕,具体参考上一P。

②打开2D绘制工具窗口:点击Window-2D-Tile Palette。

③创建一个新的调色盘(Forest1)。

- 点击Create New Palette后会弹出窗口,为调色盘命名后(一般与资源命对应),点击Create。

- 弹出设置调色盘位置窗口,首先,新建一个Tilemap(瓦片地图)文件夹。

- 接着,建立一个新的Palettes(调色盘)文件夹,方便管理所有的调色盘。

- 选择文件夹后,Forest1调色盘创建完毕。

④创建一个新的瓦片。

- 调色盘创建完毕后,将对应的切割好的贴图拖入Tile Palette当中。

- 松手后,弹出窗口询问瓦片存放位置,我们将瓦片存放于Tilemap(瓦片地图)文件夹中。

- 在Tilemap文件夹下创建一个Tiles(瓦片)文件夹,接着在此文件夹下创建Forest1瓦片文件夹。

- 选择文件夹后,Forest1瓦片创建完毕。

重要知识点2:Unity2D绘制工具-使用瓦片地图/调色盘/瓦片

①初创建时,Tile Palette会显示无可用目标(地图图纸),所以需要进行创建一个新的地图图纸以用于绘制。

②在Hierarchy中点击“+”-2D Object-Tilemap-Rectangular(常规方形地图图纸)。

③返回Tile Palette会发现已自动选择可用目标。

TIPS1:若发现选择瓦片后,图片不在格子当中,需要在贴图Sprite Editor中将切割锚点更改为Center。

TIPS2:若想要修改内容占屏幕中的比例,则需要调整Maincamera中的Size。

重要知识点3:叠层概念-Sorting Layer

①在Sprite Renderer(渲染组件)中,Sorting Layer(叠层)默认为“Default”,Order in Layer(叠层顺序)默认为“0”。

②当我们需要调整层级关系时,单调整图层顺序会比较麻烦,所以我们可以创建不同的图层,即Add Sorting Layer...,可在打开后的窗口中进行添加/减少/调整图层上下关系等操作。

③添加完毕后,需要返回Sorting Layer当中进行设置。

TIPS1:在Unity中的图层概念为,下方的图层会遮挡上方图层,与PS图层概念恰好相反。

TIPS2:Order in Layer中数字越大,图层越显示在前面。

重要知识点4:创建多个TileMap(瓦片地图)绘制不同层级的内容

TIPS:在创建Tilemap之前需要根据美术效果图先构思图层分类。

①右键Grid-2D Object-Tilemap-Rectangular,创建一个新的瓦片地图。

②创建多个Tilemap后,需要继续调整其Sorting Layer与Order in Layer,使之与之前设计的图层关系对应。

③创建完毕后,可以在Tile Palette的目标中看到所有的地图图纸。

TIPS:Tilemap Focus功能可以帮助我们将正在绘制的层凸显出来。

P4:有规则和动态瓦片|Unity2022.2 最新教程《勇士传说》入门到进阶|4K_哔哩哔哩_bilibili

TIPS:在使用以下工具进行工作前,务必将上述流程中切割好的资源进行清晰的命名处理。

重要知识点1:规则瓦片工具

①在Project窗口的Assets-Tilemap-Tiles下创建新的文件夹,命名为“RuleTiles”(规则瓦片)。

②在RuleTiles文件夹下创建2D-Tiles-RuleTiles,例子中命名为Ground1,下图为Ground1的Inspector窗口。

③创建瓦片规则:点击Ground1的Inspector中右下角的“+”以增加瓦片规则。

④九宫格使用解释:选择瓦片后,根据美术图判断此资源各方向是否有图片,若某方向有图片需要单击鼠标左键,出现绿色箭头;若某方向无图片需要单击鼠标右键,出现红色叉叉。

- 进行设置后再次单机鼠标右键均可取消设置。

- 九宫格使用举例:下图瓦片为左上角使用,所以该瓦片的九宫设置应是右下绿箭头,左上叉叉。

随机出现多张瓦片:则创建瓦片规则后,点击Output下拉菜单,选择Random。

- Size可以设置随机图片数量,接着将随机的图片依次加入即可。

- Noise可以调整瓦片被随机时的数量。

⑥使用规则瓦片进行绘制:将创建好的规则瓦片(例子中Project中的Ground1),拖拽至TilePalette当中。

- 调色盘中当即显示之前所设置的默认图片。

- 点击此瓦片,便可在场景中进行绘制。

TIPS:绘制前检查绘制的图层!检查绘制的图层!检查绘制的图层!!!!!

重要知识点2:动态瓦片工具(制作瀑布为例)

①在Project窗口的Assets-Tilemap-Tiles下创建新的文件夹,命名为“AnimatedTiles”(动态瓦片)。

②在AnimatedTiles文件夹下创建2D-Tiles-AnimatedTiles,例子中命名为“WaterFall Left”(此此处根据切割后的资源表现得出,后续会继续区分为WaterFall Mid和WaterFall Right),下图为WaterFall Left的Inspector窗口。

③动态效果数量设置:根据瀑布切割后,左侧由4个瓦片组成,所以在Number of Animated ...中填写组成该次动态效果的图片数量,即为“4”。

④将四张图片逐一设置,同时可以调整Speed控制动画速度。

⑤使用动态瓦片进行绘制:与上述规则瓦片一致,将创建好的动态瓦片(例子中Project中的WaterFall Left),拖拽至TilePalette当中。

TIPS:类似瀑布这种左中右拆分成组的动态瓦片,拖至调色盘时需要排列好,之后可以将其成组绘制在场景中。

P5:设置人物及基本组件|Unity2022.2 最新教程《勇士传说》入门到进阶|4K_哔哩哔哩_bilibili

重要知识点1:重力组件

①选择Project中的Player,在其Inspector中Add Component,选择重力“Rigidbody 2D”。

- 重力相关的部分设置衍生至Edit-Project Setting...中,简单了解下Project Setting,例如下图:

重要知识点2:碰撞体组件——角色(胶囊碰撞器)

①选择Project中的Player,在其Inspector中Add Component,选择胶囊碰撞器“Capsule Collider 2D”。

②调整碰撞范围:点击Capsule Collider 2D下的Edit Colllider,角色的碰撞框即可被拖拽调整大小和位置。

- 调整完毕后,需要将Capsule Collider 2D下的Offset和Size值取整。

TIPS:碰撞体的底部需要与切割后的角色资源底部对齐,防止穿帮。(我自己感觉再和锚点尽量对上可能会更好?后面会试试看!)

③锁定人物旋转:若不锁定,当角色有角度变化时(例如跑动移动或撞到NPC)便会倾倒,为了防止该情况的发生,我们需要在Rigidbody 2D中设置“Constraints”。

- Freeze Position为冻结坐标,Freeze Rotation为冻结Z轴旋转;冻结Z轴旋转后,再次运行则会发现被旋转的角色不会倒下。(没弄明白原理但角色非常神奇!)

④人物质量Mass:相同的两个物体谁的质量大,那么模拟的重力也更大,在移动的过程中便可以撞开比较轻的物体,模拟真实世界物理碰撞效果。

⑤角色碰撞检测频率Collision Detection:由于角色动作较多,并具有持续性,为了检测更加精准,可以将默认的Discrete(间歇检测)更改为Continuous(持续检测)。


TIPS:选择Hierarchy中想要聚焦的内容,单击“F”则可以聚焦至该内容,方便查看内容有什么和找到内容位置。(嘎嘎好用!之前工作的时候真的不知道这个,每次找东西非常要命。T.T)

重要知识点3:碰撞体组件——瓦片地图(瓦片地图碰撞器

①选择Project中的Platform,在其Inspector中Add Component,选择瓦片地图碰撞器“Tilemap Collider 2D”。

②合并同一碰撞体:

- 初设置时,平台会被分割为一块块的碰撞体,我们在运行时则要检测每一个碰撞体与角色之间的碰撞,如下图:

- 在勾选Tilemap Collider 2D下的Used By Composite(合并同一碰撞体)之前,我们需要先在Add Component,添加组件“Composite Collider 2D”,之后平台的碰撞体便被合并。

- 注意:添加“Compossite Collider 2D”组件后,会自动添加“Rigidbody 2D”组件,此时运行场景会掉出屏幕。

- 所以我们需要将平台的Rigidbody 2D中Body Type修改为“Static”(固定的不变的),设置后场景变没有了重力效果,运行后人物便会成功落在平台上。

重要知识点4:学习手册的运用

①Unity中每个组件的选项功能非常丰富,为了更详细的了解,我们点击组件右上角的“?”跳转至学习手册中进行查看详细说明。

P6:创建及配置新输入系统 New Input System|Unity2022.2 最新教程《勇士传说》入门到进阶|4K_哔哩哔哩_bilibili

重要知识点1:C# Script脚本文件的创建与规则

飞羽老师的课程:14.尽职的一生,了解脚本的生命周期_哔哩哔哩_bilibili

※非常重要 ※TIPS:创建C# Script(脚本文件)时,要马上命名,该文件名对应了代码中class(类)的名字,再次修改时,代码中class的名称不会被同时改变,会导致后续代码与unity中的脚本文件无法对应从而失效。

重要知识点2:New Input System设置与下载

①升级unity输入系统:打开Edit-Project Settings...-Player-Other Settings。

②API适用等级修改为.NET Framework;Active Input Handling修改为Input Manager(NEW)。

③Apply后Unity会进行重启。

④载入新的输入系统:Window-Package Manager,将界面左上角下拉菜单更改为Packages:Unity Registy。

- 右上角搜索框中输入Input,便可以查看到新的输入系统,点击Install进行载入,安装完毕即可。

TIPS:Documentation可查看该功能的学习手册。

重要知识点3:New Input System基础配置了解

①在Project-Settings下创建新的文件夹并命名为“InputSystem”。

②在此文件夹中创建“Input Actions”,并命名。(例子中命名为InputControls)

③双击或点击Inspector中的Edit addet即可打开窗口。

TIPS:设置完毕记得点击“Save Asset”或者勾选“Auto-Save”进行保存。

重要知识点4:New Input System自动添加配置

①选择Project中的Player,在其Inspector中Add Component,选择“Player Input”。

②创建InputAction:点击“Create Actions...”,在浏览文件夹中选择上述步骤中创建在Settings下的“Input System”文件夹,并为该Action命名。(例子中命名为“PlayerInputControl”)

③保存后,生成默认操作设置(此处可将Player更换一个识别性更好的名字,例子中修改为“Gameplay”):

④通过模板实现输入监测设置:选择Project中的Player,在其Inspector中Player Input中,将Behavior下拉菜单修改为“Invoke Unity Events”。

- 在Events当中的Gameplay(刚在配置窗口中重新命名的Action)下,即可查看到自动生成的可监测模板。

- 通过代码实现输入监测设置:选择Project-Settings-InputSystem中的PlayerInputContorl,在其Inspector中勾选Generate C# Class。

- unity会根据当前文件的名字生成一个C#,可被访问,点击Apply,之后双击脚本文件进入VS当中进行编写。

- 举例:读取移动数值在VS中的代码内容:
 

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

public class PlayerController : MonoBehaviour
{
    public PlayerInputControl inputControl;
    public Vector2 inputDirection;

    private void Awake()
    {
        inputControl = new PlayerInputControl();
    }

    private void OnEnable()
    {
        inputControl.Enable();
    }

    private void OnDisable()
    {
        inputControl.Disable();
    }

    private void Update()
    {
        inputDirection = inputControl.Gameplay.Move.ReadValue<Vector2>();
    }
}

- 保存脚本文件后,在Unity中便可以在Player的Inspector下监测到移动反馈。

TIPS:以上代码内容,看不懂没关系,先了解熟悉一下整体流程。

P7:实现人物移动和翻转|Unity2022.2 最新教程《勇士传说》入门到进阶|4K_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值