Jump to content
UnitySpain

Search the Community

Showing results for tags 'editor'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Inicio
    • Proyectos
    • Offtopic
    • Unity Feeds
    • Website
  • Mesa de ayuda
    • Unity
    • Arte
    • Otras Especialidades
    • Builds & Dispositivos
  • Aportes de la Comunidad
    • Recursos
    • Eventos
    • Buenas Prácticas
  • Bolsa de trabajo & Colaboraciones
    • Ofertas y Demandas
  • Post Antiguos
    • General (Antiguo)

Blogs

  • byGui

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Especialidad

Found 16 results

  1. Hola, nada más dejo este video que trata acerca de la nueva herramienta de Unity, el tilemap editor. En el video el hombre explica muy bien como arrancar con esta herramienta y como extenderla.
  2. Hola. Agradezco de antemano la ayuda que pueda recibir. He desarrollado una función para crear un material e inmediatamente después ponerlo como skybox. Esa función es de editor y la pongo bajo una carpeta llamada 'Editor' porque parece que Unity la compila de otra manera. Cuando la ejecuto desde el editor no tengo ningún problema pero no me es posible llamarla desde los scripts normales. Cuando la intento asignar a un botón no me aparece a pesar de que la declaro como pública. Si la pongo fuera de la carpeta 'Editor' me da errores de compilación en el build. Alguien sabe como llamar llamar a esa función desde un botón (por ejemplo).? Saludos.
  3. Hola, como estan? Alguien puede ayudarme con esto? Necesito crear un "AnimationCurve" en un Editor inspector, bueno para eso necesito el metodo "EditorGUILayout.CurveField()" Pero neceisto darle un minimo uy un maximo a la curve creada, y crear una especie de box para mi comodidad cuando lo retoco, como lo hago? Asi como me queda, y no puedo controlar ni el minimo ni el maximo, si yo edito una curve puedo mover libremente los puntos. Necesito algo asi, eso es una especie de box(caja) donde los puntos de la curve no pasan de los limites, alguno me puede ayudar? Alguien sabe manejar el Editor?
  4. Holas. Resulta que tengo un script que hace que al tener un objeto seleccionado en Editor Mode y usar Ctrl+F, posiciona a dicho objeto a ras de suelo, o sobre cualquier otro objeto que éste tenga debajo, mediante raycast. Es más que nada por comodidad, para hacerme la vida más fácil con algunos gameobjects que quedan flotando y que me dan pereza bajarlos manualmente con los gizmos, jeje. Para ello uso 2 scripts, pero el problema es que para que funcione, el gameobject debe tener el script "PlaceToGround". Y pues tendría que añadir ese script a todos los objetos de la escena. Entonces, mi plan era simplemente añadir el script al objeto que tenga seleccionado, mediante código, para después de de-seleccionarlo, quitárselo y aquí no pasó nada. Todo funciona genial, pero pues lo de añadir el script al seleccionado no. Alguna sugerencia? Este es el script que ejecuta el atajo de teclado: using UnityEngine; using UnityEditor; public class Pereza : MonoBehaviour { [MenuItem("Comandos/A ras de suelo %f")] private static void SpecialCmd() { if (PlaceToGround.CanLand) { var offset = new Vector3(0f, -.2f, 0f); var selected = Selection.activeGameObject.transform; selected.SetPositionAndRotation(PlaceToGround.hit.point + offset, selected.transform.rotation); } } } Y este el que usa raycast y el cual deben tener los objetos: using UnityEngine; [ExecuteInEditMode] public class PlaceToGround : MonoBehaviour { private static RaycastHit m_hit; private float m_maxDist = 100; private static bool m_canLand = false; public static RaycastHit Hit { get { return m_hit; } } public static bool CanLand { get { return m_canLand; } } private void Update() { Ray ray = new Ray(transform.position, Vector3.down * m_maxDist); if (Physics.Raycast(ray, out m_hit, m_maxDist)) { Debug.DrawRay(ray.origin, ray.direction * m_hit.distance, Color.red); m_canLand = true; } else { m_canLand = false; } } }
  5. Buenas, vuelvo nuevamente con un montón de dudas, la mayoría seguramente tontas, pero llevo una semana y pico trasteando con el tema y me parece que cada vez más perdido. Para ponernos en situación, tras que @lightbug y @GSG3D me descubrieran esa maravilla del ScriptableObject, que se adaptaba como un guante a mis necesidades, he puesto codos en el tema, y he rehecho mi proyecto. El caso es que es sencillo, intuitivo y funciona fantástico como base de datos, lo hace todo de maravilla. Ahora bien, al emplearlo como base de datos, tiene un problema, y es que al manejarlo desde el inspector, para que nos hagamos a la idea, tengo una clase que referencia a otra clase, y esta a otra y esta a una colección de otras clases y así, con lo cual a la hora de establecer las referencias en el inspector es un caos de desplegables y datos que es muy difícil ir siguiendo. Bueno, así que empiezo a buscar por dónde puedo racionalizar la edición de toda esta información. Y aquí es dónde empiezo a liarme como un trompo. Bien, primer paso lógico, la documentación oficial. Ahí me encuentro con la posibilidad de crear Property Drawers. Sobre la claseA puedes crear: [CustomPropertyDrawer (ClaseA)] class ClaseADrawer : PropertyDrawer {} Bien, hasta aquí bien. El caso en que no he conseguido encontrar en ningún lado que digan dónde se ha de meter el dichoso script para poder jugar con él. Digo yo que será en la carpeta editor, pero no me funciona. En la clase original? También he probado y me ha tirado muchos errores. Seguro que algo hago mal, pero no puedo saberlo a ciencia cierta si de buen inicio no sé dónde se mete. Por otro lado, investigando esto, doy con la posibilidad de crear tu propia ventana del editor, Bien, estupendo. La verdad es que encuentro información muy buena y es sencillo de hacer. Ahora bien, a la hora de dotarlo de contenido... Ahí nuevamente no me salgo. Pienso hacer una ventana con tres secciones en vertical, la de la izquierda, tendrá unos botones de arriba a abajo con los diferentes tipos de clases que tiene mi proyecto. La idea es que al pulsar el botón de una determinada clase, se listen todas las instancias con sus propiedades y referencias, como en el editor (Y con sus Property Drawers cuando consiga hacerlo) y que al hacer clic sobre una referencia se listen todas las instancias del tipo de la referencia en el panel de más a la derecha, para poder seleccionarlas con un simple clic. Consigo dividirlo en tres con la propiedad BeginArea y EndArea y queda bien. Pero al insertar el BeginArea dentro del if(GuiButton) como dicen en la documentación me desaparece y temo que es porqué la crea como un subarea dentro del primer área. En fin, que voy más perdido que un bacalao en el Sahara. Si alguien pudiera echar un poco de luz, me diga si voy bien encarado o estoy confundiendo cosas, o conoce algún tutorial que vaya un poco más allá de simplemente poner un botoncito y alguna cosa más, algo más elaborado, estaría muy agradecido.
  6. https://kobra.io Es un servicio online de edición de código colaborativo (múltiples usuarios editando el mismo archivo a la vez), lo que permite crear el código de un fichero en menor tiempo, o también puede usarse para enseñanza a distancia, para tutorías o cualquier otra cosa que necesitéis. Su uso es muy sencillo, y puede serviros a más de uno para resolver esas dudas del foro que parecen imposibles. Recordad: ¡La unión hace la fuerza!
  7. Hola, Tengo un problema en mi editor de unity 3D, al momento de abrir el proyecto que llevo trabajando me aparecen en el editor de unity unos simbolos como de prohibido, nose porque razón pasa esto, nunca habia visto este problema. Ojala me puedan ayudar a resolver este problema. Gracias.
  8. Estoy retomando mi proyecto de voxeles, y quiero hacerle un bonito editor. Ya tengo lo básico con una extensión de editor pero al controlar el cursor con teclas propias el Unity hace "beep" y es algo molesto. Debe haber una manera de decirle que este script ya las procesó: http://pastebin.com/BnPzP5vH
  9. Buenas tardes a todos. Tengo un minijuego que se basa en un canvas donde se representa una pregunta y hay varios botones con las posibles respuestas, al estilo del típico 50x15. Ahora tengo que pasarle unos Test, en plan:si pulso la respuesta correcta la puntuación aumenta. El problema es que obtengo las respuestas de un xml que cargo en la primera escena(donde tengo un menú muy simple), y en estos test(editor test) no se puede cambiar de escena. De esta forma cuando estoy en la escena donde pongo las respuestas y ejecuto el test no me salen bien,ya que no se han cargado las respuestas desde el xml y aparecen los botones vacíos. Alguien tiene una idea de que podría hacer?
  10. Pues resulta que he hecho un script de Editor/Inspector de unity para hacer que una lista, que puede modificarse desde el inspector, sea ordenable. Para esto hay muchos tutoriales en internet. El script funciona bien, adjunto una imagen del inspector. El problema es que al cerrar Unity y volver a abrirlo, los cambios han desaparecido, no se guardan. Es decir, cualquier cambio que le haga en la lista (añadir, quitar o modificar valores) se mantiene hasta que cierre Unity. Cuando vuelvo a abrir los cambios han desaparecido... Os dejo aquí el código, a ver si me podéis ayudar: [CustomEditor(typeof(Dialog))] public class DialogEventInspector : Editor { private ReorderableList reorderableList; private float[] sizes; private float[] steps; private float[] spaces; private Dialog dialog { get { return target as Dialog; } } private void OnEnable() { reorderableList = new ReorderableList(dialog.DialogEvents, typeof(DialogEvent), true, true, true, true); // for rects in draw sizes = new float[] { 0.19f, 0.19f, 0.19f, 0.08f, 0.03f, 0.18f, 0.08f}; steps = new float[sizes.Length]; float sum = 0.03f; for(int i = 0; i<sizes.Length; ++i) { steps[i] = sum; sum += sizes[i]; } spaces = new float[] { 0.5f, 0.8f, 0.85f, 0.55f, 0.23f, 0.4f, 0.45f}; // Add listeners to draw events reorderableList.drawHeaderCallback += DrawHeader; reorderableList.drawElementCallback += DrawElement; reorderableList.onAddCallback += AddItem; reorderableList.onRemoveCallback += RemoveItem; } private void OnDisable() { // Make sure we don't get memory leaks etc. reorderableList.drawHeaderCallback -= DrawHeader; reorderableList.drawElementCallback -= DrawElement; reorderableList.onAddCallback -= AddItem; reorderableList.onRemoveCallback -= RemoveItem; } private void DrawHeader(Rect rect) { GUI.Label(rect, getSpaceOf(0, rect) + "Name" + getSpaceOf(1, rect) + "Type"+ getSpaceOf(2, rect) + "Item"+ getSpaceOf(3, rect)+"GT" + getSpaceOf(4, rect) + "N"+ getSpaceOf(5, rect) + "Text" + getSpaceOf(6, rect) + "Darken"); } private string getSpaceOf(int i, Rect rect) { string space = ""; int Spaces = (int)(rect.width / 20 * spaces[i]); for (int k = 0; k < Spaces; ++k) space += ' '; return space; } private void DrawElement(Rect rect, int index, bool active, bool focused) { DialogEvent item = dialog.DialogEvents[index]; EditorGUI.BeginChangeCheck(); EditorGUI.LabelField(new Rect(rect.x, rect.y, rect.width * 0.03f, rect.height), index.ToString()); item.Name = EditorGUI.TextField(new Rect(rect.x + steps[0]*rect.width, rect.y, sizes[0]*rect.width, rect.height), item.Name); item.eventType = (DialogEvent.EventType) EditorGUI.EnumPopup(new Rect(rect.x + steps[1]*rect.width, rect.y, rect.width*sizes[1], rect.height), item.eventType); item.Item = (DialogResource) EditorGUI.ObjectField(new Rect(rect.x + steps[2]*rect.width, rect.y, rect.width*sizes[2], rect.height), item.Item, typeof(DialogResource), true); item.GradualTime = EditorGUI.FloatField(new Rect(rect.x + steps[3] * rect.width, rect.y, rect.width * sizes[3] *0.75f, rect.height), item.GradualTime); item.PassToNext = EditorGUI.Toggle(new Rect(rect.x + steps[4] * rect.width, rect.y, rect.width * sizes[2], rect.height), item.PassToNext); item.Text = (DialogText)EditorGUI.ObjectField(new Rect(rect.x + steps[5] * rect.width, rect.y, rect.width * sizes[5], rect.height), item.Text, typeof(DialogText), true); item.Darken = EditorGUI.Toggle(new Rect(rect.x + steps[6] * rect.width*1.02f, rect.y, rect.width * sizes[6], rect.height), item.Darken); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(target); } } private void AddItem(ReorderableList list) { dialog.DialogEvents.Add(new DialogEvent()); EditorUtility.SetDirty(target); } private void RemoveItem(ReorderableList list) { dialog.DialogEvents.RemoveAt(list.index); EditorUtility.SetDirty(target); } public override void OnInspectorGUI() { serializedObject.Update(); base.OnInspectorGUI(); // Actually draw the list in the inspector reorderableList.DoLayoutList(); serializedObject.ApplyModifiedProperties(); } }
  11. Buenas tardes. Estoy haciendo un proyecto universitario, en el cual necesito hacer un editor de niveles. Necesito que al pulsar con el ratón en un lugar del terreno visto desde arriba, me salga un pequeño menú (GuiText o GuiButton por ejemplo) donde pueda elegir si colocar en ese lugar uno u otro objeto (cubo o esfera, por ejemplo), y que aparezca dicho objeto en el lugar (como prefabs). Por dónde podría empezar? Toda ayuda es bienvenida. Gracias y saludos.
  12. Hola, tengo un pequeño problema y no se a que se deba... Bueno, estoy desarrollando un juego tipo zigzag infinite runner, y en mi juego el player es un auto. En el editor de unity, el auto anda fluido y a una velocidad constante. Pero si exporto el juego a android, el auto se mueve a tirones (aunque no son tan pronunciados). Espero sepan cual podria ser la causa de este comportamiento. No se si sera tema de colliders, de rendimiento o cualquier otra cosa, pero me parece extraño que en el editor de unity se mueva bien y en android no. Muchas gracias de antemano y espero sus respuestas
  13. Buenas gente, estoy haciendo una mini herramienta para ayudarme un poco a no hacer tantas tareas manuales, pero estoy teniendo un problema. El script lo que hace es transformar cambiar el valor teamId del componente TeamScript de varios objetos. Cuando ejecuto el script funciona, modifica los objetos. El tema es que cuando toco "play" esos cambios se pierden, y de hecho, cuando vuelvo a la escena siguen como estaban. No se guardan los cambios. Este es mi Script: [MenuItem("Tools/FAH/Toggle Team")] public static void ToggleTeam() { if (Selection.activeTransform == null) { Debug.LogWarning("Nothing to change. Please select a TeamSide."); } else { if (Selection.activeTransform.name == "TeamRight" || Selection.activeTransform.name == "TeamLeft") { int i = 0; foreach(var ts in Selection.activeTransform.GetComponentsInChildren<TeamScript>()) { ts.teamId = ts.teamId == 1 ? 2 : 1; i++; } Debug.Log("Changed " + i + " objects"); } else { Debug.LogWarning("Toggle Team must be applied only on TeamLeft and TeamRight object."); } } } Ideas? Desde ya, muchas gracias.
  14. Os añado este recurso al Offtopic, ya que no es exclusivo ni está relacionado en ninguna forma con Unity3d. Hace poco, un usuario mencionaba la necesidad de desarrollar apps para móvil (Android), pero al no poseer demasiada experiencia porgramando, nos consultaba por la posibilidad de usar Unity para la tarea. Os hago referencia a esta aplicación, que aligera relativamente la dificultad, ya que trabaja con un lenguaje muy similar a BASIC. Parece que se incluye dentro de RAD. http://www.b4x.com/b4a.html
  15. hola a todos, tengo un pequeño inconveniente al crear scripts vía developer al crear un nuevo java script me sale asi: #pragma strict function Start () { } function Update () { }el lio es que no me salen las sugerencias de mis variables, ni de las cosas que usa unity, antes me salían e investigando me di cuenta que en eso infería la aparición de las lineas: Using UnityEditor; Using UnityEngine; pero al digitar esas dos primeras lineas, no reconoce la palabra "using", y intente la mayúscula, la minúscula, y no se que hacer estoy escribiendo muy a oscuras.. alguien sabe que pueda solucionar mi problema? muchisimas gracias de antemano
  16. Acabo de encontrar esta joya, totalmente FREE: http://overlap2d.com/ https://www.youtube.com/watch?v=I0g-t0nZ-qE Overlap2D es un cómodo editor/compositor de gráficos y escenarios 2D, totalmente independiente del motor de videojuegos que uses. Permite componer muy fácilmente gráficos y assets para nuestros proyectos que luego se pueden exportar a hojas de sprites o lo que haga falta (.json incluído). Es algo parecido a un AfterEffects o un Tiled. Su única función es preparar y componer gráficos para luego exportarlos a los motores de videojuegos. Es decir, no es un herramienta de creación de Arte, como Photoshop o Flash, sinó que importa esos gráficos para "colocarlos" o agruparlos.
×
×
  • Create New...