SIKI_Unity_2_初级案例_贪吃蛇
任务5: 素材的导入与制作
确定游戏窗口分辨率并隐藏Build出来每次开始运行时跳出的UnityResolution窗口:
PlayerSettings -> Resolution and Presentation中
设置Default Screen Width/ Height
DisplayResolutionDialog = Disabled
任务6:创建工程并搭建开始场景
Canvas的RenderMode选择ScreenSpace-Camera,并将主摄像机赋值
此时在Scene中UI的框会和Camera的框重叠
一般而言,3D游戏的HUD如小地图之类的UI会用ScreenSpace-Overlay实现
因为这个模式相当于把画布蒙在相机之前,会遮挡住游戏物体,保证UI在最上方
而2D游戏且使用UGUI主实现的时候,会选择ScreenSpace-Camera模式
任务10:贪吃蛇实现的思路
蛇头控制每一段蛇身
InvokeRepeat()调用前进方法
思路1:
每一段蛇身前进到前一段蛇身当前的位置
思路2:
增加一个蛇头,原来的蛇头变成第一节蛇身,其他不变
因为是双色贪吃蛇,因此只能使用思路1,使用思路2会导致颜色错乱
任务21:暂停游戏与返回菜单
点击暂停按钮后,按下空格,发现暂停按钮也会被onClick
原因是:UGUI的focus在暂停按钮上了,而Unity的Input中空格键有Submit的功能,所以按钮会被空格触发
解决方法:
在ProjectSettings -> Input中取消Submit功能中空格键的绑定
任务22:蛇死亡的处理和得分的记录
记录得分的方法:
记录PlayerPrefs.SetInt("variableName", value); // 将value的值记录到变量中
PlayerPrefs.Save(); // 保存设置
PlayerPrefs.HasKey("variableName"); // 是否存在某值
读取PlayerPrefs.GetInt("variableName", defaultValue); // 如果该变量之前没有被记录过的话,则返回defaultValue
任务24:完成换肤与其他配置读取
Bug:
描述:游戏运行开始时,对皮肤选项Toggles的初始化,一直没能设置正确toggle.isOn
原因:初始化是在Awake()中实现的,这个时候设置是没有用的
解决方法:在Start()执行完全相同的逻辑,成功