Как Unity Запоминает конкретные игровые объекты

#unity3d

Вопрос:

Привет, мне интересно, как unity может запомнить конкретное GameObjects , которое имеет одно и то же имя. Например, если мне Instantiate нравится тысяча кубов с именем asme, cube(Clone) и если я прошу указать конкретное Vector3 местоположение куба, он дает мне Vector3 правильный ответ. Так как же он запоминает куб, как при использовании UUID ?? Я просто хотел знать, чтобы я мог повысить свою производительность

Спасибо 🙂

Ответ №1:

У каждого объекта есть идентификатор экземпляра, и идентификатор экземпляра объекта всегда гарантированно будет уникальным. Пример

 public class ExampleScript : MonoBehaviour
{
    // Create 10 game objects, which will have random Instance IDs
    void Awake()
    {
        for (int i = 0; i < 10; i  )
        {
            GameObject g = new GameObject("abc"   i.ToString("D3"));
        }
    }

    // Find all the game objects and display their Instance IDs
    void Start()
    {
        Object[] allObjects = Object.FindObjectsOfType<GameObject>();

        foreach (GameObject go in allObjects)
        {
            Debug.Log(go   " is an active object "   go.GetInstanceID());
        }
    }
}