Как из класса №1 изменить значение переменной, которая находится в классе №2
Есть класс с переменной speedRoad (оставил в классе только саму переменную):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RoadGenerator : MonoBehaviour
{
[Header("Speed of road")]
public float speedRoad = 10;
}
Так же есть второй класс (так же сокращенный):
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private CharacterController controller;
private Vector3 dir;
private int lineToMove = 1;
public float lineDistance = 10;
void Start()
{
controller = GetComponent<CharacterController>();
}
private void Update()
{
if (SwipeController.swipeRight)
{
if (lineToMove < 2)
{
lineToMove++;
}
}
if (SwipeController.swipeLeft)
{
if (lineToMove > 0)
{
lineToMove--;
}
}
if(SwipeController.swipeUp)
{
//Здесь нужно поменять значение speedRoad
}
Vector3 targetPosition = transform.position.z * transform.forward + transform.position.y * transform.up;
if (lineToMove == 0)
{
targetPosition += Vector3.left * lineDistance;
}
else if (lineToMove == 2){
targetPosition += Vector3.right * lineDistance;
}
transform.position = targetPosition;
}
}
Что хочу сделать? Мне нужно в методе Update класса PlayerController изменить переменную speedRoad, которая находится в классе RoadGenerator. Место, где я хочу это сделать, я отметил комментарием. Если что, скрипты прикреплены к разным объектам. Нашел такую же проблему и попробовал реализовать в соответствии с подсказкой:
Переменная естественно должна быть public, но у вас похоже так и есть. Скрипт с этой переменной висит на каком-то объекте? Теоретически, должен. Если висит, то получить переменную можно так: [Объект, на котором висит скрипт с переменной check].GetComponent().check
Но мне выдало ошибку и желаемого я не добился.
NullReferenceException: Object reference not set to an instance of an object
Стыдно такие вопросы задавать, но уже день гуглю, а понять реализацию подобного все равно не могу. Объясните пожалуйста, где мог накосячить, заранее спасибо.