Показать сообщение отдельно
Старый 10.02.2014, 17:38   #1
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Убрать размер массива в инспекторе

Как убрать это?

Нужно исключить возможность изменения размера массива в инспекторе

Вот что есть:
public enum CType : byte {Default, Lava, Steklo};
public class Level : MonoBehaviour {
        [System.Serializable]
	public class LevelCellType {

		public CType type;
		public string typename;
		public float mass = 0.0f;
	}
	public LevelCellType[] levelCellTypes = CreateTypesArray();

        //создаю массив размером равным количеству перечислений в CType, 
	//именования которого перевожу в строковой вид 
	//и присваиваю соответствующему элементу новоиспеченного массива. 
	//Вот поэтому больше или меньше он быть не должен
        static private LevelCellType[] CreateTypesArray(){
		string[] names = System.Enum.GetNames(typeof(CType));
		LevelCellType[] arr = new LevelCellType[names.Length];
		for (int i = 0; i < arr.Length; i++){
			arr[i] = new LevelCellType();
			arr[i].type = (CType)i;
			arr[i].typename = names[i]; 
		}
		return arr;
	}
}
[CustomPropertyDrawer(typeof(Level.LevelCellType))]
public class LevelCellTypeDrawer : PropertyDrawer {
	const float min = 0;
        const float max = 1;

	public override void OnGUI (Rect position, SerializedProperty property, GUIContent label) {
		int indent = EditorGUI.indentLevel;
                EditorGUI.indentLevel = 0;

		label.text = property.FindPropertyRelative ("typename").stringValue;
		EditorGUI.Slider (
                    new Rect (position.x, position.y, position.width, position.height),
                    property.FindPropertyRelative ("mass"), 
            min, max, label);
		EditorGUI.indentLevel = indent;
	}
}
Правда я пока не понимаю как потом этот массив обновлять -__-

С инспектором я на ВЫ, поэтому буду благодарен за любые примечания, спасибо
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием