Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Custom Window

Iniciado por ftejada, Julio 12, 2017, 06:57:25 PM

Tema anterior - Siguiente tema
Hola a todos!!!
 
Me gustaría crear una ventana independiente para mi custom Editor y que no tenga que estar siempre saliendo en la pestaña "Inspector" de Unity.
 
Este customEditor ya lo tengo programado y no se si puedo utilizarlo para la customWindow y así ahorrar tiempo, o debo mover todo el codigo (adaptandolo) a la nueva customWindow y olvidarme de mi customEditor.
 
Sea como fuere me estoy encontrando con ciertos problemas que no se como abordar. Tampoco he encontrado alguna información que me despeje las dudas y no consigo encontrar como puedo hacer que esa customWindow dibuje lo que se muestra actualmente por mi customEditor (Texturas, fields, etc)..
 
He visto algunas diferencias respecto a como se hace un custom Editor. Por ejemplo, parece que tengo que usar OnGUI() en vez OnInspectorGUI. O al menos a mi no me dibuja nada en la customWindow cuando lo hago con OnInspectorGUI, a pesar de que no me da errores de codigo...
 
También, cuando intento acceder a las variables de mis script para modificarlas desde la customWindow, no se como hacerlo. Con el customEditor se hacia un
 

ScriptTarget st = (ScriptTarget)target;

 
Y a partir de ahí podias acceder a todas las variables de ese ScriptTarget y modificarlas desde el customEditor. Pero no se como acceder a ellas desde la customWindow
 
 
 
Alguien puede orientarme un poco?
 
 
 
Saludos y muchas gracias de antemano.

Cita de: ftejada date=1499878645Tampoco he encontrado alguna información que me despeje las dudas y no consigo encontrar como puedo hacer que esa customWindow dibuje lo que se muestra actualmente por mi customEditor (Texturas, fields, etc)..
   


(poner voz de Dross aqui) En el lugar menos pensado y mas oculto en las profundidades de la deep web he encontrado el siguiente link:
 
https://docs.unity3d.com/Manual/editor-EditorWindows.html
 
(Tenes la version de Scripting pero la del manual me parecio mas completa)
 
Tenes un ejemplo de como pintar tu ventana, podes seguir usando tus elementos GUI o GUILayout como siempre dentro del metodo OnGUI.
 
 
 
Cita de: ftejada date=1499878645Este customEditor ya lo tengo programado y no se si puedo utilizarlo para la customWindow y así ahorrar tiempo, o debo mover todo el codigo (adaptandolo) a la nueva customWindow y olvidarme de mi customEditor.
   


El customInspector o creas derivando de "Editor", tu custom window la creas derivando de "Editor Window", moverlo a la parte GUI es exactamente lo primero que haria yo, dentro de una funcion OnGUI, si tenes problemas los vas viendo, pero es igual que para el inspector, quizas te convenga definir areas de dibujo (BeginArea y EndArea me parece)
 
 
 
Cita de: ftejada date=1499878645También, cuando intento acceder a las variables de mis script para modificarlas desde la customWindow, no se como hacerlo. Con el customEditor se hacia un
   
   

ScriptTarget st = (ScriptTarget)target;

   
      Y a partir de ahí podias acceder a todas las variables de ese ScriptTarget y modificarlas desde el customEditor. Pero no se como acceder a ellas desde la customWindow


Hasta aca llegue, nunca le vi mucha utilidad pasar mis herramientas a un ventana por lo que nunca las use asi, pero seria interesante que si alguien sabe como hacer que lo diga. Aunque se me ocurre hacer tu custom Inspector, de ahi mediante un boton abrir la ventana y pasarle a la ventana el target (si es que se puede, no lo se). Fijate que cuando tenes la ventana de animacion se actualiza cada vez que tenes seleccionado un objeto que contenga animacion, quizas toma la seleccion actual y de ahi el target, Ojo que estoy diciendo target y me parece que los editor window no se manejan por target .
 
Fijate que hay variable target en Editor y no en EditorWindow:
 
https://docs.unity3d.com/ScriptReference/Editor.html
 
https://docs.unity3d.com/ScriptReference/EditorWindow.html

Cita de: lightbug date=1499879927(poner voz de Dross aqui) En el lugar menos pensado y mas oculto en las profundidades de la deep web he encontrado el siguiente link:
   
   
      https://docs.unity3d.com/Manual/editor-EditorWindows.html
   
   
      (Tenes la version de Scripting pero la del manual me parecio mas completa)
   
   
      Tenes un ejemplo de como pintar tu ventana, podes seguir usando tus elementos GUI o GUILayout como siempre dentro del metodo OnGUI.
   


Gracias por responder @lightbug. Esto ya lo he probado y hecho, pero lamentablemente no me ayuda para las dudas que tengo. De hecho esa misma ventana que sale en el manual ya la programé para hacerme un poco con como iba lo del customWindow.
 
No me importa tener que adaptar de nuevo todo el codigo de mi customEditor para  mi customWindow, el problema es que si no puedo acceder a mi "ScriptTarget", al que SI puedo acceder desde mi customEditor,  para poder cambiar el valor de sus variables desde el customWindow no me sirve de nada empezar a "dibujar" el contenido de la customWindow...
 
 
 
Supongo que es el principal problema es ¿de qué manera podría acceder a mi scriptTarget desde una customWindow?

Cita de: ftejada date=1499880618Supongo que es el principal problema es ¿de qué manera podría acceder a mi scriptTarget desde una customWindow?
   


Claro si, pense que como planteabas lo de oninspectorGUI y eso quizas no sabias como dibujar en la ventana, el problema que tenes es el que algunas vez tuve, lo mejor es descargarse un asset libre y mirarlo, yo tengo un TileEditor gratis de la assetStore quizas ahi se puede y desmarañando todo, si tengo tiempo despues lo veo y subo si encuentro algo.

Etiquetas: