Четверг, 20 Сентября 2018, 01:27

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Обратится к конкретному экземпляру префаба
Обратится к конкретному экземпляру префаба
ZekkinДата: Четверг, 21 Апреля 2016, 23:30 | Сообщение # 1
частый гость
Сейчас нет на сайте
Доброе время суток.
Как можно обратится к конкретному экземпляру префаб`а?
Допустим, у меня есть три игрока, созданных из одного префаба. На каждом префабе висит скрипт инвентаря, и при подборе какой-либо вещи скрипт подбора обращается к скрипту инвентаря, соответственно добавляя вещь в него. Поиск игрока к которому нужно обратиться проводился с помощью
Код
Player = GameObject.FindGameObjectWithTag ("Player");

Столкнулся с проблемой - возможность что-то подобрать получает только первый появившийся игрок.

Пробовал сделать так: Обращение идет к игроку который подошел к вещи, но если к вещи подходят 2+ игрока - работает некорректно, какой-то костыль.

Собственно из этого скрипта я и вытаскивал экземпляр для обращения.
Есть ли у экземпляра префаба уникальный ID или что-то вроде? Что-бы можно было обратиться к конкретному инвентарю конкретного игрока? Все что приходит в голову выглядит как костыль, в принципе, можно и так, но если есть более элегантный способ, то почему бы и нет?
Спасибо.


Сообщение отредактировал Zekkin - Четверг, 21 Апреля 2016, 23:31
MANMANAДата: Пятница, 22 Апреля 2016, 02:43 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Цитата Zekkin ()
Есть ли у экземпляра префаба уникальный ID или что-то вроде?

Object.GetInstanceID

Если включить режим отладки (Debug - в верхней части рисунка), то можно увидеть, что ID есть не только у Объекта, но и у каждого компонента этого объекта.



Добавлено (22 апреля 2016, 02:43)
---------------------------------------------
p.s. чтобы вывести в консоль ID объекта, на котором висит скрипт, достаточно в этом скрипте написать
Код
print(GetInstanceID());


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею


Сообщение отредактировал MANMANA - Пятница, 22 Апреля 2016, 02:44
ZekkinДата: Пятница, 22 Апреля 2016, 16:19 | Сообщение # 3
частый гость
Сейчас нет на сайте
Как буду дома попробую выдавать каждому игроку PlayerID, и при приближении к предмету через условие проверки ID и префаба игрока открывать сундук. Теоретически должно работать.

Добавлено (22 апреля 2016, 12:09)
---------------------------------------------
Нечто вроде
Если (!(CurID == PlayerID))
То присваиваю префабу к которому обращаюсь объект коллизии, CurID присвою ID объекта коллизии, иначе не делаю ничего.

Добавлено (22 апреля 2016, 16:19)
---------------------------------------------
Добился возможности для всех игроков лутать что-то из сундука, однако теперь лут в сундуке у всех разный biggrin Буду пробовать синхронизировать

Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Обратится к конкретному экземпляру префаба
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2018 Рейтинг