Собственно имеются public поля типа float в моём скрипте.
Как сделать так, чтобы при изменении значения поля(к примеру Coef X), в редакторе выполнялась функция?
Код:
public float coefX = 1; public float CX { get { return coefX; } set { coefX = value; UpdateUV(); } }
Так не работет - не видно поля CX в редакторе. Скрипт само собой с
[ExecuteInEditMode]
Можно вот так)
public float coefX = 1; private float _prevCoefX; void Start () { _prevCoefX = coefX; } void Update () { if(coefX != _prevCoefX) { _prevCoefX = coefX; CX = coefX; } } public float CX { get { return coefX; } set { coefX = value; UpdateUV(); } }
Почему бы не написать EditorScript?
В юнити это очень просто.
http://docs.unity3d.com/Documentation/ScriptReference/Editor.html
В OnInspectorGUI проверяешь на изменение.
И не надо никаких ExecuteInEditMode.
Также на unite были очень хорошие видео про расширение редактора, можешь поискать.
Division
> Также на unite были очень хорошие видео про расширение редактора, можешь
> поискать.
http://video.unity3d.com/video/3699926/0/unite-11-intro-to-editor
http://video.unity3d.com/video/6948005/unite-2012-advanced-editor
Всем спасибо большое!
Начал разбираться с EditorScript - очень удобно!
Зашел в тему подумав что речь идет Unity3D и множестве с парой операций.
Тема в архиве.