Задать вопрос
@Azamat74

Ошибка в unity (c#), что делать?

Добрый день.
Столкнулся с проблемой которую никак не могу решить
В unity создаю 2d игру (tds) и при компиляции данного кода
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour {

    public float offset = 0.0f;
    public float speed = 0.5f;

    private void Update()
    {
        Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position; // указывает на эту строку
        difference.Normalize();
        float rotation_z = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.Euler(0f, 0f, rotation_z + offset);

        float moveUp = Input.GetAxis("Vertical");
        float moveLeft = Input.GetAxis("Horizontal");
        GetComponent<Rigidbody2D>().velocity = new Vector2(moveLeft, moveUp) * speed;
    }
}


Выдает NullReferenceException: Object reference not set to an instance of an object
Немного о коде: в общем я получаю координаты курсора и в этом направлении поворачиваю персонажа, но при этом клавиши управления должны оставаться постоянными
Помогите!!!
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos Куратор тега Разработка игр
1) НалРеф - ошибка выполнения, не компиляции
2) В самой ошибке должна быть указана строчка. Какая?
3) GetComponent в Update - ужасное зло. Кстати скорее всего в этой строчке и ошибка - точно Rigidbody2d есть на объекте?
Ответ написан
@p4p
GetComponent только в Start как уже заметил GavriKos .
NullReferenceException: Object reference not set to an instance of an object - что то удается найти.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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