Hice un campo de "radiación" simple a través de un disparador, pero solo funciona cuando el jugador se mueve. La función cuenta dos valores decimales. ¿Cual podría ser el problema?
decimal radIntensity = 0.001m; decimal currentDose; private void OnTriggerStay2D(Collider2D area) { if (area.gameObject.tag == "Player") { currentDose += radIntensity; } print($"Current dose: {currentDose} R"); }En el componenteRigidBody2D hay una opción para desactivar o activar el modo de suspensión.
Intente desactivarlo con la opción RigidbodySleepMode2D.NeverSleep .
También puede usar una bandera booleana y OnTriggerEnter2D y OnTriggerExit2D. Pero nunca dormir rígido es mucho mejor
bool _flag; private void Update() { if (_flag) { currentDose += radIntensity; } print($"Current dose {currentDose} R"); } private void OnTriggerEnter2D(Collider2D area) { if (area.gameObject.tag == "Player") { _flag = true; } } private void OnTriggerExit2D(Collider2D other) { if (other.gameObject.tag == "Player") { _flag = !true; }