На сцене есть 2 обжекта CharacterAssetManager и SpawnPoint. К CharacterAssetManager прикрепляется скрипт CharacterAssets, в котором объявляется массив обжектов:
Синтаксис:
Используется csharp
public GameObject[] gamePrefabs;
далее в редакторе в данный обжект переносятся 3 префаба.
скрипт, прикрепленный к SpawnPoint должен обратиться к скрипту CharacterAssets, взять нужный префаб и инстанцировать его на сцену
обращение я сделал вот так:
Синтаксис:
Используется csharp
public CharacterAssets ca;
void Start ()
{
ca = gameObject.AddComponent<CharacterAssets>();
Debug.Log(ca.gamePrefabs);
}
void Start ()
{
ca = gameObject.AddComponent<CharacterAssets>();
Debug.Log(ca.gamePrefabs);
}
в итоге в дебаге null. если я правильно понимаю, то при соазднии нового экземпляра, скрипт нифига не знает о добавленных к обжекту префабах, поэтому и выдается null.
Для чего все это нужно: префабы хранятся в CharacterAssetManager и добавляются в SpawnPoint по определенному условию.
Вопрос: как сделать правильно, чтобы все работало. есть мысли превратить CharacterAssets в статичный класс (кстати это тоже не получилось).
При этом если скрипты переписать на JS, то все прекрасно работает:
в CharacterAssets:
Синтаксис:
Используется javascript
var characterMesh : GameObject[];
в срипте, прикрепленном к SpawnPoint:
Синтаксис:
Используется javascript
ca = GameObject.Find("CharacterAssetManager").GetComponent(CharacterAssets);