Size: a a a

2021 January 23

S

Shotty in unity3d.ru
Shotty
Получаю object в debug log, а как получить информацию объекта? его свойства и тд
Debug.Log(hit);
источник

ЕИ

Евгений Иващенко... in unity3d.ru
Rulsan Gerasimov
1. Скрипт 1 bullet
2. Скрипт 2 Score
При попадании Скрипта 1 в какой то обьект, я хочу обратиться к скрипту 2, чтобы поменять там значение одной переменной.
Но так как у меня скрипт 1 является префабом, то я не могу указать ссылку на скрипт 2.

Надеюсь смог объяснить )
Во-первых, ты путаешь понятия скриптов и объектов (GameObject). У тебя не скрипт попадает в скрипт, а GameObject (сокращённо ГО) попадает в ГО.
Во-вторых, ты путаешь понятие префаба и ГО. Префаб - это как бы план, схема, шаблон, чертёж какого-то ГО. По префабу создаются ГО-ты.
В-третьих, когда два ГО друг с другом сталкиваются, то это столкновение можно обработать с помощью автоматически вызываемого при столкновении метода OnCollisionEnter(). Этод метод вызывается внутри одного из ГО. Внутри этого метода можно получить ссылка на объект с которым столкнулся объект, внутри которого находится этот метод. А там уже можно и к искомой функции обратиться.
источник

ЕИ

Евгений Иващенко... in unity3d.ru
Shotty
Получаю object в debug log, а как получить информацию объекта? его свойства и тд
источник

S

Shotty in unity3d.ru
а я могу именно в консоли вывести все его свойста объекта?
источник

S

Shotty in unity3d.ru
переменные объекта
источник

ЕИ

Евгений Иващенко... in unity3d.ru
Shotty
а я могу именно в консоли вывести все его свойста объекта?
Можешь. Просто берешь каждое из перечисленных в классе свойств и выводишь.
источник

S

Shotty in unity3d.ru
Евгений Иващенко
Можешь. Просто берешь каждое из перечисленных в классе свойств и выводишь.
а именно список всех свойств в объекте я могу получить?
источник

ЕИ

Евгений Иващенко... in unity3d.ru
Shotty
а именно список всех свойств в объекте я могу получить?
Можешь. Только интересно, зачем?
источник

S

Shotty in unity3d.ru
Евгений Иващенко
Можешь. Только интересно, зачем?
а как я могу это сделать?
источник

S

Shotty in unity3d.ru
чтобы я сразу в дебаге смог отследить значение всех свойств в объекте
источник

RG

Rulsan Gerasimov in unity3d.ru
Евгений Иващенко
Во-первых, ты путаешь понятия скриптов и объектов (GameObject). У тебя не скрипт попадает в скрипт, а GameObject (сокращённо ГО) попадает в ГО.
Во-вторых, ты путаешь понятие префаба и ГО. Префаб - это как бы план, схема, шаблон, чертёж какого-то ГО. По префабу создаются ГО-ты.
В-третьих, когда два ГО друг с другом сталкиваются, то это столкновение можно обработать с помощью автоматически вызываемого при столкновении метода OnCollisionEnter(). Этод метод вызывается внутри одного из ГО. Внутри этого метода можно получить ссылка на объект с которым столкнулся объект, внутри которого находится этот метод. А там уже можно и к искомой функции обратиться.
Все верно, я через коллизию и определяю в какой объект попала пуля, но почему то обращаться в другой скрипт не получается
источник

S

SG137 in unity3d.ru
Rulsan Gerasimov
Все верно, я через коллизию и определяю в какой объект попала пуля, но почему то обращаться в другой скрипт не получается
collision. перед геткомпонент
источник

ЕИ

Евгений Иващенко... in unity3d.ru
Shotty
чтобы я сразу в дебаге смог отследить значение всех свойств в объекте
Прикол в том, что все свойства этого объекта - это тоже объекты. И выводя их, ты просто выведешь только типы этих объектов.
источник

RG

Rulsan Gerasimov in unity3d.ru
SG137
collision. перед геткомпонент
источник

ЕИ

Евгений Иващенко... in unity3d.ru
Rulsan Gerasimov
Все верно, я через коллизию и определяю в какой объект попала пуля, но почему то обращаться в другой скрипт не получается
Там не нужен геткомпонент. У тебя есть объект, обращайся напрямую к функции в этом объекте. Только сначала этот объект нужно закешировать в локальную переменную с приведением типа.
источник

S

SG137 in unity3d.ru
трансформ еще
источник

RG

Rulsan Gerasimov in unity3d.ru
SG137
трансформ еще
Спасибо, а такой процесс не "дорого" для производительности ?
источник

S

SG137 in unity3d.ru
Rulsan Gerasimov
Спасибо, а такой процесс не "дорого" для производительности ?
если не 1000 раз в секунду, нет
источник

ЕИ

Евгений Иващенко... in unity3d.ru
Евгений Иващенко
Там не нужен геткомпонент. У тебя есть объект, обращайся напрямую к функции в этом объекте. Только сначала этот объект нужно закешировать в локальную переменную с приведением типа.
Хотя, вообще-то кеширование и подразумевает геткомпонент, да). Сначала, через него сохраняешь объект в переменную. А потом уже вызываешь функцию.
Если кешировать - не дорого.
источник

RG

Rulsan Gerasimov in unity3d.ru
SG137
если не 1000 раз в секунду, нет
все отлично, только вот че то ошибку пишет)
источник