public override void AddWeaponAttr() { WeaponBaseAttr weaponBaseAttr = FactoryManager.GetAttrFactory.GetWeaponBaseAttr(mWeaponType); mPrefabName = weaponBaseAttr.PrefabName; mWeapon.BaseAttr = weaponBaseAttr; }
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); }
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); }
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); }
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); }
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); }
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); }
public WeaponLaser(WeaponBaseAttr baseAttr, GameObject gameobject) : base(baseAttr, gameobject) { }
public WeaponGun(WeaponBaseAttr baseAttr, GameObject gameObject) : base(baseAttr, gameObject) { }
public WeaponRocket(WeaponBaseAttr baseAttr, GameObject gameObject) : base(baseAttr, gameObject) { }
public WeaponRifle(WeaponBaseAttr baseAttr, GameObject gameObject) : base(baseAttr, gameObject) { }
public WeaponGun(WeaponBaseAttr _attr, GameObject _gameObject) : base(_attr, _gameObject) { }
public WeaponRocket(WeaponBaseAttr _attr, GameObject _gameObject) : base(_attr, _gameObject) { }
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; */ }