Jump to content

francoe1

Admins
  • Content Count

    1,121
  • Joined

  • Last visited

  • Days Won

    81

francoe1 last won the day on March 31

francoe1 had the most liked content!

Community Reputation

536 Excellent

About francoe1

  • Rank
    Experto

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

2,982 profile views
  1. ¡No se puede compilar la librería UnityEditor!
  2. 1 - obtener el vector de dirección entre la posición y el objetivo. 2 - multiplicar el vector de dirección (paso 1) por la distancia. 3 - sumar el vector offset (paso 2) a vector objetivo.
  3. No existe un método para tal situación. Lo que podrías hacer es crear un variable booleana para identificar si la acción que deseas ya se ejecutó.
  4. Me refiero a que no se está cumpliendo en todos los casos la condición de que se colisione con un objeto que tenga el Tag Enemy y el componente EnemyHealthManager. Por esta razón te recomiendo compruebes antes de usar la referencia a EnemyHealthManager. private void OnTriggerEnter(Collider other) { if(other.tag == "Enemy") { EnemyHealthManager com = other.GetComponent<EnemyHealthManager>(); if(com != null) com.TakeDamage(); } }
  5. Hola, Jesus, quizás es por que el objeto colisiona con un objeto que tiene el Tag Enemy pero no el componente EnemyHealthManager. Antes de llamar a TakeDamage deberías verificar si el collider contiene el componente.
  6. Optaría por un Remplace, obteniendo la ruta absoluta con Application.dataPath o similar.
  7. OnDisable se activa por que estás descargando y cargando la escena. Para detectar la eliminación de un Objeto deberías evaluar el comando del evento actual desde una clase que se ejecute en el editor. Event.current.commandName == "Delete" También puedes utilizar la bandera "isEditor" dentro del OnDestroy private void OnDestroy() { if (Application.isEditor) Debug.Log("Lalala"); } Pero recuerda, una vez llamada la función OnDestroy el objeto se marcó como destruido, esto quiere decir que si intentas acceder a una de sus propiedades obtendrás un error.
  8. No te recomiendo Excel a excepción de que pienses trabajar con CSV. Unity cuenta con ScriptableObjects que suelen ser para estos casos una alternativa aceptable y con muy bajo costo productivo, tendrás que crearte una herramienta en el editor para poder trabajar de forma cómoda. Puedes optar por otras formas como .JSON, .XLM pero necesitaras de una herramienta que te permita una edición rapida.
  9. Fíjate en Project Settings > Player Settings la opción "Display Resolution Dialog". Creo que las últimas versiones traen deshabilitada esa opción, hace bastante no la veo a pesar de que nunca la use.
  10. Esta pregunta tiene una respuesta compleja, deberías editar el comportamiento del evento hierarchyWindowItemOnGUI y simular el menú con todos sus eventos. Se me ocurre algo como. using System.Collections; using UnityEditor; using UnityEngine; [InitializeOnLoad] public class CustomContextMenu { private static bool m_menuOpened = false; private static GameObject m_clickedOBject = null; private static Vector2 m_menuPosition; private static CustomContextMenu () { EditorApplication.hierarchyWindowItemOnGUI += OnHierarchyGUI; } private static void OnHierarchyGUI (int instanceID, Rect selectionRect) { //Detectar si se presiono el boton derecho del mouse. if (Event.current != null && selectionRect.Contains (Event.current.mousePosition) && Event.current.button == 1 && Event.current.type <= EventType.mouseUp) { GameObject clickedObject = EditorUtility.InstanceIDToObject (instanceID) as GameObject; if (clickedObject) { m_clickedOBject = clickedObject; m_menuPosition = Event.current.mousePosition; m_menuOpened = true; Event.current.Use (); } } //Simular el menu contextual, tambien se puede usar GenericMenu if (m_menuOpened) { if (GUI.Button (new Rect (m_menuPosition.x, m_menuPosition.y, 150, 20f), "Delete")) { m_menuOpened = false; GameObject.Destroy (m_clickedOBject); } } } }
  11. Fíjate si en GUI.skin.button.normal existe algo reference al Size de la textura. Si no, puede dibujar la textura encima del botón GUI.DrawTexture este método tiene más opciones, entre ellas la opción de FILL que estás necesitando.
  12. 1 - No puedes compara flotantes de forma estricta, esto quiere decir float mi_variable = 0; mi_variable=0; Esto se debe a que los números de tipo float tienen una precisión baja, aunque lo asignes como cero al valor inicial el valor siempre intentará estar lo más apropiado a ese valor, esto quiere decir que nunca sera cero. 2 - Ese booleano utilizado como "flag", la variable llamada jump no tiene ninguna utilidad, el problema esta es que la estás asignando como falso cuando el usuario no cumple el bloque If dónde evalúas si el usuario está presionando la tecla de salto. Por otro lado el código tiene un planteamiento lógico erróneo, borra todo, y empieza de nuevo, pensando previamente que condiciones se deberían cumplir para que x accion suceda.
  13. Empezaría por un juego estilo GTA 5, así ganas experiencia.
  14. Hola a todos, estamos realizando un concurso mediante YouTube para regalar 3 copias de CGLocalization 🎁, se trata de una gran herramienta para administrar múltiples idiomas en nuestros proyectos de Unity3D. Para participar solo deberán dejar su comentario en el video.
UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...