public static bool Prefix(WeaponPool __instance, int id) { var cfg = ConfigWeapon.get(id); if (!__instance.PrefabDict.ContainsKey(cfg.Prefab)) { AssetBundle asset = null; try { //var name = cfg.Prefab.Substring(cfg.Prefab.LastIndexOf('\\') + 1); //name = name.Substring(name.LastIndexOf('/') + 1); asset = AssetBundle.LoadFromFile(cfg.Prefab); var prefabGo = asset.LoadAsset <GameObject>("武器"); __instance.PrefabDict.Add(cfg.Prefab, new WeaponCaches(prefabGo)); Debug.Log("Load Prefab:" + cfg.Prefab); } catch (Exception e) { Debug.LogError(string.Format("Load Prefab {0} faild:{1}", cfg.Prefab, e)); } finally { if (asset != null) { asset.Unload(false); } } } return(true); }
static bool Prefix(WeaponPool __instance, int id, ConfigWeapon w, Weapon weapon) { weapon.TypeId = id; weapon.Type = w.Type; weapon.Proto = __instance.GetProto(w, id); if (weapon.Animator == null) { weapon.Animator = __instance.GetComponent <Animator>(); } var ctrl = WeaponPool_Build_Patch_1.LoadAnimator(w.Animation); if (ctrl != null) { weapon.Animator.runtimeAnimatorController = ctrl; } if (id != 0) { ConfigItem configItem = ConfigItem.get(id); weapon.name = configItem.Name; } weapon.SetWeaponImage("Weapon"); if (ConfigWeapon.getAttackSound(id) != "0") { weapon.AttackSound.clip = (AudioClip)Resources.Load(ConfigWeapon.getAttackSound(id), typeof(AudioClip)); } return(false); }
static bool Prefix(WeaponPool __instance, ItemData item, ConfigWeapon w, Weapon weapon) { weapon.TypeId = item.id; weapon.Type = w.Type; var par = new object[] { w, item }; var oMethod = typeof(WeaponPool).GetMethod("GetProto", BindingFlags.Instance | BindingFlags.NonPublic); var ret = oMethod.Invoke(__instance, par); weapon.Proto = (IWeaponProto)ret; var ctrl = WeaponPool_Build_Patch_1.LoadAnimator(w.Animation); if (ctrl != null) { weapon.Animator.runtimeAnimatorController = ctrl; } weapon.name = ConfigItem.getName(item.id); weapon.SetWeaponImage("Weapon"); if (ConfigWeapon.getAttackSound(item.id) != "0") { weapon.AttackSound.clip = (AudioClip)Resources.Load(ConfigWeapon.getAttackSound(item.id), typeof(AudioClip)); } return(false); }
static bool Prefix(WeaponPool __instance, ItemData weapon) { return(WeaponPool_Create_Patch1.Prefix(__instance, weapon.id)); }