Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите исправить ошибку в c#

Роман Корипанов Ученик (114), на голосовании 3 месяца назад
public float speed;
public float JumpForce;
private float MoveInput;

private bool facingRight = true;
private Rigidbody2D rb;

private bool isGrounded;
public Transform feetPos;
public float CheckRadius;
public LayerMask whatIsGround;

private Animator anim;

private void Start()
{
rb = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
}

private void FixedUpdate()
{
MoveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(MoveInput * speed, rb.velocity.y);
if (facingRight == false && MoveInput > 0)
{
Flip();
}
else if (facingRight == true && MoveInput < 0)
{
Flip();
}

if(MoveInput == 0)
{
anim.SetBool("isRunning", false);
}
else
{
anim.SetBool("isRunning", true);
}
}

private void Update()
{
isGrounded = Physics2D.OverlapCircle(feetPos.position, CheckRadius, whatIsGround);

if (isGrounded == true && Input.GetKeyDown( KeyCode.Space ))
{
rb.velocity = Vector2.up * JumpForce;
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 Scaler = transform.localScale;
Scaler.x *= -1;
transform.localScale = Scaler;
}

}
Голосование за лучший ответ
Tails Просветленный (37612) 4 месяца назад
Это код на C# для игры, которая, вероятно, включает в себя персонажа, совершающего прыжки и изменяющего свое направление. Он использует Rigidbody2D компонент двигателя физики Unity, чтобы управлять скоростью и положением персонажа.

Первая строка "isGrounded == true" должна быть заменена на "isGrounded" без == true, так как это означает просто тест на истину, а не на сравнение.
Инспектор Жопидý Оракул (86401) 4 месяца назад
Ошибки:
1. Неправильное использование модификатора доступа private (строки 16, 22 и 45). Ошибки говорят о том, что вы пытаетесь использовать модификатор private для переменных speed, JumpForce и MoveInput. Локальные переменные (объявленные внутри методов) не могут иметь модификаторов доступа вроде private или public.
2. Отсутствующая закрывающая скобка (строка 62). Ошибка [22:28:25] Assets\script\playercontroler.cs(62,1): error CS1022: Type or namespace definition, or end-of-file expected указывает на то, что в конце класса отсутствует закрывающая фигурная скобка }.
Исправления:
1. Строки 16, 22: Скорее всего, переменные speed и JumpForce должны быть доступны из других скриптов, поэтому удалите модификатор private:
C#
public float speed;
public float JumpForce;
2. Строка 45: Переменная MoveInput используется внутри метода FixedUpdate, поэтому объявлять ее как public не обязательно. Если она нужна в других методах, сделайте ее public. Иначе оставьте private.
3. Строка 62: Добавьте закрывающую фигурную скобку } в конце определения класса:
C#
// ... ваш код ...
} // Добавьте эту закрывающую скобку
Дополнительные замечания:
• Судя по всему, этот код относится к скрипту управления игроком в проекте Unity.
• После внесения изменений обязательно сохраните код, чтобы они вступили в силу.
Роман КорипановУченик (114) 4 месяца назад
Спасибо
Похожие вопросы