Показать сообщение отдельно
Старый 10.01.2012, 23:10   #185
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Aikon, не совсем правильно ты делаешь. Для этого используются интерфейсы.
И если у тебя есть класс, который уже наследуется от друга твоего класса, то твой способ не сработает.

Я сделал интерфейс
public interface BulletReceiver {
	void Attacked(Vector3 point);
}
Могу добавить этот интерфейс любому скрипту.
А при выстреле делаю так:
				MonoBehaviour[] components = hit.collider.gameObject.GetComponents<MonoBehaviour>();
				foreach( MonoBehaviour component in components ) {
					if( component is BulletReceiver ) {
						( ( BulletReceiver ) component ).Attacked( hit.point );
					}
				}
GetComponents ищет все что унаследовано от Component, поэтому мой интерфейс и не искало. Вот только без поиска нельзя получить список всех скриптов?
Я вот только не понял в C# и родительские классы и интерфейсы пишутся через запятую после двоеточия? В java для наследования используется extends, а для интерфейсов implements.
(Offline)
 
Ответить с цитированием