參與敵對階級:字典Stack類類型一起
public abstract Enemy : MonoBehaviour {}
public class A : Enemy {}
public class B : Enemy {}
我有一本字典。我想讓字典爲每種類型的敵人都包含一個堆棧。
public class Test : MonoBehaviour
{
// prefabs
public GameObject a, b;
public Dictionary<Enemy, Stack> eDictionary;
void Start()
{
eDictionary = new Dictionary<Enemy, Stack>();
Fill(a, 10);
Fill(b, 10);
}
}
我如何製作堆棧和鍵。
public void Fill(Enemy e, int howMany)
{
Stack s = new Stack();
for(int I = 0; I < howMany; I++)
{
GameObject g = MonoBehavior.Instantiate(e.gameObject) as GameObject;
s.Push(g);
}
eDictionary.Add(e, s)
}
的主要問題是:如何讓我以這樣的方式即A型的敵人1個鍵堆疊在一起的鑰匙?
當我進入generalized
敵人的甲類和乙類,並試圖將敵人加入到相應的堆棧中,因爲它的鍵,我得到的鍵不匹配錯誤。當我將敵人從堆棧中彈出時,我會這樣做,然後當我完成它們時,我想將它們推入字典的堆棧中(它在此時失敗)。
爲什麼不使用'堆棧'? –
Dai
我會有不同的敵人。所以我想爲每一種敵人提供一個堆棧。除非你的意思是給字典中的Stack提供一個類型,否則就不需要了。 –
@MikeJohn好像你把'Enemy'類型與'Enemy'的*實例*混淆了。嘗試使用字符串或Enum(例如'enum EnemyType')代替鍵。或者可能使用'typeof(Enenemy)'作爲關鍵。 –