【发布时间】:2012-05-15 13:09:26
【问题描述】:
我在 Unity 3D 上进行开发,并尝试制作一个 Combobox,其中实现了 here 类
现在在我的测试课上,我这样做了:
public class combobox_test : MonoBehaviour {
public GUIContent[] comboBoxList;
private ComboBox_Class comboBoxControl = new ComboBox_Class();
public GUISkin mySkin;
void start(){
comboBoxList = new GUIContent[5];
comboBoxList[0] = new GUIContent("Thing 1");
comboBoxList[1] = new GUIContent("Thing 2");
comboBoxList[2] = new GUIContent("Thing 3");
comboBoxList[3] = new GUIContent("Thing 4");
comboBoxList[4] = new GUIContent("Thing 5");
}
void OnGUI(){
GUI.skin = mySkin;
int selectedItemIndex = comboBoxControl.GetSelectedItemIndex();
selectedItemIndex = comboBoxControl.List(new Rect(50, 100, 100, 20), comboBoxList[selectedItemIndex].text, comboBoxList,GUI.skin.GetStyle(""));
//GUI.Label( new Rect(50, 70, 400, 21),"You picked " + comboBoxList[selectedItemIndex].text + "!" );
}
}
我有这个错误:
IndexOutOfRangeException:数组索引超出范围。 combobox_test.OnGUI () (at Assets/combobox_test.cs:56)
我尝试了一些在不同网站上找到的解决方案,但没有任何效果。
【问题讨论】:
-
可能 selectedItemIndex 的值大于 4。您能否调试并告诉我们该值?
-
可能错误在
comboBoxControl.GetSelectedItemIndex();方法内部。您需要出示该代码。 -
调试:selectedItemsIndex 值 = 0 和 comboboxList.Length = 0...