Зачем нужна GetInstanceID?

Программирование на Юнити.

Зачем нужна GetInstanceID?

Сообщение AndreyMust19 10 июн 2011, 22:54

Узнал что вместо объекта можно получить его ID. Делается это так:
Синтаксис:
Используется csharp
int номер = GameObject.GetInstanceID();

Только вот с полученным int сделать ничего нельзя. Чтобы получить из этого номера снова объект, нужно подключать модуль UnityEditor (для C#) и вызывать:
Синтаксис:
Используется csharp
EditorUtility.InstanceIDToObject(номер);

Но в результате возвращается не GameObject, а Object. С ним ничего полезного сделать нельзя:
http://unity3d.com/support/documentatio ... bject.html

Какая тогда польза от определения ID объекта?
Хотел выделить массив типа GameObject, но потом решил выделить массив для номеров объектов (int). Похоже, придется все-таки выделять массив GameObject'ов.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Зачем нужна GetInstanceID?

Сообщение Neodrop 10 июн 2011, 23:29

Нету пользы? Зачем использовать? И о чём эта тема вообще?
Кому то сферы в игре не нужны. Или кубики. Но никто об этом не пишет. :ymsmug:
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Зачем нужна GetInstanceID?

Сообщение seaman 10 июн 2011, 23:31

Любой объект типа Object можно скастовать в Ваш тип. Если это возможно, то получите объект нужного типа
Синтаксис:
Используется csharp
GameObject gp = (GameObject) EditorUtility.InstanceIDToObject(номер);
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Зачем нужна GetInstanceID?

Сообщение AndreyMust19 10 июн 2011, 23:54

Ага, то есть приведением типа. Значит есть смысл хранить массив не GameObject'ов а только их ID. Какой размер у объекта типа GameObject? Макрос sizeof его не говорит.
Если это возможно

Т. е. в некоторых случаех невозможно? Как это узнать?
Только вот нужно таскать с собой модуль UnityEditor ради экономии небольшого объема памяти?
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Зачем нужна GetInstanceID?

Сообщение Lestar 11 июн 2011, 12:36

Есть смысл хранить массив трансформов,чтобы через костыли не читать потом с них данные.Экономия памяти будет мизером,по сравнению с неудобствами пользования.
Lestar
UNIт
 
Сообщения: 114
Зарегистрирован: 05 июн 2011, 02:36

Re: Зачем нужна GetInstanceID?

Сообщение Neodrop 11 июн 2011, 12:54

Справка : Классы UnityEditor нельзя использовать в рантайме. :-B
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15