Я делаю 2D-платформенную игру в Untiy для Android, и у меня есть некоторые проблемы с разделом кода, который у меня есть. Когда я прыгаю на платформу, я в первый раз могу приземлиться на платформу, но когда я снова прыгаю, я падаю через платформу. У меня это так, что коллайдер коробки неактивен, если игрок меньше высоты платформы и активен, когда игрок выше платформы. Я думал, что коллайдер коробки был маленьким, и он просто не пропускал коллайдер, поэтому я пробовал разные размеры коллайдеров, и я попытался настроить разные высоты, с которыми он активируется. Также, когда я устанавливаю высоту на низкий, игрок совершает двойной прыжок. Так что я делаю неправильно?Прыжки на платформу
public class Rock : MonoBehaviour
{
private BoxCollider2D platform;
private PlayerScript player;
public float height;
void Awake() {
player = GameObject.Find("Player").GetComponent<PlayerScript>();
platform = GetComponent<BoxCollider2D>();
}
void Start() {
platform.enabled = false;
}
// Update is called once per frame
void Update() {
if(player.transform.position.y > height){
platform.enabled = true;
} else if(player.transform.position.y < height){
platform.enabled = false;
}
}
}
Не могу видеть здесь ничего плохого. Что такое высота? это высота скалы или это положение скалы в мировом пространстве? Не можете ли вы просто сделать что-то вроде: 'player.transform.position.y> transform.position.y'? –
Высота - это положение скалы в мировом пространстве. – Papaskippy
когда я делаю 'player.transform.position.y> transform.position.y' игрок делает супер прыжок не то, что я хочу – Papaskippy