(Por favor, perdóname por mis malas habilidades de codificación)
Así que estoy tratando de hacer una plataforma de salto en la unidad donde, si el jugador se para en la plataforma de salto, el jugador se dispara automáticamente hacia el cielo.
float height = 50f; else if (onJumpPad) { while (true) { velocity.y += 1; height -= 1; if (height == 0) { height = 50f; break; } } }arriba está el código que funciona a medias. Tengo que saltar EN la plataforma de salto para que el jugador salga disparado hacia el cielo.
Cualquier ayuda es apreciada.
(Sé que la variable de altura no debe estar en el medio de la instrucción else if, solo la escribí con fines de demostración).
código completo aquí = https://pastebin.com/3ZVu5bUq
Creo que podrías necesitar una especie de plataforma de salto. Entonces, en primer lugar, no olvide agregar un colisionador en el bloque con la altura y el ancho que necesite. Luego puede verificar con OnTriggerEnter o OnCollisionEnter. Por ejemplo:-
Tengo un bloque llamado jumpPad. Agregué un colisionador de caja con ancho completo y altura mínima. No revisé IsTrigger, así que tengo que usar OnCollisionEnter. Ahora, lo que escribiré en el código dentro del script del reproductor es:
void OnCollisionEnter(Collision other) { if(other.gameObject.CompareTag("jumpPad") { GetComponent<Rigidbody>().AddForce(Vector3.Up * force); } }En este código, la fuerza ya está declarada en alguna parte del script. También asegúrese de darle una etiqueta al bloque si está usando CompareTag o .tag == "jumpPad". También necesita agregar un componente de cuerpo rígido al objeto del jugador.