public interface IControlableByLogic
{
int parameter{get; set;}
}
public class User: MonoBehaviour, IControlableByLogic
{
public int myControlableParameter
public parameter
{
get{ return myControlableParameter; }
set{ myControlableParameter = value;}
}
}
public class AI: MonoBehaviour, IControlableByLogic
{
public int myControlableParameterByAI
public parameter
{
get{ return myControlableParameterByAI; }
set{ myControlableParameterByAI = value;}
}
}
public class GameLogic: MonoBehaviour
{
public void MoveUnit(IControlableByLogic unit)
{
unit.parameter += 1;
}
}
Собственно вместо интерфейсов можно использовать наследование - унаследовать базовый класc Unit от MonoBehaviour, дать ему базовые параметры, которыми управляет логика. А от него унаследовать классы User и AI которые будут использовать эти параметры. И функция MoveUnit принимала бы базовый класс Unit и работала бы с ним абстрактно, не зная кто это.
UPD: поправил немного код, забыл class написать и в интерфейсе была ошибка