Как реализовать удаление компоненты?

Как реализовать удаление компоненты?

Сообщение fis 15 июн 2011, 21:21

Собственно, мне нужно на время удалять Character Controller компоненту у камеры. Есть такая возможность?
fis
UNITрон
 
Сообщения: 212
Зарегистрирован: 31 июл 2009, 11:52
Откуда: Львов
  • Сайт
  • ICQ

Re: Как реализовать удаление компоненты?

Сообщение alexz 15 июн 2011, 21:34

Если на время, то у MonoBehaviour и его потомков есть свойство enabled, с помощью которого можно включить или выключить компонент.
Если на совсем, то есть метод Destroy(...), который уничтожает всё, что ему укажешь.
alexz
UNITрон
 
Сообщения: 270
Зарегистрирован: 16 ноя 2010, 23:37

Re: Как реализовать удаление компоненты?

Сообщение DanielDem 16 июн 2011, 09:38

Note that there is no RemoveComponent(), to remove a component, use Object.Destroy. - это из справки, компонент нельзя удалить
Да прибудет с Вами сила...
Аватара пользователя
DanielDem
UNITрон
 
Сообщения: 174
Зарегистрирован: 07 янв 2010, 13:27
Откуда: Россия
  • ICQ

Re: Как реализовать удаление компоненты?

Сообщение Alcatraz 16 июн 2011, 09:42

В нужной части кода, создавай локальной переменной:

Синтаксис:
Используется javascript
var comp = GameObject.Find("нужный объект с компонентом").GetComponent("название компонента");
comp.enabled = false;
 
Unity3D Game Developer
Аватара пользователя
Alcatraz
UNITрон
 
Сообщения: 236
Зарегистрирован: 07 июн 2011, 09:12
Откуда: Москва
  • Сайт
  • ICQ

Re: Как реализовать удаление компоненты?

Сообщение gnoblin 16 июн 2011, 11:16

DanielDem писал(а):Note that there is no RemoveComponent(), to remove a component, use Object.Destroy. - это из справки, компонент нельзя удалить


Что это вообще? :-\
Как написано выше, компонент удаляется через дестрой.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Как реализовать удаление компоненты?

Сообщение Neodrop 16 июн 2011, 11:35

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

Re: Как реализовать удаление компоненты?

Сообщение fis 16 июн 2011, 11:42

О, только что сам допёр почти до такогоже решения :)
У вас нет доступа для просмотра вложений в этом сообщении.
fis
UNITрон
 
Сообщения: 212
Зарегистрирован: 31 июл 2009, 11:52
Откуда: Львов
  • Сайт
  • ICQ

Re: Как реализовать удаление компоненты?

Сообщение Neodrop 16 июн 2011, 11:52

Очень странное решение. Начерта это делать в Update ?
Это 100500 ненужных операций.
Удаление - это Событийное действие. То есть, оно происходит по какому то событию и только раз за программу (ну к примеру). А если вы крутите это в Update, то в каждом кадре выполняете ненужную операцию поиска компонента.
Убрать немедленно ! :((

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

Re: Как реализовать удаление компоненты?

Сообщение fis 16 июн 2011, 13:54

Да это был просто поиск решения, потому использовал ближайший активатор. А вообще я думал через Awake или Start сделать. FSM надо будет попробовать. Я уже давно на него смотрю - мне еще в плеймейкере понравилась идея.
fis
UNITрон
 
Сообщения: 212
Зарегистрирован: 31 июл 2009, 11:52
Откуда: Львов
  • Сайт
  • ICQ

Re: Как реализовать удаление компоненты?

Сообщение Neodrop 16 июн 2011, 15:11

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


Вернуться в Уроки

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

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