Есть класс newgen с переменными bool, перекреплен к объектам, а эти объекты лежат в массиве другого класса section. Как правильно обратиться к переменным up, down, left, right, starta в классе section ?
public class newgen : MonoBehaviour {
public bool up, down, left, right, starta;
}
public class section : MonoBehaviour {
public GameObject [] WALLS;
void Start(){
gen ();
}
void gen (){
for (int index = 0; index < WALLS.Length; index++){
newgen chose = new newgen ();
chose.starta = chose;
Debug.Log(chose);
if (chose == true){
Instantiate(WALLS [0], transform.position, transform.rotation);
break;
}
}
}
}
Debug.Log(chose); показывает null, а так же предупреждение для этой строки newgen chose = new newgen ();
You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all
Как правильно обратиться к переменным up, down, left, right, starta в классе section ?
(неправильный) Сделать класс newgen статическим и отвязать наследование от MonoBehaviour и тогда обращатся к нему с любого места любого класса напрямую: newgen.up
(правильный) Оставить класс динамическим, но передавать инстанс даного класса во все обьекты которым нужно иметь доступ к даному обьекту. И тогда обращатся к инстансу класса:
newgenInstance.up
Сборка персонального компьютера от Artline: умный выбор для современных пользователей