Пример #1
0
    public override void AddWeaponAttr()
    {
        WeaponBaseAttr weaponBaseAttr = FactoryManager.GetAttrFactory.GetWeaponBaseAttr(mWeaponType);

        mPrefabName      = weaponBaseAttr.PrefabName;
        mWeapon.BaseAttr = weaponBaseAttr;
    }
Пример #2
0
    public IWeapon CreateWeapon(WeaponType weaponType)
    {
        IWeapon        weapon   = null;
        WeaponBaseAttr baseAttr = FactoryManager.AttrFactory.getWeaponBaseAttr(weaponType);

        GameObject weaponGO = FactoryManager.AssetFactory.LoadWeapon(baseAttr.AssetName);

        switch (weaponType)
        {
        case WeaponType.Gun:
            weapon = new WeaponGun(baseAttr, weaponGO);
            break;

        case WeaponType.Rifle:
            weapon = new WeaponRifle(baseAttr, weaponGO);
            break;

        case WeaponType.Rocket:
            weapon = new WeaponRocket(baseAttr, weaponGO);
            break;

        default:
            break;
        }
        return(weapon);
    }
Пример #3
0
    public IWeapon CreateWeapon(WeaponType weaponType)
    {
        IAssetFactory  factory  = new ResourcesAssetFactory();
        WeaponBaseAttr baseAttr = FactoryManager.AttrFactory.GetWeaponBaseAttr(weaponType);
        IWeapon        weapon   = new IWeapon(baseAttr, factory.LoadWeapon(baseAttr.AssetName));

        return(weapon);
    }
Пример #4
0
    public IWeapon CreateWeapon(WeaponType weaponType)
    {
        WeaponBaseAttr baseAttr = FactoryManager.AttrFactory.GetWeaponBaseAttr(weaponType);

        GameObject weaponGO = FactoryManager.AssetFactory.LoadWeapon(baseAttr.AssetName);

        IWeapon weapon = new WeaponGun(baseAttr, weaponGO);

        return(weapon);
    }
Пример #5
0
    public IWeapon(WeaponBaseAttr baseAttr, GameObject gameObject)
    {
        mBaseAttr   = baseAttr;
        mGameObject = gameObject;
        Transform effect = mGameObject.transform.Find("Effect");

        mParticleSystem = effect.GetComponent <ParticleSystem>();
        mLine           = effect.GetComponent <LineRenderer>();
        mLight          = effect.GetComponent <Light>();
        mAudio          = effect.GetComponent <AudioSource>();
    }
    public AbsWeapon(WeaponBaseAttr _weaponBaseAttr, GameObject _gameObject)
    {
        weaponBaseAttr = _weaponBaseAttr;
        gameObject     = _gameObject;
        Transform effct = gameObject.transform.Find("Effect");

        particle = effct.GetComponent <ParticleSystem>();
        line     = effct.GetComponent <LineRenderer>();
        light    = effct.GetComponent <Light>();
        audio    = effct.GetComponent <AudioSource>();
    }
    public WeaponBaseAttr GetWeaponBaseAttr(WeaponType t)
    {
        WeaponBaseAttr attr = null;

        if (!weaponBaseAttrDir.TryGetValue(t, out attr))
        {
            Debug.Log("无法得到 WeaponType 的基础属性");
            return(null);
        }
        return(attr);
    }
Пример #8
0
    public IWeapon CreateWeapon(WeaponType weaponType)
    {
        IWeapon weapon = null;


        //string assetName = "";
        //switch (weaponType)
        //{
        //    case WeaponType.Gun:
        //        assetName = "WeaponGun";
        //        break;

        //    case WeaponType.Rifle:
        //        assetName = "WeaponRifle";
        //        break;

        //    case WeaponType.Rocket:
        //        assetName = "WeaponRocket";
        //        break;
        //}
        WeaponBaseAttr baseAttr = FactoryManager.attrFactory.GetWeaponBaseAttr(weaponType);



        //GameObject weaponGO = FactoryManager.assetFactory.LoadWeapon(assetName);
        GameObject weaponGO = FactoryManager.assetFactory.LoadWeapon(baseAttr.assetName);



        switch (weaponType)
        {
        case WeaponType.Gun:
            //weapon = new WeaponGun(20,5,weaponGO);
            weapon = new WeaponGun(FactoryManager.attrFactory.GetWeaponBaseAttr(WeaponType.Gun), weaponGO);
            break;

        case WeaponType.Rifle:
            //weapon = new WeaponRifle(30, 7, weaponGO);
            weapon = new WeaponRifle(FactoryManager.attrFactory.GetWeaponBaseAttr(WeaponType.Rifle), weaponGO);
            break;

        case WeaponType.Rocket:
            //weapon = new WeaponRocket(40, 8, weaponGO);
            weapon = new WeaponRocket(FactoryManager.attrFactory.GetWeaponBaseAttr(WeaponType.Rocket), weaponGO);
            break;
        }
        return(weapon);
    }
Пример #9
0
    public IWeapon CreateWeapon(WeaponType weaponType)
    {
        IWeapon        weapon   = null;
        WeaponBaseAttr baseAttr = FactoryManager.attrFactory.GetWeaponBaseAttr(weaponType);

        //通过资源工厂创建枪的游戏物体
        GameObject weaponGo = FactoryManager.assetFactory.LoadWeapon(baseAttr.assetName);

        switch (weaponType)
        {
        case WeaponType.Gun:
            weapon = new WeaponGun(baseAttr, weaponGo);
            break;

        case WeaponType.Rifle:
            weapon = new WeaponRifle(baseAttr, weaponGo);
            break;

        case WeaponType.Rocket:
            weapon = new WeaponRocket(baseAttr, weaponGo);
            break;
        }
        return(weapon);
    }
Пример #10
0
 public WeaponLaser(WeaponBaseAttr baseAttr, GameObject gameobject) : base(baseAttr, gameobject)
 {
 }
Пример #11
0
 public WeaponGun(WeaponBaseAttr baseAttr, GameObject gameObject) : base(baseAttr, gameObject)
 {
 }
Пример #12
0
 public WeaponRocket(WeaponBaseAttr baseAttr, GameObject gameObject) : base(baseAttr, gameObject)
 {
 }
Пример #13
0
 public WeaponRifle(WeaponBaseAttr baseAttr, GameObject gameObject) : base(baseAttr, gameObject)
 {
 }
Пример #14
0
 public WeaponGun(WeaponBaseAttr _attr, GameObject _gameObject) : base(_attr, _gameObject)
 {
 }
 public WeaponRocket(WeaponBaseAttr _attr, GameObject _gameObject) : base(_attr, _gameObject)
 {
 }
Пример #16
0
    public IWeapon CreateWeapon(WeaponType weaponType)
    {
        IWeapon        weapon   = null;
        WeaponBaseAttr baseAttr = FactoryManager.AttrFactory.GetWeaponBaseAttr(weaponType);
        //Debug.Log("WeaponFactory::baseAttr.AssetName = " + baseAttr.AssetName);
        GameObject weaponGO = FactoryManager.AssetFactory.LoadWeapon(baseAttr.AssetName);

        //aSong:文档加载方式解决.将士兵和敌人动态的数据统一放在文件中.加载进来后用Dic来保存Struct
        //将这个工厂改为泛型工厂,然后通过Dic保存 weaponType和对应指定类型的泛型工厂来实例化
        switch (weaponType)
        {
        case WeaponType.Gun:
            weapon = new WeaponGun(baseAttr, weaponGO);
            break;

        case WeaponType.Rifle:
            weapon = new WeaponRifle(baseAttr, weaponGO);
            break;

        case WeaponType.Rocket:
            weapon = new WeaponRocket(baseAttr, weaponGO);
            break;
        }
        return(weapon);

        /*
         * string assetName = "";
         * switch (weaponType)
         * {
         *  case WeaponType.Gun:
         *      assetName = "WeaponGun";
         *      break;
         *  case WeaponType.Rifle:
         *
         *      assetName = "WeaponRifle";
         *      break;
         *  case WeaponType.Rocket:
         *      assetName = "WeaponRocket";
         *      break;
         * }
         * GameObject weaponGO = FactoryManager.AssetFactory.LoadWeapon(assetName);
         *
         *
         * switch (weaponType)
         * {
         *  case WeaponType.Gun:
         *      weapon = new WeaponGun(20, 5, weaponGO);
         *      break;
         *  case WeaponType.Rifle:
         *
         *      weapon = new WeaponRifle(30, 7, weaponGO);
         *
         *      break;
         *  case WeaponType.Rocket:
         *      weapon = new WeaponRocket(40, 8, weaponGO);
         *
         *      break;
         *  default:
         *      break;
         * }
         * return weapon;
         */
    }