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
下拉選單的遊戲難度選擇模組。程式碼為 UIPopupList.current.value
由於我們不知道返回的是什麼型別的值,我們可以輸出一下,實驗得知返回的是漢字:困難、簡單或一般
但我們需要使用UIPopupList.current.value.Trim 來消除漢字前後的空格或回車,否則傳值可能會有問題
然後用switch語句搞定
switch(UIPopupList.current.value.Trim()){
case"簡單":
grade = GameGrade.EASY;
break;
case"一般":
grade
break;
case"困難":
grade = GameGrade.DIFFCULTY;
break;
}
第三個單選框,通過實驗得知傳值型別為true of false
所以可以直接讓 isFullscreen = UIToggle.current.value;
這樣,我們就得到這三種按鈕所傳的值。