/// <summary> /// 繪製資料表 /// </summary> /// <param name="dataType">目標資料</param> private void ShowTable(DataType[] dataType) { _scrollPos = EditorGUILayout.BeginScrollView(_scrollPos); for (int i = 0; i < _dataTable.Count; i++) { EditorGUILayout.BeginHorizontal(); for (int j = 0; j < _dataTable[i].Length; j++) { switch (dataType[j]) { case DataType.Lock: NGUILayout.ReadOnlyField(_tableFieldName[j], _dataTable[i][j].ConvertTo <string>()); break; case DataType.String: _dataTable[i][j] = NGUILayout.TextField(_tableFieldName[j], _dataTable[i][j].ConvertTo <string>()); break; case DataType.Int: _dataTable[i][j] = NGUILayout.IntField(_tableFieldName[j], _dataTable[i][j].ConvertTo <int>()); break; case DataType.Float: _dataTable[i][j] = NGUILayout.FloatField(_tableFieldName[j], _dataTable[i][j].ConvertTo <float>()); break; case DataType.AgentType: _dataTable[i][j] = NGUILayout.EnumPopup(_tableFieldName[j], (AgentType)_dataTable[i][j].ConvertTo <int>()); break; case DataType.AgentTypeFlags: _dataTable[i][j] = NGUILayout.EnumFlagsPopup(_tableFieldName[j], (AgentType)_dataTable[i][j].ConvertTo <int>()); break; case DataType.AgentSpeed: _dataTable[i][j] = NGUILayout.EnumPopup(_tableFieldName[j], (AgentSpeed)_dataTable[i][j].ConvertTo <int>()); break; } } if (GUILayout.Button("Save")) { new DataTable(_currentTable).UpdateRow(_dataTable[i][0].ConvertTo <int>(), _tableFieldName, _dataTable[i]); } if (GUILayout.Button("Del")) { new DataTable(_currentTable).DeleteRow(_dataTable[i][0].ConvertTo <int>()); _dataTable.RemoveAt(i); } EditorGUILayout.EndHorizontal(); } AddButton(); EditorGUILayout.EndScrollView(); }