シーンやゲームビューにカーソルを合わせると更新:ギズモだけ私はスクリプト持っ
//Assets/TestScript.cs
using UnityEngine;
public class TestScript : MonoBehaviour
{
public Vector2 a;
public Vector2 b;
public Vector2 c;
}
、それのエディタスクリプト:
//Assets/Editor/TestEditor.cs
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(TestScript))]
public class TestEditor : Editor
{
public override void OnInspectorGUI()
{
TestScript script = (TestScript)target;
script.a = EditorGUILayout.Vector2Field("a", script.a);
script.b = EditorGUILayout.Vector2Field("b", script.b);
script.c = EditorGUILayout.Vector2Field("c", script.c);
}
[DrawGizmo(GizmoType.Active | GizmoType.Selected)]
static void DrawGizmos(TestScript script, GizmoType gizmoType)
{
Gizmos.DrawWireSphere(script.a, 1.0f);
Gizmos.DrawWireSphere(script.b, 1.0f);
Gizmos.DrawWireSphere(script.c, 1.0f);
}
}
を、それが正しくワイヤー球ギズモを示すが、ときに私変数a
、b
またはc
を編集します。マウスをシーンビューまたはゲームビューの上に移動しない限り、ギズモは再描画されません。そしてそれでも約1秒かかります。
オーバーライドされたOnInspectorGui()
メソッドを削除すると、ギズモが正しく更新されます。
OnInspectorGui()
メソッドの最初と最後にSceneView.RepaintAll()
,HandleUtility.Repaint
とRepaint()
を追加しようとしましたが、何も変更されませんでした。
ありがとうございます。あなたはそれが本当autoRepaintOnSceneChange
設定することができ、そして:は、次のプロパティを持っているhttp://docs.unity3d.com/ScriptReference/EditorWindow-autoRepaintOnSceneChange.html
すべてEditorWindows: