Передаче полей в другой класс
Дело в С# Unity. Нужно передать данные поля в другой класс, но дело в том что при передаче через объекты, через методы возвращающие значения, через ссылочные типы, и через свойства, поле в которую была записана другое поле из исходного класса - пустует. Создаются поля в исходном классе пустыми, а в методе Start(), его значения перезаписывается, возможно дело в том что, он почему-то берет поле пока она была пустым, но не пойму почему. В исходном классе при проверке значений в полях, всё работает правильно.
Исходный класс:
public int FoodRate;
internal GameObject[] Foods = new GameObject[] { };
void Start()
{
Array.Resize(ref Foods, Foods.Length + FoodRate);
for (int i = 0; i < FoodRate; i++)
{
Foods[i] = Instantiate(Food, new Vector3(UnityEngine.Random.Range(transform.position.x - SegmentLengthX(), transform.position.x + SegmentLengthX()), transform.position.y + 0.2f, UnityEngine.Random.Range(transform.position.z + SegmentLengthZ(), transform.position.z - SegmentLengthZ())), Quaternion.identity);
}
}
Другой класс:
private static RandomFoodSpawn RFS = new RandomFoodSpawn();
private int _FoodRate = RFS.FoodRate;
private GameObject[] _Foods = RFS.Foods;
void Start()
{
Debug.Log(_FoodRate);
}
Ответы (1 шт):
Автор решения: Dead Lord
→ Ссылка
Как вариант то, что нужно обработать в первую очередь отправить в Awake(), а остальное оставить в Start()