ПрограммированиеФорумГрафика

Unity3D. Свойства поля

#0
13:28, 2 дек 2012

Собственно имеются public поля типа float в моём скрипте.
Изображение
Как сделать так, чтобы при изменении значения поля(к примеру Coef X), в редакторе выполнялась функция?


Код:

  public float coefX = 1;

  public float CX
  {
    get
    {
      return coefX;  
    }
    set
    {
      coefX = value;
      UpdateUV();
    }
  }

Так не работет - не видно поля CX в редакторе. Скрипт само собой с

[ExecuteInEditMode]
#1
16:54, 2 дек 2012

Можно вот так)

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();
    }
  }
#2
17:09, 2 дек 2012

Почему бы не написать EditorScript?
В юнити это очень просто.
http://docs.unity3d.com/Documentation/ScriptReference/Editor.html
В OnInspectorGUI проверяешь на изменение.
И не надо никаких ExecuteInEditMode.
Также на unite были очень хорошие видео про расширение редактора, можешь поискать.

#3
18:11, 2 дек 2012

Division
> Также на unite были очень хорошие видео про расширение редактора, можешь
> поискать.
http://video.unity3d.com/video/3699926/0/unite-11-intro-to-editor
http://video.unity3d.com/video/6948005/unite-2012-advanced-editor

#4
2:01, 3 дек 2012

Всем спасибо большое!
Начал разбираться с EditorScript - очень удобно!

#5
3:45, 3 дек 2012

Зашел в тему подумав что речь идет Unity3D и множестве с парой операций.

ПрограммированиеФорумГрафика

Тема в архиве.