Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. Estoy en la hermosa etapa en donde algunas cosas funcionan pero no tengo la mas mínima idea de por que, 😁 Me pasa igual cuando las cosas no funcionan, y en este caso, no tengo la mas mínima idea como asignar el Animator al asset o al controller,, lei del tema en la documentacion pero no encontre algo que me deje entender tu explicación. Una ayuda extra francoe1 se te agradecería un mundo. Y como hago para mencionar a un usuario asi como hiciste en tu respuesta para mencionarme a mi? creo q te reporte por error por leer mal el link("lei Repost" post en lugar de "Report post")... sorry 😣
  3. Today
  4. Gracias... Lo instalé y lo estoy viendo... No va a ser nada sencillo por lo visto.
  5. Yesterday
  6. Claro, lo puedes hacer con FindObjectOfType, pero el objeto componente deberia estar instanciado. Lo mejor es trabajar con referencias en tiempo de edición, de ese modo comprenderas más facilmente los errores del juego.
  7. Perdón por responder tan tarde! No, no es requerido, las referencias a componentes se buscan automaticamente. La estructura que yo propongo es una estructura óptima, es decir que puedes hacer varias cosas interesantes separando la parte visual de la parte física (collider + rigidbody). Lo que sí o sí es requerido es que todo lo relacionado al personaje esté contenido dentro de un "root" u objeto maestro (padre). No, de hecho CCP no hace referencia a los huesos de ninguna manera. En la "Demo" mi personaje es un humanoide, gracias a esto puedo usar el avatar que Unity ofrece para acceder a los IK (por ejemplo). Por ejemplo (estado LadderClimbing ) public override void UpdateIK( int layerIndex ) { if( !useIKOffsetValues ) return; UpdateIKElement( AvatarIKGoal.LeftFoot , leftFootOffset ); UpdateIKElement( AvatarIKGoal.RightFoot , rightFootOffset ); UpdateIKElement( AvatarIKGoal.LeftHand , leftHandOffset ); UpdateIKElement( AvatarIKGoal.RightHand , rightHandOffset ); } void UpdateIKElement( AvatarIKGoal avatarIKGoal , Vector3 offset ) { CharacterStateController.Animator.SetIKPositionWeight( avatarIKGoal , 0f ); Vector3 originalRightFootPosition = CharacterStateController.Animator.GetIKPosition( avatarIKGoal ); CharacterStateController.Animator.SetIKPositionWeight( avatarIKGoal , 1f ); CharacterStateController.Animator.SetIKPosition( avatarIKGoal , originalRightFootPosition + offset ); } Ahora mismo el método usado para movimiento es muy pero muy simple, un MoveTowards que modifica la velocidad linealmente con el tiempo. El base speed limit indica el target del MoveTowards (función de Vector3) del walk (no de run). Este valor será el valor final de velocidad obtenido, es decir que técnicamente no es posible, ya que mayor límite de velocidad + aceleración implica obtener una velocidad mayor. Ya que es un MoveTowards (incluso si fuese un Lerp), quizás lo que más te importe a la hora de modificarlo es su "t factor" (el tercer argumento de este método). Si tienes el control de "t" entonces puedes controlar la velocidad como quieras, independientemente de sus límites. En mi caso uso acceleration/deceleration como variables "t". Jugar entre los valores de velocidad y los umbrales (threshold) del animator es fundamental. Quizás tratar de cubrir varios tipos de movimiento (parada, arranque suave, trote, correr, etc) todos al mismo tiempo (usando una simple funcion lineal) no sea una buena solución en tu caso. Si realismo en las animaciones es lo que necesitas se pueden hacer dos cosas: Mejorar el script de movimiento. Meter curvas para lograr un movimiento menos lineal y más personalizable es algo que voy a introducir en 2.0.0. Ya esto pasa por el lado de la implementación de la lógica (por parte del usuario) y escapa al alcance del asset. De todas formas siempre trato de meter este tipo de cosas, de manera de facilitar un poco la parte del gameplay. Usar root motion, piensa en GTA 4/5 por ejemplo. No hay scripts ni nada de eso, el clip contiene la información de movimiento y solamente se lee el input del player. Con 1.3.3 puedes usar root motion para planar velocity y seguir usando la gravedad de NormalMovement.
  8. Buenas Gracias por responder, los componentes estan en distintas escenas,hay alguna manera de recuperar esos datos? Por ejemplo ,los puntos estan en un objeto Gamecontroller dentro de la escena principal de juego, y Nombres en la Main camera de la escena Nombres. Tengo el codigo bastante feo diria yo... Saludos y gracias
  9. Lo más probable es que alguno de los GetComponent este retornando nulo, recuerda que GetComponent funciona únicamente cuando el Component está en el mismo GameObject.
  10. Buenas noches! Soy nuevo por aqui,y vengo buscnado algo de ayuda 😅 Resulta que estoy programando un juego de Asteroides ,el cual cuando te matan,aparece una escena en la que puedes introducir tu nombre y darle a un boton para volver al menu principal y que se guarde tu nombre con los puntos. Pues al intentar guardar los datos,me tira ese error "nullreferenceexception: object reference not set to an instance of an object" , los datos los guardo en una base de datos Sqlite, y funciona perfectamente,pues puedo cargar un ranking con todas las puntuaciones (que he introducido a mano con otro programa) ,lo maximo que consegui hacer mediante codigo fue que se grabara el nombre en la base de datos,pero la puntuacion se quedaba en 0. Aqui dejo la parte del codigo que da error,he buscado en google y en los foros oficiales de Unity,pero no se solucionarlo. using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Data; using System.IO; using Mono.Data.Sqlite; using System; public class GuardaRanking : MonoBehaviour { public int Score; public string Name; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { GameController gameController = GetComponent<GameController>(); Score = gameController.Puntos; Nombres Nombre = GetComponent<Nombres>(); Name = Nombre.input; } public void GuardaPuntos() { RankingManager RankingGo = GetComponent<RankingManager>(); RankingGo.InsertarPuntos(Name,Score); } } Me da error en la Linea 24 Saludos y gracias de Antemano.
  11. Hola @Mario Ernesto Madrid Amaya, estas asignando el "Animator Controller (Asset)" al "Animator Controller (Component)"
  12. y si alguien tiene curiosidad y tiempo, lo puedo incluir en el colaborador de Unity para que lo vean a detalle 😁
  13. Interesante aproximación, me pondré manos a la obra, gracias!
  14. Buen día señores, Aplique una solución a otro problema pero creo q podría ser útil aquí, (para que tengas de donde escoger) Cuando se presione la tecla puedes empezar a acumular time.deltatime en una variable, y cuando el tiempo que quieras se cumpla entonces entras con un "if" a la función que quieras que se ejecute. Saludos a todos.
  15. Buen día a todos, He hecho una animación y funciona de "maravilla" en modo edición, pero cuando el juego esta en modo "play", los prefabs que se deben animar que estan fuera de la vista del modo edición(Scene) se congelan y la animación no avanza. En mi dolorosa experiencia en Unity debe ser algo extremadamente simple, pero ya tengo mucho tiempo buscando,,, y ya entre en modo panico. Agradezco mucho la ayuda.
  16. Calculas la dirección entre el jugador y la explosión luego la normalizas y la aplicas a la velocidad del rigidbody del jugador como una dirección negativa multiplicándola por la fuerza que necesites.
  17. Buenas, Estoy con un juego 2D, he creado una apk para ver que tal se ve en movil pero mi sorpresa es que no veo imágenes, es como que no se cargan, siempre son las mismas, me pasa con los sprites de algun npc en la pantalla de inicio como en la siguiente con las habilidades, un ejemplo seria este, uno que no se ve y otro que si otro seria este, no se ven los arboles Todas las imágenes tienen la misma configuración el caso es que en Unity lo veo todo de maravilla pero en móvil o Tablet casca... he probado a cargarlas en la primera pantalla, a piñón, y luego se ven bien, también a ponerlo en las preferencias de los assets precargados, y bien pero no se hasta que punto esto es bueno porque seria bastantes y no creo que sea bueno abusar de esta opción… muchas gracias!
  18. Buenas, estoy intentando hacer funcionar una cosilla que no me sale, os explico: Tengo un enemigo que se acerca al personaje, se queda en esa posición 2 segundos y explota. A este enemigo le he puesto como objeto hijo un Point Effector 2D y un circle collider 2d. Mi idea era tener este objeto hijo desactivado, y cuando el enemigo se acercase al personaje, activar este objeto para lograr ese efecto de impacto de la explosión. El problema viene que hasta que mi personaje no se mueve, no entra en juego el point effector (estando dentro del circle collider), y lo que quiero es que sea instantáneo, nada más activar el objeto. Alguna sugerencia? Gracias!
  19. Last week
  20. Este sábado pasado presentamos #RayuelaJam2021. Aprovechamos el tirón para hacer una retrospectiva de nuestra participación como estudio en las ediciones pasadas. https://oniria.world/2021/04/12/devlog-5-rayuelajam-retrospectiva/
  21. 1 - Buscar en google "instalar bolt en Unity3D" 2 - Entrar en cualquier resultado y seguir los pasos 3 - Buscar forma de crear tu idea en nodos.
  22. Gabo

    Bubbles and Puzzles

    Hola, antes que nada disculpa, no sé cómo se me pudo pasar agregar a España en la play store (ya lo agregue), muchas gracias por los consejos, yo siempre publico primero en este foro ya que me gusta mucho la participación de la gente, pero creo que voy a probar de forma paralela en otros lados
  23. Hola! Como se hace? De veras no tengo idea...
  24. 1 - Estás asignando dos funciones Update. 2 - La segunda función Update no la estás cerrando Te recomiendo que uses Bolt, puede ser más fácil en tu caso conseguir un resultado
  25. Has intentado asignar public a algo que no lo soporta. Debería salirte la línea donde está el error en la console.
  26. Genial! Pero este código lo tendría que poner en un script nuevo aparte o en el mismo que ya tengo del player o de la superficie???? En ese caso: Como los ensamblo? He hecho esto: using UnityEngine; public class PlayerHealth : MonoBehaviour { public float startingHealth = 200f; public float currentHealth; void Awake() { currentHealth = startingHealth; } void Update() { if (currentHealth <= 0f) { Destroy(gameObject); } } public void remove(float amount) { currentHealth -= amount; } bool trap; void Update() { //esta en la trampa if(trap) { remove(amount); } else { regenerate(amount); } public void regenerate(float amount) { if(currenHealth< MaxHealth) currenHealth += amount; } } Pero me da error: error CS0106: The modifier 'public' is not valid for this item Donde me equivoqué?
  27. bool trap; void Update(){ //esta en la trampa if(trap){ remove(amount); }else{ regenerate(amount); } } public void regenerate(float amount){ if(currenHealth< MaxHealth) currenHealth += amount; } Es una idea. Si está fuera de la trampa, llamas al método regenerar, usando una boleana.
  28. Gracias iRobb! Me dí cuenta que anulando la boleana "Interactuable" del botón tuve que dejar de usar .Select(), para cambiar el color usando las otras funciones de las que dispone el botón en sí. Así puedo tener "activados" los submenus que quiera.
  29. Buenas... como muchos saben estoy en medio de un proyecto y soy un CERO en código. Por lo que la única opción que tengo es pedir un poco de ayuda a esta comunidad. Alguien podría darme una mano con un script que sirva para: 1) El personaje camina sobre una superfice determinada y va perdiendo energía hasta morir. Para eso tengo este código: Este va en el PLAYER using UnityEngine; public class PlayerHealth : MonoBehaviour { public float startingHealth = 200f; public float currentHealth; void Awake() { currentHealth = startingHealth; } void Update() { if (currentHealth <= 0f) { Destroy(gameObject); } } public void remove(float amount) { currentHealth -= amount; } } Y este va en la superficie using UnityEngine; public class PlayerDrown : MonoBehaviour { void OnTriggerStay(Collider drown) { if (drown.gameObject.tag == "Player") { PlayerHealth health = drown.GetComponent<PlayerHealth>(); if (health != null) { health.remove(1); Debug.Log("Player is drowning"); } } } } FUNCIONA! Pero no cumple con el lo que necesito en el punto 2) 2) Si el player sale de esa superficie automáticamente recupera su energía de manera gradual hasta rápidamente completarla al 100% Quien me de una mano irá a los créditos! Desde ya MUCHAS GRACIAS!!!
  1. Load more activity
×
×
  • Create New...