Example #1
0
    void Awake()
    {
        base.Awake();

        eValue    = EnemyValue.Rush;
        rushState = EnemyRushState.Ready;
    }
Example #2
0
    void RushStateUpdate()
    {
        switch (rushState)
        {
        case EnemyRushState.Ready:
            nowReadyTime += Time.deltaTime;

            if (nowReadyTime >= readyTime)
            {
                rushState = EnemyRushState.Start;
            }

            break;

        case EnemyRushState.Start:

            break;

        case EnemyRushState.Rush:
            break;

        case EnemyRushState.Attack:
            break;
        }
    }
Example #3
0
    void RushCheckUpdate()
    {
        if (nowRushCoolTime > 0 || eState == EnemyState.Rush)
        {
            return;
        }


        if (Vector2.Distance(hero.transform.position, this.transform.position) <= maxRushDis)
        {
            LayerMask    wallLayer = 1 << LayerMask.NameToLayer("Wall");
            RaycastHit2D hit       = Physics2D.Raycast(hpPos.transform.position, isLeft ? Vector2.left : Vector2.right, wallMaxDis, wallLayer);


            if (hit != null)
            {
                eState    = EnemyState.Rush;
                rushState = EnemyRushState.Ready;

                rushStartPos = this.transform.position;

                nowReadyTime = 0f;
            }



            // LayerMask ignoreLayer = 1 << LayerMask.NameToLayer("Plat") | 1 << LayerMask.NameToLayer("Wall");
            // RaycastHit2D hit = Physics2D.Raycast(ropeStart.transform.position, direction, Mathf.Infinity, ignoreLayer); //cast downwards
        }
    }