Unity 2D 学习笔记:游戏实例Sunnyland

01安装软件&导入素材

1.去unity官网下载软件,地址:https://unity.cn,我用的是2018.4.5版本,Mac版,下载安装完成后,如下图。
在这里插入图片描述
2.新建项目,在素材商店中搜索Sunnyland,找到后选择导入import。
在这里插入图片描述
在这里插入图片描述

02编辑素材&Tilemap

1.首先添加游戏背景,使用像素背景照片是每单元格100像素,这样会使图片显示的非常小,所以先更改每单元像素值为16。
在这里插入图片描述
在这里插入图片描述

左上角选择按钮
在这里插入图片描述
分别对应:选择、移动、旋转、放大缩小、调整边框、其他选择
分别对应快捷键:Q W E R T Y

2.添加unity 2D 常用的功能Tilemap(瓦片地图)
在这里插入图片描述
3.tilemap创建好了,那么我们怎么在上面绘画呢,这就要创建我们的tile,选择window->2D->Tile Palette。新建一个文件夹map,放置我们的素材,将tileset素材拖进tile palette,自定义切割方法,16*16,然后就可以用tile palette中的元素在tilemap中绘制场景了。
在这里插入图片描述
在这里插入图片描述

03图层layer&角色建立

1.需要调整背景和我们绘制的场景会图层顺序,否则会出现覆盖现象。首先选择back背景,在Sprite Renderer中选择Sorting Layer,添加新的layer。
2.如图,我已经创建了两个新的Layer,越在下面显示的Layer就越会出现在场景的前面。这是一种方法。还有一种方法是,比如back和tilemap的图层都是Default,那么可以调整他们的Order in Layer大小,比如1会显示在0的前面。
在这里插入图片描述
在这里插入图片描述
3.添加游戏角色
方法1:选择Sunnyland-Sprites-player-idle-将他们的单元格像素值改成16,然后拖拽进scene中。(不常用)
方法2:新建一个Sprite,将图片渲染成2D精灵,以拖拽的方式将小狐狸角色图片与其绑定
在这里插入图片描述
在这里插入图片描述

这里要介绍下add component,添加组件功能,它是使角色进行各种动作的关键。
在这里插入图片描述

4.首先为小狐狸添加刚体,然后为小狐狸和陆地添加碰撞体。小狐狸添加碰撞体和tilemap不同。

刚体是指Rigidbody 2D组件,使纸片一样的角色变成实际的物体,拥有物理的效果,如重力、阻力等。
在这里插入图片描述

小狐狸使用这个,这个是以一个盒子状的正方形为碰撞面积,可以通过edit collider调整碰撞面积大小。
在这里插入图片描述
瓦片地图使用这个,是以瓦片地图的所有像素单元格为碰撞面积。
在这里插入图片描述
5.通过以上组件,小狐狸可以成功掉落在地面上了
在这里插入图片描述

04角色移动

1.操作游戏需要使用键盘上的按键,玩家可以在Edit-Project Settings-Input-Axes中查看或更改自己的操作按键。使角色移动即获取玩家输入的按键,然后根据按键功能编辑角色对应的移动操作。这里就需要写脚本了。
2.新建组件New Script,使用C#语言,可以建个文件夹专门用来放代码。
在这里插入图片描述
3.代码里有两个函数,start()是在游戏开始时运行的代码,update()是游戏在运行过程中每一帧更新变化中都运行的代码。
(1)首先创建两个变量,一个是刚体,一个是速度,command+s保存。
(2)新建一个移动函数,movement(),在update()中调用,获得玩家横向输入的按键结果,用变量horizontalmove保存,当玩家摁下d,其结果等于1,摁下a时等于-1,角色不横向移动时为0。设置刚体的速度变化为矢量值。
(3)将rigidbody 2D中的constraints中的z轴冻结,小狐狸可以移动了。
在游戏运行过程中更改代码或者属性是不会进行保存的,如果想保存更改的调试,可以通过下面操作进行,即复制粘贴组件。
在这里插入图片描述

代码:

public class NewBehaviourScript1 : MonoBehaviour
{
   
   
    public Rigidbody2D rb;
    public float speed;
    public float jumpforce;

    // Start is called before the first frame update
    void Start()
    {
   
   

    }

// Update is called once per frame,不是所有电脑能达到60帧/s的运行速度,fixedupdate可以很好适应不同电脑上的运动效果,使其更加平滑,不跳帧。
    void FixedUpdate()
    {
   
   
        Movement();
    }

    void Movement()
    {
   
   
        float horizonalmove = Input.GetAxis("Horizontal");
        float facedirection = Input.GetAxisRaw("Horizontal");

        if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值