Пример #1
0
    public void Init(RESPAWN_TYPE respawnType)
    {
        var pos = Vector3.zero;

        switch (respawnType)
        {
        case RESPAWN_TYPE.UP:
            pos.x       = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y       = m_respawnPosOutside.y;
            m_direction = Vector2.down;
            break;

        case RESPAWN_TYPE.RIGHT:
            pos.x       = m_respawnPosOutside.x;
            pos.y       = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.left;
            break;

        case RESPAWN_TYPE.DOWN:
            pos.x       = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y       = m_respawnPosOutside.y;
            m_direction = Vector2.up;
            break;

        case RESPAWN_TYPE.LEFT:
            pos.x       = m_respawnPosOutside.x;
            pos.y       = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.right;
            break;
        }

        transform.localPosition = pos;
    }
Пример #2
0
    // 敵の移動の方向を決める関数
    public Vector2 MoveSlanting(Vector2 position, RESPAWN_TYPE respawnType)
    {
        Vector2 direction = Vector2.zero;

        switch (respawnType)
        {
        // 出現位置が上だった時
        case RESPAWN_TYPE.UP:
            // 中心より右側か左側か
            if (position.x < 0)
            {
                direction = new Vector2(Random.Range(0.0f, 1.0f), -1.0f);
            }
            else
            {
                direction = new Vector2(Random.Range(-1.0f, 0.0f), -1.0f);
            }
            break;

        // 出現位置が右だった時
        case RESPAWN_TYPE.RIGHT:
            if (position.y < 0)
            {
                direction = new Vector2(-1.0f, Random.Range(0.0f, 1.0f));
            }
            else
            {
                direction = new Vector2(-1.0f, Random.Range(-1.0f, 0.0f));
            }
            break;

        case RESPAWN_TYPE.DOWN:
            // 中心より右側か左側か
            if (position.x < 0)
            {
                direction = new Vector2(Random.Range(0.0f, 1.0f), 1.0f);
            }
            else
            {
                direction = new Vector2(Random.Range(-1.0f, 0.0f), 1.0f);
            }
            break;

        case RESPAWN_TYPE.LEFT:
            if (position.y < 0)
            {
                direction = new Vector2(1.0f, Random.Range(0.0f, 1.0f));
            }
            else
            {
                direction = new Vector2(1.0f, Random.Range(-1.0f, 0.0f));
            }
            break;
        }
        return(direction);
    }
