private static void CreateNewBullet(int id, Transform master, int layer,BulletDeploy deploy, CreatedNotify notify) { GameSystem.CoroutineStart(TextureUtility.LoadResourceById(deploy.resourceId, spriteList => { int spriteIdx = deploy.spriteIdx; if(deploy.spriteIdx > spriteList.Count) { spriteIdx = 0; } var sprite = spriteList[spriteIdx]; Holder holder; if (!CachePool.TryGetValue(id, out holder)) { holder = new Holder { Deploy = deploy, Resource = sprite, SpriteList = spriteList, Queue = new Queue<Bullet>() }; CachePool.Add(id, holder); } CreateBulletDirect(spriteList, sprite, deploy, master, layer, bullet => { notify(bullet); }); })); }
//玩家死亡处理 private static void OnPlayerDead(object o) { //生命数-1 Data.LeftLifeCount--; MainPlayer = null; if (Data.LeftLifeCount > 0) { //1秒后复活 GameSystem.CoroutineStart(PlayerReborn()); } else { //无剩余生命数量,弹出结算 DOVirtual.DelayedCall(1f, () => { UiManager.Show <UIDeadView>(); }); } }
private static void CreateNewEffect(int id, int sortingOrder, TextureEffectDeploy deploy, CreatedNotify notify) { GameSystem.CoroutineStart(TextureUtility.LoadResourceById(deploy.resourceId, spriteList => { Holder holder; if (!CachePool.TryGetValue(id, out holder)) { holder = new Holder { Deploy = deploy, Resource = spriteList, Queue = new Queue <TextureEffect>() }; CachePool.Add(id, holder); } CreateEffectDirect(spriteList, sortingOrder, deploy, effect => { notify(effect); }); })); }
public static void Create(Vector3 pos, float delay) { GameSystem.CoroutineStart(DoCreate(pos, delay)); }
public virtual void Init(Enemy enemy) { Master = enemy; GameSystem.CoroutineStart(SetCanShoot()); }
//从第一关开始游戏 public static void StartGame() { GameSystem.CoroutineStart(EnterMission()); }
//续关 public static void Retry() { //1秒后复活 GameSystem.CoroutineStart(PlayerReborn(0.2f)); Data.LeftLifeCount = Data.DefaultLifeCount; }