@Jekol

Ошибка при создании джойстика.NullReferenceException: Object reference not set to an instance of an object. Как исправить?

Скрипт движения джойстика. 2 объекта центральный(движущийся)(joystick) и статичный (joystickBG) NullReferenceException: Object reference not set to an instance of an object.
spoiler
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class MobileController : MonoBehaviour,IDragHandler,IPointerUpHandler,IPointerDownHandler 
{

	private Image joystickBG;
	[SerializeField]
	private Image joystick;
	private Vector2 inputVector;

	private void start ()
	{
		joystickBG = GetComponent<Image>();
		joystick = transform.GetChild(0).GetComponent<Image>();
	}

	public virtual void OnPointerDown(PointerEventData ped)
	{
		OnDrag (ped);
	}

	public virtual void OnPointerUp(PointerEventData ped)
	{
		print ("PointerUP");
		inputVector = Vector2.zero;
		joystick.rectTransform.anchoredPosition = Vector2.zero;
	}

	public virtual void OnDrag(PointerEventData ped)
	{
		Vector2 pos;
		if (RectTransformUtility.ScreenPointToLocalPointInRectangle (joystickBG.rectTransform, ped.position, ped.pressEventCamera, out pos))
		{
			pos.x = (pos.x / joystickBG.rectTransform.sizeDelta.x);
			pos.y = (pos.y / joystickBG.rectTransform.sizeDelta.y);

			inputVector = new Vector2 (pos.x * 2 - 1, pos.y * 2 - 1);
			inputVector = (inputVector.magnitude > 1.0f) ? inputVector.normalized : inputVector;

			joystick.rectTransform.anchoredPosition = new Vector2(inputVector.x * (joystickBG.rectTransform.sizeDelta.x / 2), inputVector.y * (joystickBG.rectTransform.sizeDelta.y / 2));
		}
	}
}
  • Вопрос задан
  • 210 просмотров
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
В мануале есть даже специальная статья про это исключение. Начать стоит с двойного клика по ошибке в консоли, у вас должен будет открыться редактор с выделенной строчкой, в которой случилась ошибка. В большинстве случаев этого достаточно, и можно сразу понять какой именно объект оказался null и почему. Если сразу не разобраться, то либо подключаетесь дебаггером и смотрите, что там не работает, либо обвешиваете всё дебагами и читаете консоль.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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