Beispiel #1
0
 //敵の視野角にプレイヤーが侵入した時
 void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Player")
     {
         //もし、自分のEnemyStateManagerが検知できていなければ
         if (!m_EnemyStateManager)
         {
             //検知する
             if (transform.parent.gameObject.GetComponent <EnemyStateManager>())
             {
                 m_EnemyStateManager = transform.parent.gameObject.GetComponent <EnemyStateManager>();
                 //検知したScriptに情報を渡す。
                 m_EnemyStateManager.SetBattlePosture(other.transform);
             }
         }
         //もし、自分のEnemyStateManagerが検知できていなければ
         if (!m_EnemyStateManager2)
         {
             //検知する
             if (transform.parent.gameObject.GetComponent <EnemyStateManager2>())
             {
                 m_EnemyStateManager2 = transform.parent.gameObject.GetComponent <EnemyStateManager2>();
                 //検知したScriptに情報を渡す。
                 m_EnemyStateManager2.SetBattlePosture(other.transform);
             }
         }
     }
 }
 public void Enter(EnemyStateManager stateManager)
 {
     //Animation
     stateManager.Animator.SetBool("IsIdle", false);
     stateManager.Animator.SetBool("IsChasing", true);
     stateManager.Animator.SetBool("IsDashing", false);
 }
 void Start()
 {
     AI                           = gameObject.GetComponent <EnemyAI>();
     stateManager                 = gameObject.GetComponent <EnemyStateManager>();
     stateManager.HeroInRange    += OnHeroInRange;
     stateManager.HeroOutOfRange += OnHeroOutOfRange;
 }
        public void Update(EnemyStateManager stateManager)
        {
            var distance = Vector2.Distance(stateManager.transform.position, stateManager.Player.transform.position);

            if (!stateManager.inRange)
            {
                stateManager.TransitionToState(stateManager.IdleState);
            }
            else if (distance <= stateManager.AttackDistance)
            {
                stateManager.TransitionToState(stateManager.DashState);
            }

            if (stateManager.Player.transform.position.x > stateManager.transform.position.x)
            {
                stateManager.Rigidbody2D.velocity =
                    new Vector2(
                        stateManager.MoveSpeed,
                        stateManager.Rigidbody2D.velocity.y);
            }
            else if (stateManager.Player.transform.position.x < stateManager.transform.position.x)
            {
                stateManager.Rigidbody2D.velocity =
                    new Vector2(
                        -stateManager.MoveSpeed,
                        stateManager.Rigidbody2D.velocity.y);
            }
        }
Beispiel #5
0
    private void InitEnemy()
    {
        _enemyStateManager = new EnemyStateManager();

        //enemy load
        if (null != Enemy[0])
        {
            _enemyStateList = new List <EnumyState>();
            _wayPoint       = new List <Vector3>();

            _wayPoint.Add(new Vector3(-127.0f, 1.6f, -132.0f));
            _wayPoint.Add(new Vector3(-127.0f, 1.6f, -227.0f));
            _wayPoint.Add(new Vector3(-127.0f, 1.6f, -418.0f));
            _wayPoint.Add(new Vector3(-288.0f, 1.6f, -420.0f));
            _wayPoint.Add(new Vector3(-452.0f, 1.6f, -418.0f));
            _wayPoint.Add(new Vector3(-452.0f, 1.6f, -277.0f));
            _wayPoint.Add(new Vector3(-452.0f, 1.6f, -132.0f));
            _wayPoint.Add(new Vector3(-614.0f, 1.6f, -132.0f));

            for (int i = 0; i < _wayPoint.Count; ++i)
            {
                int        EnemyTypeNum = Random.Range(0, Enemy.Length);
                GameObject EnemyObject  = Instantiate(Enemy[EnemyTypeNum]) as GameObject;
                EnemyObject.transform.position = _wayPoint[i];
                EnemyObject.gameObject.name    = "Enemy_" + i;
                ObjectUI objUI      = EnemyObject.AddComponent <ObjectUI>();
                var      enumyState = EnemyObject.GetComponent <EnumyState>();
                enumyState.SetHpBar(objUI);
                _enemyStateList.Add(enumyState);
            }
        }
    }
