コード例 #1
0
    /// <summary>
    /// 初始化数据
    /// </summary>
    public void InitEnemyData(Transform self, BaseEnemyInfo baseEnemyInfo)
    {
        cacheTransform    = self;
        cacheSpriteRender = self.GetComponent <SpriteRenderer>();

        this.baseEnemyInfo = baseEnemyInfo;

        ResumeAndInitData();
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    /// <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]);
    }