@KuzyaFs

Не понимаю в чём ошибка в коде, как исправить?

Unity
Выдаёт ошибку (CS1003 26,49)
Вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerContorller : MonoBehaviour
{
    public float speed = 10;
    public Animator animator;
    private Rigidbody2D rb;
    private Vector2 direction;

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

    void FixedUpdate()
    {
        direction.x = Input.GetAxisRaw("Horizontal");
        direction.y = Input.GetAxisRaw("Vertical");

        animator.SetFloat("Horizontal", direction.x);
        animator.SetFloat("Vertical", direction.y);
        animator.SetFloat("Speed", direction.sqrMagnitude);

        rb.velocity = new Vector2(direction * x direction * y);
    }
}
  • Вопрос задан
  • 127 просмотров
Решения вопроса 3
GavriKos
@GavriKos
1. Начните не с юнити а с сишарпа
2. Используйте IDE, а не какое то говно
3. Прочитайте ошибку, найдите строчку в которой ошибка
4. Подумайте что в этой строчке не так.

Вам же прям вот указана строка. Прям вот напрямую. И любая IDE это подчеркнет красным.
Ответ написан
Adler_lug
@Adler_lug
Подозреваю, что тут:
rb.velocity = new Vector2(direction * x , direction * y);
запятой не хватает.

P.S. Не с Unity нужно начинать, а с основ C# и читать, что вам пишут, что бы не возникало глупых вопросов типа этого...
Ответ написан
Очевидно-пропустил запятую на указанной строке
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@sewar
Ошибка CS1003 в Unity указывает на то, что присутствует некорректный синтаксис в коде. В частности, в данном коде ошибка происходит в строке с командой rb.velocity. Синтаксически правильно написать:

rb.velocity = direction * speed;
Также в данном коде используется неправильное название класса PlayerContorller, которое должно быть PlayerController. Для исправления этой ошибки следует изменить название класса на PlayerController во всех файлах, где он используется. Правильный код мог бы выглядеть так:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float speed = 10;
    public Animator animator;
    private Rigidbody2D rb;
    private Vector2 direction;

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

    void FixedUpdate()
    {
        direction.x = Input.GetAxisRaw("Horizontal");
        direction.y = Input.GetAxisRaw("Vertical");

        animator.SetFloat("Horizontal", direction.x);
        animator.SetFloat("Vertical", direction.y);
        animator.SetFloat("Speed", direction.sqrMagnitude);

        rb.velocity = direction * speed;
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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