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