我試圖在XNA中構建一個很受Unity啓發的簡單遊戲引擎。我目前的工作是可以附加到gameobjects的組件。我有像「PlayerController」和「Collider」這樣的類,它們是組件,因此繼承自Component類。從System.Type變量創建類的實例
我試圖創建方法試圖需要一個組件時相比,可以增加取決於類型參數的新組件,例如:
public void RequireComponent(System.Type type)
{
//Create the component
Component comp = new Component();
//Convert the component to the requested type
comp = (type)comp; // This obviously doesn't work
//Add the component to the gameobject
gameObject.components.Add(comp);
}
例如,剛體組件需要遊戲對象有一個對撞機,所以它需要碰撞組件:
public override void Initialize(GameObject owner)
{
base.Initialize(owner);
RequireComponent(typeof(Collider));
}
這可以做或有沒有更好的辦法?
謝謝,你的解決方案真的幫助我。它不僅解決了當前的問題,而且還爲我解決了大量的想法提供了方法。 –