Пример #3
0
    // 敵が出現する時に初期化する関数
    public void Init(RESPAWN_TYPE respawnType)
    {
        var pos = Vector3.zero;

        // 指定された出現位置の種類に応じて、
        // 出現位置と進行方向を決定する
        switch (respawnType)
        {
        // 出現位置が上の場合
        case RESPAWN_TYPE.UP:
            transform.Rotate(new Vector3(0, 0, 90));
            pos.x = Random.Range(
                -m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y = m_respawnPosOutside.y;

            m_direction = Vector2.down;

            break;

        // 出現位置が右の場合
        case RESPAWN_TYPE.RIGHT:

            transform.Rotate(new Vector3(0, 0, 0));
            pos.x = m_respawnPosOutside.x;
            pos.y = Random.Range(
                -m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.left;
            break;

        // 出現位置が下の場合
        case RESPAWN_TYPE.DOWN:
            transform.Rotate(new Vector3(0, 0, -90));
            pos.x = Random.Range(
                -m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y       = -m_respawnPosOutside.y;
            m_direction = Vector2.up;
            break;

        // 出現位置が左の場合
        case RESPAWN_TYPE.LEFT:
            transform.Rotate(new Vector3(0, 0, 180));
            pos.x = -m_respawnPosOutside.x;
            pos.y = Random.Range(
                -m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.right;
            break;
        }

        // 位置を反映する
        transform.localPosition = pos;
    }
Пример #4
0
    // 敵が出現する時に初期化する関数
    public void Init(RESPAWN_TYPE respawnType)
    {
        var pos = Vector3.zero;

        // 指定された出現位置の種類に応じて、
        // 出現位置と進行方向を決定する
        switch (respawnType)
        {
        // 出現位置が上の場合
        case RESPAWN_TYPE.UP:
            pos.x       = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y       = m_respawnPosOutside.y;
            m_direction = Vector2.down;
            break;

        // 出現位置が右の場合
        case RESPAWN_TYPE.RIGHT:
            pos.x       = m_respawnPosOutside.x;
            pos.y       = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.left;
            break;

        // 出現位置が下の場合
        case RESPAWN_TYPE.DOWN:
            pos.x       = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y       = -m_respawnPosOutside.y;
            m_direction = Vector2.up;
            break;

        // 出現位置が左の場合
        case RESPAWN_TYPE.LEFT:
            pos.x       = -m_respawnPosOutside.x;
            pos.y       = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.right;
            break;
        }

        // 位置を反映する
        transform.localPosition = pos;

        // プレイヤーを追尾しない敵の場合
        if (!m_isFollow)
        {
            // 10 秒後には画面外に出ていると予想して、
            // 10 秒後に削除する
            Destroy(gameObject, 10);
        }
    }
Пример #5
0
    // 敵が出現する時に初期化する関数
    public void Init(RESPAWN_TYPE respawnType)
    {
        Vector2 pos = Vector3.zero;

        // 指定された出現位置の種類に応じて、出現位置と進行方向を決定する
        switch (respawnType)
        {
        // 出現位置が上の場合
        case RESPAWN_TYPE.UP:
            pos.x = Random.Range(
                -m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y = m_respawnPosOutside.y;
            break;

        // 出現位置が右の場合
        case RESPAWN_TYPE.RIGHT:
            pos.x = m_respawnPosOutside.x;
            pos.y = Random.Range(
                -m_respawnPosInside.y, m_respawnPosInside.y);
            break;

        // 出現位置が下の場合
        case RESPAWN_TYPE.DOWN:
            pos.x = Random.Range(
                -m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y = -m_respawnPosOutside.y;
            break;

        // 出現位置が左の場合
        case RESPAWN_TYPE.LEFT:
            pos.x = -m_respawnPosOutside.x;
            pos.y = Random.Range(
                -m_respawnPosInside.y, m_respawnPosInside.y);
            break;
        }

        m_direction = MoveSlanting(pos, respawnType);
        // 位置を反映する
        transform.localPosition = pos;
    }
Пример #6
0
    // 敵が出現する時に初期化する関数
    public void Init(RESPAWN_TYPE respawnType)
    {
        var pos = Vector3.zero;

        // 指定された出現位置の種類に応じて、出現位置と進行方向を決定
        switch (respawnType)
        {
        // 上
        case RESPAWN_TYPE.UP:
            pos.x       = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y       = m_respawnPosOutside.y;
            m_direction = Vector2.down;
            break;

        // 右
        case RESPAWN_TYPE.RIGHT:
            pos.x       = m_respawnPosOutside.x;
            pos.y       = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.left;
            break;

        // 下
        case RESPAWN_TYPE.DOWN:
            pos.x       = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y       = -m_respawnPosOutside.y;
            m_direction = Vector2.up;
            break;

        // 左
        case RESPAWN_TYPE.LEFT:
            pos.x       = -m_respawnPosOutside.x;
            pos.y       = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.right;
            break;
        }

        // 位置を反映する
        transform.localPosition = pos;
    }
Пример #7
0
    public void Init(RESPAWN_TYPE respawnType)
    {
        var pos = Vector3.zero;

        switch (respawnType)
        {
        case RESPAWN_TYPE.UP:
            pos.x       = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y       = m_respawnPosOutside.y;
            m_direction = Vector2.down;
            break;

        case RESPAWN_TYPE.RIGHT:
            pos.x       = m_respawnPosOutside.x;
            pos.y       = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.left;
            break;

        case RESPAWN_TYPE.DOWN:
            pos.x       = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x);
            pos.y       = -m_respawnPosOutside.y;
            m_direction = Vector2.up;
            break;

        case RESPAWN_TYPE.LEFT:
            pos.x       = -m_respawnPosOutside.x;
            pos.y       = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y);
            m_direction = Vector2.right;
            break;

        case RESPAWN_TYPE.SIZEOF:
            break;

        default:
            throw new ArgumentOutOfRangeException(nameof(respawnType), respawnType, null);
        }

        transform.localPosition = pos;
    }