Example #1
0
        public static void RenderConnection(MonoBehaviour caster, UnityEvent ev)
        {
            Color gizmosColor = Gizmos.color;
            for (int i = 0, len = ev.GetPersistentEventCount(); i < len; i++)
            {
                Event target = ev.GetPersistentTarget(i) as Event;
                if (target)
                {
                    string method = ev.GetPersistentMethodName(i);
                    if (method == "StartEvent")
                        Gizmos.color = Color.green;
                    else if (method == "set_enabled")
                        Gizmos.color = Color.blue;
                    else
                        return;

                    Gizmos.DrawLine(caster.transform.position, target.transform.position);
                }
            }
            Gizmos.color = gizmosColor;
        }
Example #2
0
    void Update()
    {
        _timer += Time.deltaTime;

        switch (_status)
        {
        case GunEnemyStatus.Idle:
            // 時間が経ったら Idle -> Ready に移行する
            if (_timer > _interval)
            {
                ResetTimer();
                _status = GunEnemyStatus.Ready;
                _animator.SetTrigger("Ready");
                _collider.enabled = true;
            }
            break;

        case GunEnemyStatus.Ready:
            // 時間が経ったら発砲し、Idle 状態に移行する
            if (_timer > _fireTime)
            {
                ResetTimer();
                _status = GunEnemyStatus.Idle;
                _animator.SetTrigger("Fire");
                _collider.enabled = false;

                if (_onShoot.GetPersistentEventCount() > 0)
                {
                    _onShoot.Invoke();
                }
                else
                {
                    Debug.LogWarning("発砲時に呼ばれる処理が指定されていません。");
                }
            }
            break;
        }
    }
Example #3
0
    void Update()
    {
        m_timer += Time.deltaTime;

        switch (m_status)
        {
        case GunEnemyStatus.Idle:
            if (m_timer > m_interval)
            {
                ResetTimer();
                m_status = GunEnemyStatus.Ready;
                m_animator.SetTrigger("Ready");
                m_collider.enabled = true;
            }
            break;

        case GunEnemyStatus.Ready:
            if (m_timer > m_fireTime)
            {
                ResetTimer();
                m_status = GunEnemyStatus.Idle;
                m_animator.SetTrigger("Fire");
                m_collider.enabled = false;

                if (m_onShoot.GetPersistentEventCount() > 0)
                {
                    m_onShoot.Invoke();
                }
                else
                {
                    Debug.LogWarning("発砲時に呼ばれる処理が指定されていません。");
                }
            }
            break;
        }
    }