Beispiel #6
0
 private static EnemyStateManager GetInstance()
 {
     if (instance == null)
     {
         instance = FindObjectOfType <EnemyStateManager>();
     }
     return(instance);
 }
 public AttackingState(EnemyStateManager manager)
 {
     this.manager = manager;
     this.manager.regrouping = false;
     Debug.Log ("ATTACKING NOW");
     if (manager.target == null) {
         manager.target = manager.isTargetVisible ();
     }
 }
 public AttackingState(EnemyStateManager manager)
 {
     this.manager            = manager;
     this.manager.regrouping = false;
     Debug.Log("ATTACKING NOW");
     if (manager.target == null)
     {
         manager.target = manager.isTargetVisible();
     }
 }
    // Use this for initialization
    void Awake()
    {
        stateMan  = GetComponent <EnemyStateManager>();
        aimIk     = GetComponent <AimIK>();
        equipMan  = GetComponent <EnemyEquipmentManager>();
        abilities = GetComponent <EnemyAbilities>();

        //条件を否定
        ignoreMask = ~ignoreMask;
    }
 public void Enter(EnemyStateManager stateManager)
 {
     //Animation
     stateManager.Animator.SetBool("IsIdle", true);
     stateManager.Animator.SetBool("IsChasing", false);
     stateManager.Animator.SetBool("IsDashing", false);
     stateManager.IsDashing            = false;
     stateManager.Rigidbody2D.velocity = Vector2.zero;
     _currentAttackCooldown            = stateManager.AttackCooldown;
 }
 public void Update(EnemyStateManager stateManager)
 {
     if (stateManager.inRange && _currentAttackCooldown <= 0)
     {
         stateManager.TransitionToState(stateManager.ChaseState);
     }
     else
     {
         _currentAttackCooldown -= Time.deltaTime;
     }
 }
 public void Enter(EnemyStateManager stateManager)
 {
     //Animation
     stateManager.Animator.SetBool("IsIdle", false);
     stateManager.Animator.SetBool("IsChasing", false);
     stateManager.Animator.SetBool("IsDashing", false);
     _currentDashTime                  = stateManager.DashTime;
     _currentChargeUpTime              = _chargeUpTime;
     stateManager.IsDashing            = true;
     stateManager.Rigidbody2D.velocity =
         new Vector2(
             stateManager.transform.localScale.x * stateManager.DashSpeed,
             stateManager.Rigidbody2D.velocity.y);
 }
Beispiel #13
0
    IEnumerator SpawnEnemy()
    {
        float spawnDelay = 1f;

        Color initialColor = Color.white;
        Color flashColor   = Color.red;
        float spawnTimer   = 0f;

        while (spawnTimer < spawnDelay)
        {
            spawnTimer += Time.deltaTime;
            yield return(null);
        }

        Transform enemyToSpawn = enemiesToSpawn.Dequeue().enemyPrefab;

        Vector3 spawnPos = Vector3.zero;

        if (spawnPoints.Length > 0)
        {
            Transform spawnPoint    = spawnPoints[Random.Range(0, spawnPoints.Length)].transform;
            Vector3   spawnBox      = transform.localScale;
            Vector3   spawnPosition = new Vector3(Random.value * spawnBox.x, spawnBox.y, Random.value * spawnBox.z);
            spawnPosition = spawnPoint.TransformPoint(spawnPosition - spawnBox / 2);

            Ray        ray = new Ray(spawnPosition, Vector3.down);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                spawnPos = hit.point;
            }
        }

        if (enemyToSpawn != null)
        {
            Quaternion spawnRotation = Quaternion.Euler(0, Random.Range(0f, 360f), 0);
            GameObject spawnedEnemy  = Instantiate(enemyToSpawn, spawnPos + Vector3.up, spawnRotation).gameObject;

            EnemyStateManager enemySM = spawnedEnemy.GetComponentInParent <EnemyStateManager>();
            if (enemySM != null)
            {
                enemySM.OnDeath += OnEnemyDeath;
                enemySM.isRaged  = true;
            }
        }
    }
        public void Update(EnemyStateManager stateManager)
        {
            if (_currentChargeUpTime > 0)
            {
                _currentChargeUpTime -= Time.deltaTime;
                stateManager.Animator.SetBool("IsDashing", true);
            }

            if (_currentDashTime > 0 && _currentChargeUpTime <= 0)
            {
                _currentDashTime -= Time.deltaTime;
                stateManager.Rigidbody2D.velocity = new Vector2(
                    stateManager.transform.localScale.x * stateManager.DashSpeed,
                    stateManager.Rigidbody2D.velocity.y);
            }
            else if (_currentDashTime <= 0 || !stateManager.inRange)
            {
                stateManager.IsDashing = false;
                stateManager.TransitionToState(stateManager.IdleState);
            }
        }
 public RetreatingState(EnemyStateManager manager)
 {
     this.manager = manager;
     health       = manager.myStats.health;
 }
