//Event Method private void PublishEnemyKilledEvent() { EnemyKilledEvent?.Invoke(this); // (this) keyword refers to the current instant // the (?) is the null check operator }
private void OnEnemyKilled(EnemyKilledEvent e) { if (calculateScore) { score += scoreIncrementForEnemyKill; GameEventManager.Instance.TriggerAsyncEvent(new UpdateScoreEvent(score)); } }
void _OnEnemyKilled(EnemyKilledEvent e) { --enemyCount; if (enemyCount <= 0 && waveNum == 5) { EventBus.Publish <GameOverEvent>(new GameOverEvent()); Destroy(this); } }
private void OnEnemyKilled(EnemyKilledEvent e) { currentXP += xpForEnemyKill; if (currentLevel < xpPerLevel.Length) { GameEventManager.Instance.TriggerAsyncEvent(new UpdateXPEvent(currentXP, xpPerLevel[currentLevel])); } CheckForLevelUp(); }
/* private void EnemyKilled(GameObject obj) * { * enemiesToDestroy.Add(obj); * score++; * scoreText.text = score.ToString(); * if (--enemyLeft <= 0) * { * waveCleared = true; * } * }*/ private void EnemyKilled(EnemyKilledEvent myEvent) { enemiesToDestroy.Add(myEvent.enemyToDestroy); if (enemies.Count - enemiesToDestroy.Count <= 0 && enemiesWaitingCounts == 0) { waveCleared = true; if (myEvent.enemyToDestroy.CompareTag("Boss")) { Services.EventManagerNew.Fire(new ExitBossEvent()); } } score += myEvent.score; scoreText.text = score.ToString(); }
//获取指定事件对象(如果不存在就进行添加(注册事件)) public IGameEvent getGameEvent(ENUM_GameEvent emGameEvent) { if (m_gameEvents.ContainsKey(emGameEvent)) { return(m_gameEvents[emGameEvent]); } switch (emGameEvent) { case ENUM_GameEvent.EnemyKilled: m_gameEvents[emGameEvent] = new EnemyKilledEvent(); break; case ENUM_GameEvent.EnemyCount: m_gameEvents[emGameEvent] = new EnemyCountEvent(); break; default: Debug.Log("没有名为[" + emGameEvent + "]的游戏事件"); return(null); } return(m_gameEvents[emGameEvent]); }
// Update is called once per frame public void Cast(Transform targetTransform) { _targetTransform = targetTransform; EnemyKilledEv = new EnemyKilledEvent(); }
private void AddScore() { EnemyKilledEvent?.Invoke(); }
protected virtual void Die() { EnemyKilledEvent?.Invoke(this); Destroy(gameObject); }
void _OnEnemyKilled(EnemyKilledEvent e) { SpawnManager.Instance.SpawnTutorialUpgrades(); EventBus.Unsubscribe(enemy_killed_subscription); }