Unity jak wyświetlić cokolwiek w oknie edytora (przyjamniej linie)


#1

Potrzebuje wyświetlić 'modele" ewentualnie same proste kształty jak koło czy linia w edytorze, problem w tym ze Handles z eventem repaint działa tylko w momencie rysowania sceny, a nie podczas poruszania myszką po oknie widoku sceny, powoduje to że aby wyswietlyc jakikolwiek obiekt muszę na chwilkę zatrzymać mysze w miejscu, chce tego unikać.
więc podsumowując chciałbym wyświetlać przykładowo kwadracik w miejscu wskazywania kursora w oknie edytora, tak aby ten kwadracik podążał za kursorem.
unity 2019+ gizmosy odpadają bo są połączone z gameobject.


#2

Chcesz aby zawsze coś się działo w “edit mode” kiedy poruszasz myszką? masz kilka opcji

Atrybut [ExecuteInEditMode]
https://docs.unity3d.com/ScriptReference/ExecuteInEditMode.html

uruchamia update kilka razy na sec możesz wtedy śledzić gdzie jest mysz na ekranie, jeśli uda ci się rzutować współrzędne myszy z 2d na 3d

void Update()    {
    if (!Application.isPlaying)   {
        Debug.DrawLine(/*parametry */);
    }
}

dodatkowo:
https://docs.unity3d.com/ScriptReference/ExecuteAlways.html
https://docs.unity3d.com/ScriptReference/MonoBehaviour-runInEditMode.html

możliwe , że editor script też pomoże . Poszukaj na blogu unity albo zacznij od tutoriali: https://learn.unity.com/tutorial/editor-scripting,

info tutaj:

tworzenie prostych obiektów na scenie:
https://docs.unity3d.com/ScriptReference/GameObject.CreatePrimitive.html


#3

jakoś wcześniej nie mi do głowy aby skorzystać z debug.drawline :D. ale nawet jeśli bym z tego skorzystał to nic by to nie dało.

okienko podglądu sceny (sceneView : EditorWindow) nie aktualizuje się tak jak bym tego zakładał ze stałą liczbą klatek bo i po co, bylo by to w wielu przypadkach marnowaniem zasobów. tak wiec w momencie latania samym kursorem po okienku nie następuje żaden render grafiki, trzeba go wymusić metodą Repaint ot cała zagadka , szkoda ze od razu na to nie wpadłem…