Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: lightbug en Diciembre 15, 2016, 03:43:08 PM

Título: [APORTE] Desenparentador
Publicado por: lightbug en Diciembre 15, 2016, 03:43:08 PM
Hola aca dejo un simple script que desenparenta al nivel mas alto cualquier gameObject (sin dejar padres, abuelos, bisabuelos y asi XD), la raiz de hacer eso en mi caso surgio por problemas en el hierarchy cuando tenia varios objetos y tenia que arrastrar al hijo hasta arriba era bastante molesto. Aca el código:
 
"MakeOrphan.cs"
 

using Unit***itor;
using UnityEngine;
public class MakeOrphan : EditorWindow {
[MenuItem("Window/Make Orphan")]
public static void Action()
{
   
   Transform[] selected = Selection.GetTransforms (SelectionMode.Assets);
   if (selected.Length == ) {
      Debug.Log ("No Objects selected");
      return;
   }
   
   for(int i =  ; i < selected.Length ; i++){
      selected[i].SetParent (null);
      Debug.Log(selected[i].name + " is now an Orphan");         
   }
 
}
}

 
EDIT: yo lo coloque en una carpeta "Editor" pero probe fuera de ella y funciona igual, pense que era necesario para los assembly del Editor
Título: [APORTE] Desenparentador
Publicado por: iRobb en Diciembre 16, 2016, 09:24:48 AM
Gracias por el aporte.
 
La carpeta de Editor se utiliza para colocar código vinculado con el Editor, y Unity AL COMPILAR no lo incluye. Así no tienes que poner el #if UNITY_EDITOR bla bla bla cuando lo colocas en otra carpeta que no sea esa.
Título: [APORTE] Desenparentador
Publicado por: lightbug en Diciembre 16, 2016, 09:45:21 AM
Cita de: iRobb date=1481876688Gracias por el aporte.
   
   
      La carpeta de Editor se utiliza para colocar código vinculado con el Editor, y Unity AL COMPILAR no lo incluye. Así no tienes que poner el #if UNITY_EDITOR bla bla bla cuando lo colocas en otra carpeta que no sea esa.
   


Ok gracias, claro yo lo usaba en los custom inspectors porque derivaba de Editor, pense que con EditorWindow era algo parecido.
Título: [APORTE] Desenparentador
Publicado por: iRobb en Diciembre 16, 2016, 09:47:35 AM
Cita de: lightbug date=1481877921Ok gracias, claro yo lo usaba en los custom inspectors porque derivaba de Editor, pense que con EditorWindow era algo parecido.
   


Prueba a hacer un build teniendo ese script en una carpeta que no sea la Editor y luego ponlo en la de Editor. Todo lo que tenga la palabra "Editor" requerirá ese using.