public static IEnumerator Load() { ResourceLoadTask task = new ResourceLoadTask(); task.path = "cfg"; task.name = "tile.csv"; yield return(ResourceLoader.LoadAssetAsync(task)); TileCfg.load((task.asset as TextAsset).bytes); task.name = "resources.csv"; yield return(ResourceLoader.LoadAssetAsync(task)); ResourcesCfg.load((task.asset as TextAsset).bytes); task.name = "prefab.csv"; yield return(ResourceLoader.LoadAssetAsync(task)); PrefabCfg.load((task.asset as TextAsset).bytes); task.name = "prefabType.csv"; yield return(ResourceLoader.LoadAssetAsync(task)); PrefabTypeCfg.load((task.asset as TextAsset).bytes); task.name = "audio.csv"; yield return(ResourceLoader.LoadAssetAsync(task)); AudioCfg.load((task.asset as TextAsset).bytes); task.name = "frameAnimation.csv"; yield return(ResourceLoader.LoadAssetAsync(task)); FrameAnimationCfg.load((task.asset as TextAsset).bytes); task.name = "characterSprite.csv"; yield return(ResourceLoader.LoadAssetAsync(task)); CharacterSpriteCfg.load((task.asset as TextAsset).bytes); task.name = "unitType.csv"; yield return(ResourceLoader.LoadAssetAsync(task)); UnitTypeCfg.load((task.asset as TextAsset).bytes); }
public IEnumerator loadUnitType(int unitTypeId, LoaderResult result) { if (id2UnitType.ContainsKey(unitTypeId)) { result.isDone = true; result.asset = id2UnitType[unitTypeId]; yield break; } UnitTypeCfg unitTypeCfg = UnitTypeCfg.get(unitTypeId); int spriteCfgId = unitTypeCfg.spritId; if (!id2CharacterSprite.ContainsKey(spriteCfgId)) { CharacterSpriteCfg spriteCfg = CharacterSpriteCfg.get(spriteCfgId); CharacterSprite sprite = new CharacterSprite(); sprite.animations[(int)UnitAnimation.Run] = new CharacterAnimation(); for (int i = 0; i < 8; i++) { int spriteAnimId = spriteCfg.runAnim[i]; if (spriteAnimId == 0) { sprite.animations[(int)UnitAnimation.Run].anim[i] = null; continue; } if (!id2FrameAnimation.ContainsKey(spriteAnimId)) { FrameAnimationCfg spriteAnimCfg = FrameAnimationCfg.get(spriteAnimId); List <Sprite> anim = new List <Sprite>(); ResourceLoadTaskGroup group = new ResourceLoadTaskGroup(); for (int j = spriteAnimCfg.nBegin; j <= spriteAnimCfg.nEnd; j++) { ResourceLoadTask task = new ResourceLoadTask(); task.path = spriteAnimCfg.resourcePath; string resourceName = j + ".0.png"; task.name = resourceName; group.addTask(task); } yield return(ResourceLoader.LoadGroupAsync(group)); for (int j = 0; j <= spriteAnimCfg.nEnd - spriteAnimCfg.nBegin; j++) { Texture2D texture2d = group.getTaskList()[j].asset as Texture2D; Sprite s = Sprite.Create(texture2d, new Rect(0, 0, texture2d.width, texture2d.height), new Vector2(0.5f, 0), spriteAnimCfg.fixelsPerUnit ); anim.Add(s); } FrameAnimation frameanimation = new FrameAnimation(); frameanimation.frames = anim; frameanimation.frameRate = spriteAnimCfg.frameRate; id2FrameAnimation[spriteAnimId] = frameanimation; } sprite.animations[(int)UnitAnimation.Run].anim[i] = id2FrameAnimation[spriteAnimId].frames; } sprite.frameRate = spriteCfg.frameRate; id2CharacterSprite[spriteCfgId] = sprite; } UnitType unitType = new UnitType(); unitType.sprite = id2CharacterSprite[spriteCfgId]; result.isDone = true; result.asset = unitType; id2UnitType[unitTypeId] = unitType; yield break; }