Как динамически обновить префаб Unity? - PullRequest
0 голосов
/ 14 января 2020

1) Как узнать высоту сборного дома? В моем коде ниже я хотел бы сделать значение 232 динамическим c, чтобы я мог безопасно обновлять свой префаб в будущем.

2) Как я могу получить ссылку на объект Text в моем визуализированном сборный?

Player[] players = JsonHelper.getJsonArray<Player>(www.downloadHandler.text);

float nextY = 0;

for (int i = 0; i < players.Length; i++)
{
    Player player = players[i];

    Vector3 pos = new Vector3(0, -nextY, spawnPoint.position.z);

    GameObject spawnedItem = Instantiate(listViewItem, pos, spawnPoint.rotation);

    nextY += 232;

    // spawnedItem.?  <- need to put a Player name into a Text in here

    spawnedItem.transform.SetParent(spawnPoint, false);
}

1 Ответ

1 голос
/ 14 января 2020

Вы можете создать c# скрипт, который будет вашим интерфейсом между вашим префабом и другими компонентами, что-то вроде этого:

public class MyCustomPrefab : MonoBehaviour
{

    [SerializedField] private float height;
    [SerializedField] private TextMeshProUGUI text;

    // other variable, methods, anything you want

}

Затем вместо того, чтобы создавать его как GameObject, используйте ваш Type:

MyCustomPrefab prefab = Instantiate(.....);

// Then you can access/use any variable/method that you want
nextY += prefab.height;
prefab.text = .....;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...