Я создал объект PlayerData
для хранения всех переменных для плеера, которые мне понадобятся в других скриптах. У меня проблема с аксессором, возвращающим значение bool, и я не знаю, почему он дает мне эту ошибку. Это не даст мне ошибок при установке bool, а только вернет его, и я не понимаю, почему объект был объявлен в основном классе. Ошибка:
NullReferenceException: ссылка на объект не установлена на экземпляр
объект.
ГЛАВНЫЙ КЛАСС
public class PersistentData : MonoBehaviour {
public static PersistentData persistentData;
public static PlayerData playerData;
void Awake ()
{
if (persistentData == null)
{
DontDestroyOnLoad(gameObject);
persistentData = this;
playerData = gameObject.AddComponent<PlayerData>();
}
else if (persistentData != this)
{
Destroy (gameObject);
}
}
}
КЛАСС ДАННЫХ ИГРОКА
public class PlayerData : MonoBehaviour {
private bool isSliding;
public bool IsSliding
{
get
{
return isSliding;
}
set
{
if (value == true || value == false)
{
isSliding = value;
}
else
{
isSliding = false;
}
}
}
}
КЛАСС, КОТОРЫЙ ВЫЗЫВАЕТ ОБЪЕКТ
public class ActionClass : MonoBehaviour {
void LateUpdate()
{
if (PersistentData.playerData.IsSliding)
{
//CODE SHOULD EXECUTE BUT GIVES NULLREFERENCE ERROR
}
}
}