1. 程式人生 > >Unity3D中 滑塊、下拉選框、單選框的傳值方法

Unity3D中 滑塊、下拉選框、單選框的傳值方法

我們在遊戲的設定介面經常會新增一些控制遊戲內容的按鈕

以三類按鈕和設定為例:滑塊、下拉選框、單選框

分別實現遊戲中的聲音大小調節、遊戲難度選擇、是否全屏選擇,大概介面如下

沒有什麼素材,簡單傳神一下- 。- (靈魂畫師)

這些按鈕都是可以通過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;

這樣,我們就得到這三種按鈕所傳的值。