私はこれら2つの主要なクラスを持っています。まず FSMSystem クラス:
public class FSMSystem<T> : MonoBehaviour where T : FSMSystem<T>
{
private T m_Owner = default(T);
protected FSMState<T> currentState;
private Dictionary<int, FSMState<T>> m_states;
public FSMSystem(T owner)
{
m_Owner = GameObject.FindObjectOfType(typeof(T)) as T; //owner;
m_states = new Dictionary<int, FSMState<T>>();
}
protected void AddState( FSMState<T> state )
{
m_states.Add( state.GetStateID(), state );
}
}
そして 2 番目のクラスである FSMState:
public abstract class FSMState<T>
{
public abstract int GetStateID();
public abstract void OnEnter (FSMSystem<T> fsm, FSMState<T> prevState);
public abstract void OnUpdate (FSMSystem<T> fsm);
public abstract void OnExit (FSMSystem<T> fsm, FSMState<T> nextState);
}
次のエラーが発生します。
エラー CS0309:ジェネリック型またはメソッド ' ' でパラメーター' ' として使用するには、型 '
T
' を ' ' に変換できる必要がありますFSMSystem<T>
T
FSMSystem<T>
誰かがこれを解決する方法を教えてもらえますか? これに似た他の多くの投稿を見ますが、関係は見られません。