@dreykk

Где ошибка в коде?

Здравствуйте!Начал обучение по Unity3D с базовых уроков по созданию игры, в примере к уроку выложен данный код который должен заставить спрайт двигаться , но программа его не принимает ссылаешь на неверный скрипт...долго думал как исправить, но т.к. новичок в этом деле , ничего не смог исправить...помогите найти ошибку.ссылка на урок www.websketches.ru/blog/2d-igra-na-unity-podrobnoy...

using UnityEngine;

/// <summary>
/// Контроллер и поведение игрока
/// </summary>
public class PlayerScript : MonoBehaviour
{
  /// <summary>
  /// 1 - скорость движения
  /// </summary>
  public Vector2 speed = new Vector2(50, 50);

  // 2 - направление движения
  private Vector2 movement;

  void Update()
  {
    // 3 -  извлечь информацию оси
    float inputX = Input.GetAxis("Horizontal");
    float inputY = Input.GetAxis("Vertical");

    // 4 - движение в каждом направлении
    movement = new Vector2(
      speed.x * inputX,
      speed.y * inputY);

  }

  void FixedUpdate()
  {
    // 5 - перемещение игрового объекта
    rigidbody2D.velocity = movement;
  }
}
  • Вопрос задан
  • 688 просмотров
Решения вопроса 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
Если у вас есть ошибка, и хотите помощи с ошибкой, то указывайте, какая ошибка показывается.

[TelepatMode On]
Думаю, код урока старый, а версия Юнити новая. В новой версии Юнити отсутствуют свойства transform, rigidbody2d и некоторые другие, их убрали для оптимизации. Создайте их сами и установите их, например, так:
public class PlayerScript : MonoBehaviour
{
    private Rigidbody2d _rigidbody2d;

    private void Start()
    {
        _rigidbody2d = GetComponent<Rigidbody2d>();
    }

    // остальной код
}

и дальше везде писать _rigidbody2d вместо rigidbody2d.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы