Beispiel #1
0
    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();
        };
    }
Beispiel #2
0
    private static Object GetObject(string key)
    {
        Object obj;

        if (!NrcResourceManager.IsExist(key))
        {
            obj = Resources.Load(key);
        }
        else
        {
            obj = Instance.resourceDictionary[key];
        }

        return(obj);
    }
Beispiel #3
0
    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);
        }
    }
Beispiel #4
0
    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();
            }
        };
    }
Beispiel #5
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <param name="playerController"></param>
 public PlayerShootService(PlayerController playerController)
 {
     _playerController = playerController;
     _bullet           = NrcResourceManager.GetGameObject(ResourceDefine.PREFAB_BULLET) as GameObject;
 }