public void Init(EnemyTargetController enemyTargetController) { _enemyTargetController = enemyTargetController; _explosion = NrcResourceManager.GetGameObject(ResourceDefine.PREFAB_EXPLOSION) as GameObject; _bullet = NrcResourceManager.GetGameObject(ResourceDefine.PREFAB_BULLET) as GameObject; _enemyTargetController.EnemyTargetDeadBeforeEvent += (etc) => { Observable.FromCoroutine(observe => Explodison(_enemyTargetController.transform.position)).Subscribe(); }; }
private static Object GetObject(string key) { Object obj; if (!NrcResourceManager.IsExist(key)) { obj = Resources.Load(key); } else { obj = Instance.resourceDictionary[key]; } return(obj); }
public void Init(EnemyController enemyController) { _enemyController = enemyController; _navMeshAgent = _enemyController.GetComponent <NavMeshAgent>(); _navMeshAgent.speed = 1.5f; _explosion = NrcResourceManager.GetGameObject(ResourceDefine.PREFAB_EXPLOSION) as GameObject; _enemyController.EnemyDeadEvent += (e) => { Observable.FromCoroutine(observe => Explodison(_enemyController.transform.position)).Subscribe(); if (_iDisposable != null) { _iDisposable.Dispose(); } }; NrcEventForwarder nrcEventForwarder = enemyController.GetComponent <NrcEventForwarder>(); nrcEventForwarder.OnTriggerStayEvent += (col) => { if (col.gameObject.tag == TagDefine.TAG_ENEMY_TARGET && _iDisposable != null) { EnemyTargetController enemyTargetController = col.gameObject.GetComponent <EnemyTargetController>(); enemyTargetController.Damage(1); } }; EnemyTargetController etc = NrcGameManager.NrcGameEnemyTargetService.GetMostNearEnemyTaget(_enemyController); if (etc != null) { etc.EnemyTargetDeadAfterEvent += () => { if (_enemyController != null) { etc = NrcGameManager.NrcGameEnemyTargetService.GetMostNearEnemyTaget(_enemyController); if (etc != null) { _navMeshAgent.SetDestination(etc.transform.position); } } }; _navMeshAgent.enabled = true; _navMeshAgent.SetDestination(etc.transform.position); } }
public EnemyHpGaugeObserver(EnemyController enemyController) { _enemyController = enemyController; _hpGaugePrefab = NrcResourceManager.GetGameObject(ResourceDefine.PREFAB_ENEMY_HP_GAUGE) as GameObject; _hpGauge = GameObject.Instantiate(_hpGaugePrefab, NrcGameManager.NrcGameStageObserver.GetNowStageController().transform); Slider slider = _hpGauge.transform.Find("HpSlider").GetComponent <Slider>(); slider.value = (float)_enemyController.Hp / (float)_enemyController.MaxHp; _enemyController.EnemyDamageService.EnemyHpChangeEvent += (hp) => { slider.value = (float)hp / (float)_enemyController.MaxHp; if (hp == 0) { GameObject.Destroy(_hpGauge); _iDisposable.Dispose(); } }; }
/// <summary> /// コンストラクタ /// </summary> /// <param name="playerController"></param> public PlayerShootService(PlayerController playerController) { _playerController = playerController; _bullet = NrcResourceManager.GetGameObject(ResourceDefine.PREFAB_BULLET) as GameObject; }