所以基本上,我在为一个问题而挣扎,希望这里的人能给我指明正确的方向。
我随机生成项目,并试图实例化上述项目,唯一的问题是,当我能够实例化父项时,我不知道生成的项目是否是“武器/盔甲”等等,这些都是项目继承的子项目。因此,我能够获得生成项的Type,但在将Type转换回要实例化的脚本/对象时遇到了困难。
例如:物品>武器>剑。我能够制造出一把剑,并得到剑的类型,但是我无法实例化一把剑,因为我只有一种类型,而不是一柄实际的剑。
因为我的sword类在它的Start方法中加载了数据,然后是Start,然后是Item,所以我不能只是实例化一个项目,并且知道它是一把剑。也许我做错了。
感谢您的阅读!
发布于 2018-11-21 01:47:02
创建一个武器enum
public enum WeaponType {sword, crossbow, q36SpaceModulator }使用它来告诉您的factory (@Draco18s comment)构建什么-在这种情况下创建武器的方法。
public class WeaponFactory {
public Weapon Create (WeaponType thisWeapon) {
Weapon newWeapon;
switch (thisWeapon) {
case WeaponType.sword :
newWeapon = BuildSword();
break;
case WeaponType.crossbow:
newWeapon = BuildCrossbow();
break;
// and so on...
default: // we don't have whatever-you-asked-for
}
return newWeapon;
}
private Weapon BuildSword() { return new Sword(); }
}
// somewhere in code...
// you may have other parameters for particular weapon attributes
var sword = royalArmory.Create(Weapon.sword);https://stackoverflow.com/questions/53403685
复制相似问题