Beispiel #16
0
 public PatrollingState(EnemyStateManager manager)
 {
     this.manager = manager;
     manager.navMeshAgent.SetDestination(manager.target.transform.position);
 }
 public WanderingState(EnemyStateManager manager)
 {
     this.manager = manager;
 }
 public GuardingState(EnemyStateManager manager)
 {
     this.manager = manager;
     prevHealth = manager.myStats.health;
 }
Beispiel #19
0
 // Use this for initialization
 private void Awake()
 {
     equipMan  = GetComponent <EnemyEquipmentManager>();
     abilities = GetComponent <EnemyAbilities>();
     stateMan  = GetComponent <EnemyStateManager>();
 }
Beispiel #20
0
 void Start()
 {
     stateManager = GetComponent <EnemyStateManager>();
     enemy        = GetComponent <Enemy>();
     StartState();
 }
 public PatrollingState(EnemyStateManager manager)
 {
     this.manager = manager;
     manager.navMeshAgent.SetDestination (manager.target.transform.position);
 }
Beispiel #22
0
 public WanderingState(EnemyStateManager manager)
 {
     this.manager = manager;
 }
Beispiel #23
0
 public GuardingState(EnemyStateManager manager)
 {
     this.manager = manager;
     prevHealth   = manager.myStats.health;
 }
 public State(EnemyStateManager theManager) // Constructor that takes an argument.
 {
     manager = theManager;
 }
Beispiel #25
0
 public void Update(EnemyStateManager stateManager)
 {
 }
Beispiel #26
0
 public void Enter(EnemyStateManager stateManager)
 {
 }
 public RetreatingState(EnemyStateManager manager)
 {
     this.manager = manager;
     health = manager.myStats.health;
 }
    //public EnemyState(EnemyStageManager _enemy)
    //{
    //    enemy = _enemy;
    //}

    protected virtual void Start()
    {
        enemy = gameObject.GetComponent <EnemyStateManager>();
    }
 public EnemyStateFleeing(EnemyStateManager theManager) : base(theManager)
 {
 }
Beispiel #30
0
 public RunOutState(EnemyStateManager manager)
 {
     this.manager        = manager;
     manager.fieldOfView = 360;
 }
 public RunOutState(EnemyStateManager manager)
 {
     this.manager = manager;
     manager.fieldOfView = 360;
 }
 public FleeingState(EnemyStateManager manager)
 {
     this.manager = manager;
 }
 public EnemyStateWandering(EnemyStateManager theManager) : base(theManager)
 {
 }
Beispiel #34
0
 public EnemyStateSeeking(EnemyStateManager theManager) : base(theManager)
 {
 }
 public FleeingState(EnemyStateManager manager)
 {
     this.manager = manager;
 }