@Butilyaka228

Как сделать ограничение на прыжок?

код я в итоге написал, а что и куда нужно добавить чтобы ограничить прыжок я не знаю
помогите пожалуйста

using UnityEngine;
using System.Collections;

public class MoveByDisplay : MonoBehaviour
{
public Rigidbody2D rb2d;
public float playerSpeed;
public float jumpPower;
public int directionInput;
public bool groundCheck;
public bool facingRight = true;

void Start()
{
rb2d = GetComponent();
}

void Update()
{
if ((directionInput < 0) && (facingRight))
{
Flip();
}

if ((directionInput > 0) && (!facingRight))
{
Flip();
}
groundCheck = true;
}

void FixedUpdate()
{
rb2d.velocity = new Vector2(playerSpeed * directionInput, rb2d.velocity.y);
}

public void Move(int InputAxis)
{

directionInput = InputAxis;
}

void Flip()
{
facingRight = !facingRight;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}

}
  • Вопрос задан
  • 311 просмотров
Решения вопроса 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Чтобы сделать ограничение на прыжки, они сначала вообще должны быть. У вас есть доступный извне метод Move(), создайте аналогичный Jump(). Что-то типо такого:

public void Jump() {
	rb2d.AddForce(Vector2.up * jumpPower);
}


Говоря об ограничении, полагаю, вы подразумеваете количество прыжков? Если да, вам нужно хранить число возможных и совершённых прыжков в качестве полей класса, увеличивать последнее при прыжке и перед попыткой его совершения сравнивать их.

public int jumpsLimit;
public int jumpsDone;
public void Jump() {
	if (jumpsDone < jumpsLimit) {
		rb2d.AddForce(Vector2.up * jumpPower);
		jumpsDone++;
	}
}


Осталось лишь в момент столкновения с землёй и всем, от чего можно отпрыгивать, сбрасывать jumpsDone до 0.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Butilyaka228 Автор вопроса
Мимокрокодил Не сработало. Вроде как все ошибки исправил :(
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы