Страница 1 из 1

как скопировать все значения GetComponent<Script> в другой G

СообщениеДобавлено: 07 сен 2018, 19:13
Dio5555
Возможно где то это есть, но когда решил воспользоваться поисковиком, то вылезла ошибка.
Общая ошибка
SQL ERROR [ mysql4 ]
The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay [1104]

Перейдём к делу. Мне нужно скопировать все значение из одного компонента в другой, не плодя кучу строк, под типо этого:

(c#)
transform.GetComponent<Item>().FA1 = 55;
transform.GetComponent<Item>().FA2 = 37;
transform.GetComponent<Item>().FA3 = 55;

у меня есть 1 префаб с дефолт значением

хотелось что бы выглядело как-то так:
(c#)
transform.GetComponent<Item>() = _default.transform.GetComponent<Item>()

Сорян за боян =) и Спасибо за помощь

Re: как скопировать все значения GetComponent<Script> в другой G

СообщениеДобавлено: 07 сен 2018, 19:24
Anonymyx
Если вам именно скопировать нужно, то можно создать отдельный метод для копирования значений через рефлексию.
Вот как тут например: https://answers.unity.com/questions/458 ... ntime.html

Re: как скопировать все значения GetComponent<Script> в другой G

СообщениеДобавлено: 07 сен 2018, 19:35
Dio5555
Ну это похоже, но опять-же, это много писанины, не понимаю почему, вот такой код не работает, хотя 2 скрипта одинаковы в значениях.
То есть нельзя просто, взять и присвоить значение одного компонента под тип этого: GetComponent<Item>() = GetComponent<Item>(), а нужно написать "кучу" кода, чтобы всё заработало.

Re: как скопировать все значения GetComponent<Script> в другой G

СообщениеДобавлено: 07 сен 2018, 19:45
Anonymyx
GetComponent<Item>() = GetComponent<Item>()

Item item = go1.GetComponent<Item>();
item = go2.GetComponent<Item>();

Так?
Так как Item - класс, то будет присвоена только ссылка.

Re: как скопировать все значения GetComponent<Script> в другой G

СообщениеДобавлено: 07 сен 2018, 19:57
Dio5555
Спасибо! Чёт смотрю в книгу и нефига не вижу =)))