프로그래밍/유니티
유니티 커스텀 에디터 인스펙터 실시간 업데이트
stuban
2024. 2. 18. 07:48
스프라이트 애니메이션을 개발하며
유니티 애니메이션 클립 미리보기같은 느낌으로
에디터에서 애니메이션을 미리보는 기능을 만들었다
개발하다보니 문제가 생겼는데
에디터의 OnInspectorGUI나 OnPreviewGUI 같은 함수는
"마우스가 인스펙터 위로 지나갈 때"만 다시 그려진다는 것
https://docs.unity3d.com/ScriptReference/Editor.RequiresConstantRepaint.html
요 함수를 오버라이드해 주기적으로 Repaint를 요청할 수 있다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(AnimationData), true)]
public class AnimationDataEditor : Editor
{
private double lastTime;
public override bool RequiresConstantRepaint() => true;
public override void OnInspectorGUI()
{
// EditorApplication.timeSinceStartup 을 사용해 에디터에서 시간 측정을 할 수 있다
var currentTime = (float) (EditorApplication.timeSinceStartup - lastTime);
...
}
}
|
cs |