为游戏界面添加难度选择弹出列表NGUI从入门到实战大学霸
为游戏界面添加难度选择弹出列表NGUI从入门到实战大学霸
2.8.2 示例:为游戏界面添加难度选择弹出列表为游戏界面添加难度选择弹出列表NGUI从入门到实战大学霸
本小节打算为游戏界面添加的难度选择弹出列表,如图2-96所示。一共有两个难度可以选择,分别是Normal和Hard。
图2-96 游戏难度选择列表为游戏界面添加难度选择弹出列表NGUI从入门到实战大学霸
具体的操作步骤如下:
(1)在Hierarchy视图里,为Panel对象添加一个子对象,并命名为Difficulty。
(2)在Hierarchy视图里,同时选中Sound的子对象:Background和Label,然后按下快捷键Ctrl+D,即可获得这两个对象的拷贝。最后将它们拖动到Difficulty对象下。
(3)设置Background的Pixel Offset属性为:X:420,Y:43。
(4)设置Label的文本为:[AAFFFF]Difficulty。完成以上的设置以后,在Game视图上看到的效果如图2-97所示。其位于游戏界面中间靠右侧的地方。
图2-97 来自Game视图上的效果
(5)在Hierarchy视图里,为Difficulty对象添加一个弹出列表Popup List,向导各属性的设置与上一小节相同。并在Inspector视图里设置其下列属性:
q Option:Normal和Hard;
q Text Color:R:190,G:250:B:255,A:255;
q Background:R:70,G:250:B:255,A:255;
q Hightlight:R:70,G:255:B:150,A:255;
q Hover:R:70,G:255:B:150,A:255;
(6)为Popup List对象添加UIAnchor(Script)组件,并设置下列属性:
q Container:Background;
提示:此Background是Difficulty的子对象。
q Pixel Offset:X:-76,Y:-20;
完成以上设置以后,在Scene视图中看到的效果如图2-98所示。
图2-98 Scene视图中的效果图
(7)在Hierarchy视图里,选中Popup List的子对象Sprite,然后设置下列属性:
q Depth:3;
q Color Tint:R:170,G:255:B:190,A:255;
(8)在Hierarchy视图里,选中Popup List的子对象Label,然后设置下列属性:
q Depth:4;
q Color Tint:R:135,G:255:B:170,A:255;
完成了以上所有设置以后,在Game视图看到的弹出列表的效果如图2-99所示。
图2-99 Game视图里的弹出列表效果
(9)同样,以上的各步操作,只是在游戏界面上实现了游戏难度选择的效果而已。接下来还要将这个选择记录下来,便于游戏以后再此基础上继续开发的时候会被使用到。具体的实现方法是,为脚本GameManager添加代码,如下:
01 using UnityEngine;
02 using System.Collections;
03
04 public class GameManager : MonoBehaviour
05 {
06 public enum Difficulties
07 {
08 Normal,
09 Hard
10 }
11 public static Difficulties Difficulty = Difficulties.Normal;
12 … //省略
13 public void OnDifficultyChange()
14 {
15 if(UIPopupList.current.value == “Normal”)
16 Difficulty = Difficulties.Normal;
17 else
18 Difficulty = Difficulties.Hard;
19 }
20 }
q 脚本06行,定义了枚举类型Difficulties,它有2个可选项:Normal(脚本08行)和Hard(脚本09行);
q 脚本11行,声明了一个变量Difficulty,用于记录当前玩家所选择的游戏难度,默认情况下难度设置为Normal;
提示:此变量的声明使用了Static,因此变量Difficulty的生命周期将与当前的游戏场景一致。
q 脚本13行,自定义了公有的方法OnDifficultyChange,用于判断当前玩家所选择的选项,然后将值赋予变量Difficulty;
(10)因为脚本GameManager.cs,已经被赋予GameManager对象,因此需要设置Popup List里UIPopup List(Script)组件的下列属性:
q Notify:GameManager;
q Method:GameManager. OnDifficultyChange;
以上所做的操作将使得弹出列表的选择发生改变时,调用GameManager脚本中的OnDifficultyChange()方法为游戏界面添加难度选择弹出列表NGUI从入门到实战大学霸。
Comments are closed.