1.下拉框創建出來

你會看見是這個樣子的

你想要的肯定不是這個效果, 所以你得修改上面顯示的數據
1. 你的數據如果是固定不變你就可以直接在(如下圖)修改

這是不寫腳本的修改,當然你也可以腳本修改它
2.直接上代碼方法
void Start() { AddNames(); UpdateDropdownView(listNames); } //給下拉框動態添加名字 private void AddNames() { string s4 = "東邪"; string s5 = "西毒"; string s6 = "南帝"; string s7 = "北丐"; string s8 = "中神通"; listNames.Add(s4); listNames.Add(s5); listNames.Add(s6); listNames.Add(s7); listNames.Add(s8); } //刷新下拉框顯示 private void UpdateDropdownView(List<string> showNames) { //清空下下拉框數據 dropdown.options.Clear(); Dropdown.OptionData tempData; for (int i = 0; i < showNames.Count; i++) { tempData = new Dropdown.OptionData(); tempData.text = showNames[i]; dropdown.options.Add(tempData); } //把第一條數據顯示為默認 dropdown.captionText.text = showNames[0]; }
上面就是代碼動態添加,根據自己需求使用,這只是修改了顯示的數據,你肯定也需要綁定事件來觸發效果
下面是綁定事件
void Start() { dropdown.onValueChanged.AddListener(Change); } //給下拉框綁定事件 private void Change(int index) { switch (index) { case 0: Debug.Log("這是黃老邪"); break; case 1: Debug.Log("這是歐陽鋒"); break; case 2: Debug.Log("這是一燈大師"); break; case 3: Debug.Log("這是洪七公"); break; case 4: Debug.Log("這是王重陽"); break; default: break; } }
最后是完整代碼,可以運行自行查看效果
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Rodem_rig : MonoBehaviour { public Button exit_btn; public Button queding_btn; public Dropdown dropdown; public List<string> listNames = new List<string>(); // Start is called before the first frame update void Start() { AddNames(); UpdateDropdownView(listNames); dropdown.onValueChanged.AddListener(Change); exit_btn.onClick.AddListener(delegate { Destroy_OBJ(); }); } //給下拉框綁定事件 private void Change(int index) { switch (index) { case 0: // Debug.Log("這是黃老邪"); break; case 1: Debug.Log("這是歐陽鋒"); break; case 2: Debug.Log("這是一燈大師"); break; case 3: Debug.Log("這是洪七公"); break; case 4: Debug.Log("這是王重陽"); break; default: break; } } //給下拉框動態添加名字 private void AddNames() { string s4 = "東邪"; string s5 = "西毒"; string s6 = "南帝"; string s7 = "北丐"; string s8 = "中神通"; listNames.Add(s4); listNames.Add(s5); listNames.Add(s6); listNames.Add(s7); listNames.Add(s8); } //刷新下拉框顯示 private void UpdateDropdownView(List<string> showNames) { //清空下下拉框數據 dropdown.options.Clear(); Dropdown.OptionData tempData; for (int i = 0; i < showNames.Count; i++) { tempData = new Dropdown.OptionData(); tempData.text = showNames[i]; dropdown.options.Add(tempData); } //把第一條數據顯示為默認 dropdown.captionText.text = showNames[0]; } public void Destroy_OBJ() { Destroy(this.gameObject); } }
這是打印效果

按鈕觸發效果
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Rodem_rig : MonoBehaviour { public Button exit_btn; public Button queding_btn; public Dropdown dropdown; public List<string> listNames = new List<string>(); public int RW; // Start is called before the first frame update void Start() { AddNames(); UpdateDropdownView(listNames); dropdown.onValueChanged.AddListener(Change); exit_btn.onClick.AddListener(delegate { Destroy_OBJ(); }); //確定按鈕 queding_btn.onClick.AddListener(delegate { GameObjecting.instance.IntoThe_Task(RW); Destroy_OBJ(); }); } //給下拉框綁定事件 private void Change(int index) { switch (index) { case 0: RW = index; break; case 1: RW = index; break; case 2: RW = index; break; case 3: RW = index; break; case 4: RW = index; break; case 5: RW = index; break; case 6: RW = index; break; case 7: RW = index; break; case 8: RW = index; break; case 9: RW = index; break; case 10: RW = index; break; case 11: RW = index; break; case 12: RW = index; break; default: break; } } //給下拉框動態添加名字 private void AddNames() { string s4 = "東邪"; string s5 = "西毒"; string s6 = "南帝"; string s7 = "北丐"; string s8 = "中神通"; listNames.Add(s4); listNames.Add(s5); listNames.Add(s6); listNames.Add(s7); listNames.Add(s8); } //刷新下拉框顯示 private void UpdateDropdownView(List<string> showNames) { //清空下下拉框數據 dropdown.options.Clear(); Dropdown.OptionData tempData; for (int i = 0; i < showNames.Count; i++) { tempData = new Dropdown.OptionData(); tempData.text = showNames[i]; dropdown.options.Add(tempData); } //把第一條數據顯示為默認 dropdown.captionText.text = showNames[0]; } public void Destroy_OBJ() { Destroy(this.gameObject); } }
其他擴展就看自己需求了
喜歡的話點個贊吧,謝謝 0_0
