Показать сообщение отдельно
Старый 11.01.2012, 00:10   #186
Aikon
ПроЭктировщик
 
Регистрация: 12.02.2011
Сообщений: 131
Написано 23 полезных сообщений
(для 52 пользователей)
Ответ: Вопросы от новичка

Я вот только не понял в C# и родительские классы и интерфейсы пишутся через запятую после двоеточия?
Как известно множественное наследование в таких языках как Java и С# отсутствует, т.к. является потенциальным источником ошибок. Вместо него разработчику предлагается использовать механизм интерфейсов.
Т.е. сначала пишем один базовый класс, если надо, потом через запятую далее необходимые интерфейсы сколько надо.

С классом да, налажал, забыл глянуть что есть интерфейсы. Переделал. У меня все проходит. Вот код

Интерфейс
public interface ITest {
	void echo(string text);
}
Компонента CTest, которая реализует интерфейс ITest.
Чтобы она могла быть найдена через GetComponent я так же отнаследовал ее от базового класса MonoBehaviour
using UnityEngine;
using System.Collections;

public class CTest : MonoBehaviour, ITest  {

	public void echo(string text)
	{
		Debug.Log(text);
	}
}
В пустом проекте на камеру повесил компонент CTest и общий компонент для теста
using UnityEngine;
using System.Collections;

public class Common : MonoBehaviour {
	void Start () {
		// Мне вот этот кривой перебор не нравится. Даже если для каждого объекта результат в член класса запихнуть.	
		foreach (MonoBehaviour mb in this.GetComponents<MonoBehaviour>())
		{
			if (mb is ITest)
				((ITest)mb).echo("OK");
		}
	}
}
(Offline)
 
Ответить с цитированием