Unity2019基础教程:Unity怎样添加角色?怎样使镜头跟随角色?

文 | 三二 (转载请注明出处)

关注公众号:教你画像素画

微信号:pixelfish

微博:教你画像素画2014

Unity游戏开发涉及C#代码编写,不是我的强项。目前我只想试试能不能用Unity做一些简单的2D小游戏。对于Unity我是纯正萌新,教程如有问题欢迎指出错误。

上次在朋友圈吐槽C#难学之后,不少朋友推荐了playmaker插件(不需要编程就可以做游戏的神器),等我啃完Unity基础之后再去研究playmaker吧~学会了我再写教程。

将角色导入Unity

首先需要在Aseprite里面设计好角色,然后100%尺寸导出SpriteSheet,放大角色在Unity里面完成。

将存好的char.png图片(图片名称在Aseprite导出的时候可以自己设置)直接拖入Unity Assets/Sprites目录(如果是新建的project需要自己建目录)。

选中char.png图片,在Unity右侧属性面板,将Sprite Mode 改为Multiple(如果是单张图片则不需要改),然后点击Sprite Editor来切图。

在弹出的Sprite Editor窗口中,点击Slice,Type选Grid By Cell Size,Pixel Size填入角色的尺寸14X31(这是每一个序列帧的尺寸大小),点击Slice切图完成。切完图以后点击Sprite Editor窗口属性条右边的Apply,如果不点退出的时候Unity也会提醒你Apply。

切图完成以后,每一个切片会被命名为“图片名_0“,如果一张图片上有多个动作,就需要选中每一个切片重命名。如果需要导入的图片太多,是不是挺烦的?

以前介绍过一个像素画免费导入插件AnimationImporter,挺好用的。现在学会了使用Unity导入资源,才知道插件到底牛在哪。不管插件多么好用,我建议还是要学会Unity的导入方法,一步一个脚印才好。

将角色添加到场景

在Assets/Sprites目录选中char.png,然后在右侧属性窗口设置Pixels Per Unit 为20(100的话,需要放大角色,效果不好);Filter Mode设为Point;Compression设为None。然后将char_0拖入场景。

使镜头跟随角色

Assets目录新建Scripts目录,然后新建c#文件。

将c#文件内的代码替换为:

//代码开始

using UnityEngine;
using System.Collections;

public class CameraLerpToTransform : MonoBehaviour
{

public Transform camTarget;
public float trackingSpeed;
publicfloatminX;
public float minY;
public float maxX;
public float maxY;

void FixedUpdate()
{
if (camTarget != null)
{
var newPos = Vector2.Lerp(transform.position,
camTarget.position,
Time.deltaTime * trackingSpeed);
var camPosition = new Vector3(newPos.x, newPos.y, -10f);
var v3 = camPosition;
var clampX = Mathf.Clamp(v3.x, minX, maxX);
var clampY = Mathf.Clamp(v3.y, minY, maxY);
transform.position = new Vector3(clampX, clampY, -10f);
}
}
}

//代码结束

然后选中c#文件,拖到Main Camera摄像机镜头上。然后选中Main Camera,将场景中的char_0拖到Cam Target里面,这样就实现镜头跟随角色拉。

成功以后,摄像机会显示在角色身上,而不是在场景中间。

完。

Author: pixel32