首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于类型的gameObject实例化

基于类型的gameObject实例化
EN

Stack Overflow用户
提问于 2018-11-21 00:34:40
回答 1查看 107关注 0票数 2

所以基本上,我在为一个问题而挣扎,希望这里的人能给我指明正确的方向。

我随机生成项目,并试图实例化上述项目,唯一的问题是,当我能够实例化父项时,我不知道生成的项目是否是“武器/盔甲”等等,这些都是项目继承的子项目。因此,我能够获得生成项的Type,但在将Type转换回要实例化的脚本/对象时遇到了困难。

例如:物品>武器>剑。我能够制造出一把剑,并得到剑的类型,但是我无法实例化一把剑,因为我只有一种类型,而不是一柄实际的剑。

因为我的sword类在它的Start方法中加载了数据,然后是Start,然后是Item,所以我不能只是实例化一个项目,并且知道它是一把剑。也许我做错了。

感谢您的阅读!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-21 01:47:02

创建一个武器enum

代码语言:javascript
复制
public enum WeaponType {sword, crossbow, q36SpaceModulator }

使用它来告诉您的factory (@Draco18s comment)构建什么-在这种情况下创建武器的方法。

代码语言:javascript
复制
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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53403685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档