Skip to content

Unity 2D入门

L edited this page Sep 3, 2019 · 17 revisions

1

资源导入

菜单栏-Windows-Asset Store

Layer

不同的物体放入不同的层级,eg.人物、建筑物、npc等
在检测碰撞等方面要用

打包游戏

菜单栏File->Build Setting,设置好打包设置
修改Scene
选择平台等
13
在Player Setting里面设置更多内容
14
点击Build,选择文件夹,生成游戏
15

包管理

Windows->Package Manager,进行包管理
16

Layer

1.Layer:32层,逻辑层 2.Sorting Layer:渲染图层顺序 Order in Layer:每个图层下的渲染顺序

锚点

目标与锚点保持相对静止,eg.靠左上角,靠右下角等
16

按钮

Image+Button组件(也可以直接新建Button)
17

按钮打开某界面(非跳转场景)

界面Image的显示与隐藏

按钮上的文字

在按钮的子组件中添加Text

小技巧

看层级

点击2D按钮切换
18

旋转

在Scene中选中物品,按E并用鼠标左键旋转

人物脚本

新建Scripts文件夹,新建Script
写代码

public class XXX : MonoBehaviour
{
    float speed = 5f;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        var moveX= Input.GetAxisRaw("Horizontal");  //水平方向移动: A=-1,D=1
        var moveY = Input.GetAxisRaw("Vertical");  //垂直方向移动: S=-1,W=1

        var position = transform.position;
        //Time.deltaTime:1帧的时间
        position.x = moveX * speed * Time.deltaTime;
        position.y = moveY * speed * Time.deltaTime;
        transform.position = position;
    }
}

在人物右边的Inspector中Add Component,加入Script
中央上方箭头运行测试

场景

解法1:Tilemap

右边Hierachy中右键2D Object,选择新建Tilemap,生成网格+Tilemap
菜单栏-Windows-Tile Palette(调色板)
然后铺地板

tip

1.注意调整Tilemap的层级,调低(eg.-10),否则会遮挡其他建筑物
2.同样的物体,直接复制粘贴,修改某项属性后,点击Apply则全部复制体都应用

参考资料

绘制场景
丰富场景

解法2:Sprite

右边Hierachy中右键2D Object,选择新建Sprite 设置属性Source(Sprite),并设置Sort Layer(层级)
可以放多张图,也可以放一张图

解法3:Image

Canvas+Image,铺满整个Scene(按住Alt设置锚点为撑满父容器)

不同的场景管理

在Project里面保存,拖拽到Hierachy中打开

不同场景之间的切换

How to change scenes in 2D

对话框

npc

实际上是一组图片的动画叠加,将图片组拖动到Hierachy新建动画,并调整speed
11

对话框前端组成

在目标物体(显示对话框的物体)下新建Canvas(画布,如果需要,调高Sort Order)
Canvas下新建Image,确定对话框样式
Image新建Text,输入文字,设置样式
12

按键触发对话框

玩家(发起触发者)按键设置脚本,确定在哪里发起触发
目标物体(被触发者)设置脚本,写具体的触发逻辑(显示时间、显示文字等),是被调用方法

参考资料

npc对话框

音效播放

背景音乐

Hierachy右键新建Create Empty,挂载Audio Source,并设置Source
5
6

音效

在人物(播放音效触发的物体)上绑定脚本文件 在脚本文件中定义音效对象,设置好音效源

public class PlayerController : MonoBehaviour
{
    public AudioClip testAudioClip;
}

8
后台获得前端绑定的音效,并在采集物品/受到伤害/升级等方法中调用播放音效的统一方法
9
10

参考资料

音效播放

血条

底层图片+满血条
满血条图片根据一定比例水平填充,则没有填充的部分显示底层图片(空血条)
2
后端修改fillAmount属性,并将脚本挂载给前端Image(类似WPF/winform)

基础脚本挂载

Hierachy右键新建Create Empty,然后挂载
3

参考资料

血条显示

跑酷类游戏

unity小项目——天天酷跑基本制作
这里指背景固定,人物从左到右跑酷的2D游戏

无限地图制作

原理是人物位置不动,两张撑满游戏画面的图片从右到左移动,当第一张图片完全消失在屏幕中,清除第一张图片,在第二张图片的右边创建新的图片
20190828_111416
预设几种图片,随机选择

人物

实际上是一个动画,多张图轮播

Unity 3D可以通过设置改为Unity 2D项目

Clone this wiki locally