/// <summary> /// 初始化数据 /// </summary> public void InitEnemyData(Transform self, BaseEnemyInfo baseEnemyInfo) { cacheTransform = self; cacheSpriteRender = self.GetComponent <SpriteRenderer>(); this.baseEnemyInfo = baseEnemyInfo; ResumeAndInitData(); }
private BaseEnemyController CreateEnemyUtil(EnemyType type) { //根据类型 生成数据 BaseEnemyInfo data = EnemyInfo.Instance.LoadBaseEnemyData(type); GameObject enemyGo = ResourcesLoadManager.LoadEnemyResources <GameObject>(data.enemyResName); GameObject enemy = GameObject.Instantiate <GameObject>(enemyGo); enemy.transform.SetParent(GameController.Instance.EnemyGroup); BaseEnemyController enemyController = enemy.AddComponent <BaseEnemyController>(); enemyController.InitEnemyData(enemy.transform, data); return(enemyController); }
/// <summary> /// 获取敌军的基础数据(默认为0级武器) /// </summary> public BaseEnemyInfo LoadBaseEnemyData(EnemyType type, int weaponLevel = 0) { BaseEnemyInfo data = null; string key = ((int)type).ToString(); if (!LoadedData.ContainsKey(type)) { string resName = EnemyJsonData[key]["res"].ToString(); int speed = (int)EnemyJsonData[key]["speed"]; int maxHP = (int)EnemyJsonData[key]["maxHP"]; string weapons = EnemyJsonData[key]["weapons"].ToString(); int hit = (int)EnemyJsonData[key]["hit"]; int score = (int)EnemyJsonData[key]["score"]; string[] weaponstrs = weapons.Split(','); int count = weaponstrs.Length; BaseWeaponInfo[] weaponModule = new BaseWeaponInfo[count]; //空武器 if (null == weaponstrs || weaponstrs.Length == 0) { weaponModule = null; } else if (weaponstrs.Length == 1 && string.IsNullOrEmpty(weaponstrs[0])) { weaponModule = null; } //更新武器数据 else { for (int i = 0; i < count; i++) { weaponModule[i] = WeaponInfo.Instance.LoadBaseWeaponData((WeaponType)(int.Parse(weaponstrs[i])), weaponLevel); } } //默认满血量 data = new BaseEnemyInfo(type, resName, speed, maxHP, maxHP, weaponModule, score, hit); //缓存 LoadedData.Add(type, data); } return(LoadedData[type]); }