Я вот только не понял в 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");
}
}
}