xzl 2 Report post Posted July 24, 2020 Hola, me gustaría crear un script que activara la animación (Animator) de un objeto al pulsar una tecla dentro de un trigger. He escrito esto y funciona perfectamente, el problema me viene al intentar insertar un If (input.GetKeyDown(keycode.Space). No me da ningún error, simplemente ya no se activa la animación, el script esta dentro del trigger así que supongo que entenderá el programa que quien tiene que presionar la tecla es el objeto y no el personaje. Seria posible hacer que el tag del personaje cambiase al estar dentro del trigger y presionar una tecla?. Gracias de antemano. using System.Collections; using System.Collections.Generic; using UnityEngine; public class animador2 : MonoBehaviour { [SerializeField] private Animator myAnimatorController; private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { myAnimatorController.SetBool("transicion", true); } } private void OnTriggerExit(Collider other) { if (other.CompareTag("Player")) { myAnimatorController.SetBool("transicion", false); } } } Share this post Link to post Share on other sites
francoe1 536 Report post Posted July 24, 2020 No deberías detectar la pulsación de una tecla dentro del callback del colisionador. Te recomiendo crees una variable booleana y la asignes detectando el input desde la función update. Luego usa ese valor como flag para el callback del colisionador. Share this post Link to post Share on other sites
Igor 337 Report post Posted July 24, 2020 (edited) onColliderEnter solo se activa durante un frame. el frame en el que justo entra en contacto. puedes probar a hacerlo en onColliderStay o sino hace lo que dice @francoe1 Edited July 24, 2020 by Igor 1 Share this post Link to post Share on other sites