Unity3D中 滑块、下拉选框、单选框的传值方法

    xiaoxiao2025-08-07  4

    我们在游戏的设置界面经常会添加一些控制游戏内容的按钮

    以三类按钮和设置为例:滑块、下拉选框、单选框

    分别实现游戏中的声音大小调节、游戏难度选择、是否全屏选择,大概界面如下

    没有什么素材,简单传神一下- 。- (灵魂画师)

    这些按钮都是可以通过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;

    这样,我们就得到这三种按钮所传的值。

    转载请注明原文地址: https://ju.6miu.com/read-1301516.html
    最新回复(0)