撰写了文章 更新于 2017-08-14 12:00:03
[Unity2D] 横版2D游戏开发实例一
抽着双休日的时间和平时的边边角角做了一个能够实现基本的横向卷轴移动、跳跃包含二段跳、吃金币、碎砖块、关卡跳转这样基本功能和逻辑的小游戏
姑且在这里整理出来也算是一个温故而知新的过程
另外素材主要来源于http://unity-chan.com/contents/guideline_en/ Unity-Chan官网
作为练习使用真是太适合不过了。那么开始吧
游戏概述
主要游戏由三部分Scene组成分别为标题画面游戏载入画面及实际游戏关卡
第一次玩家进入后停留在标题画面并按键进入LoadingScene跳转游戏画面失败后回归LoadingScene。。。反复直到通关。

StartStage

LoadingScene
GameScene
标题画面
标题画面主要由背景Logo闪烁的标语组成力求还原部分复古的八位机感受
背景部分不细说注意下整理并放入EmpetyObject中进行分组。按照例图式样将Logo装饰性方块摆放好位置注意区分好Layer和SortingLayer保持图层的先后性
标题闪烁效果添加
GUI部分添加Text类型文字内容“Press X”字体可使用自带的Slkscrb Fonts。
使用Overflow可以避免文字过长而被截取的问题。RichText则是支持类似CSS的脚本规范
为Text添加对应脚本PressX实现文字闪烁效果代码如下
void Start(){
Invoke.Repeating("ShowText",0,0.5f);
}
void ShowText(){
Text t=GetComponent();
if(t.text==""){
t.text="Press X";
}else{
t.text="";
}
}MonoBehaviour.InvokeRepeating 重复延迟调用
void InvokeRepeating(string methodName, float time, float repeatRate);
Invokes the method methodName in time seconds, then repeatedly every repeatRate seconds.
Logo动画效果添加
新建Animation动画Add Property→Scale并拖动到Logo组件的Animation中
注意LogoShow.Anim文件需要在Debug→Legacy这样才能正确触发动画

效果为先由0比例缩放到完整大小稍微放大后再恢复原比例,使之具有一定弹性的出场感
添加按键X跳转功能
MainCamera下挂载脚本GameStart代码如下
void Update(){
if(Input.GetKey(KeyCode.x)){
SceneManager.LoadScene(1);
}
}Loading画面
Loading画面主要由UI系统组成分别为左上角的分数右上角的时间倒计时金币数及生命数。

注意部分UI需要调整Pivot的位置避免后期数值过大造成文字溢出。
添加场景切换脚本
新建GameScene暂时不编辑仅作逻辑切换及实现。
File→BuildingSetting中调整场景序号以作脚本切换时使用

在LoadingSceneMainCamera上挂载脚本LoadingScene
void Start(){
Invoke("WaitAndGo",3f);
}
void WaitAndGo(){
SceneManager.LoadScene(2);
}这样就能实现主场景的按键跳转及LoadingScene的等待自动跳转功能了。
