我们在游戏的设置界面经常会添加一些控制游戏内容的按钮
以三类按钮和设置为例:滑块、下拉选框、单选框
分别实现游戏中的声音大小调节、游戏难度选择、是否全屏选择,大概界面如下
没有什么素材,简单传神一下- 。- (灵魂画师)
这些按钮都是可以通过NGUI来直接使用的,主要说一下怎么通过程序接受到这些值。
1.首先要定义一些简单的变量。
public enum GameGrade
{
EASY,
NORMAL,
DIFFCULTY
}
public float volume = 1;//定义游戏的音量
public GameGrade grade=GameGrade.NORMAL;//定义游戏的默认难度
public bool isFullscreen =false;//定义是否全屏的默认值
定义三个函数来执行任务
1.public void OnVolumeChanged() //声音
2......OnGameGradeChanged() //游戏难度
3.......OnIsFullScreenChanged()//是否全屏
这样就可以在触发这些按钮的时候调用到这些函数,我们把这个脚本挂到Camera上
在UI上添加调用camera上的对应脚本的对应函数
这样我们在点击或者滑动的时候就可以调用到对应的函数。
通过代码来获得传值:
声音滑动模块直接 volume=UIProgressBar.current.value 就得到了滑块的值。
下拉菜单的游戏难度选择模块。代码为 UIPopupList.current.value
由于我们不知道返回的是什么类型的值,我们可以输出一下,实验得知返回的是汉字:困难、简单或一般
但我们需要使用UIPopupList.current.value.Trim 来消除汉字前后的空格或回车,否则传值可能会有问题
然后用switch语句搞定
switch (UIPopupList.current.value.Trim()) {
case"简单":
grade = GameGrade.EASY;
break;
case"一般":
grade = GameGrade.NORMAL;
break;
case"困难":
grade = GameGrade.DIFFCULTY;
break;
}
第三个单选框,通过实验得知传值类型为true of false
所以可以直接让 isFullscreen = UIToggle.current.value;
这样,我们就得到这三种按钮所传的值。