Example #1
0
    void DirectionState()
    {
        if (e_dir != Vector3.zero)
        {
            float dir_angle = Mathf.Atan2(e_dir.y, e_dir.x) * Mathf.Rad2Deg;


            if (dir_angle < -135.0f || dir_angle >= 135.0f)
            {
                //RIGHT
                e_dir_state = Enemy_direction.E_RIGHT;
            }
            else if (dir_angle < 45.0F && dir_angle >= -45.0f)
            {
                //LEFT
                e_dir_state = Enemy_direction.E_RIGHT;
            }
            else if (dir_angle < 135.0f && dir_angle >= 45.0f)
            {
                //DOWN
                e_dir_state = Enemy_direction.E_RIGHT;
            }
            else if (dir_angle < -45.0f && dir_angle >= -135.0f)
            {
                //UP
                e_dir_state = Enemy_direction.E_RIGHT;
            }
        }
        else
        {
            e_dir_state = Enemy_direction.E_RIGHT;
        }
    }
Example #2
0
    // Update is called once per frame
    void Update()
    {
        if (prev_state != enemy_behaviour.e_state || prev_dir != enemy_behaviour.e_dir_state)
        {
            StateChange();
        }

        prev_state = enemy_behaviour.e_state;
        prev_dir   = enemy_behaviour.e_dir_state;
    }