示例#1
0
    // 更新
    void Update()
    {
        //レーダ表示マップ
        float   x = 0, z = 0;
        Vector3 euler = new Vector3();

        //他のシーンとマージしている場合はPlayerシーンから座標を取得
        if (MergeScenes.IsMerge())
        {
            x     = PlayerXYZ.GetPlayerPosition("px");
            z     = PlayerXYZ.GetPlayerPosition("pz");
            euler = PlayerXYZ.GetPlayerRotation();
        }
        else
        {
            x     = m_target.transform.position.x;
            z     = m_target.transform.position.z;
            euler = m_target.transform.localEulerAngles;
        }
        m_raderPlayer.transform.position = new Vector3(x, 10, z);               //プレイヤーの座標を更新
        m_raderPlayer.transform.rotation = Quaternion.Euler(90, 0, -euler.y);   //プレイヤーの回転を更新
        m_raderCamera.transform.position = new Vector3(x, 200, z);              //プレイヤーの真上にカメラをセット
        m_raderCamera.transform.rotation = Quaternion.Euler(90, euler.y, 0);    //カメラを真下に向ける

        //TabキーでマップON/OFF
        if (Input.GetKeyDown(KeyCode.Tab))
        {
            if (m_miniMap.activeSelf)
            {
                m_miniMap.SetActive(false);
                m_wholeMap.SetActive(true);
            }
            else
            {
                m_miniMap.SetActive(true);
                m_wholeMap.SetActive(false);
            }
        }
    }
示例#2
0
    //更新
    void Update()
    {
        float x, y;

        //マップ選択、切替時に動くようにする
        if (MergeScenes.IsMerge())
        {
            //プレイヤー座標取得
            x = PlayerXYZ.GetPlayerPosition("px") / MapInitializer.MAP_SCALE;
            y = PlayerXYZ.GetPlayerPosition("pz") / MapInitializer.MAP_SCALE;
        }
        else
        {
            //仮プレイヤー座標取得
            x = (target.transform.position.x) / MapInitializer.MAP_SCALE;
            y = (target.transform.position.z) / MapInitializer.MAP_SCALE;
        }

        //リスト内の部屋のどれかに入ったら
        int nowId = -1;

        foreach (KeyValuePair <int, Room> room in m_roomList)
        {
            //部屋の範囲内に対象がいるとき
            //※条件で座標誤差分を足し引きしている
            if (room.Value.Start.X - 1.0f < x && room.Value.End.X + 1.0f > x)
            {
                if (room.Value.Start.Y - 1.0f < y && room.Value.End.Y + 1.0f > y)
                {
                    nowId = room.Key;
                    break;
                }
            }
        }

        //スタート部屋の場合は敵はでない
        if (nowId == m_startId)
        {
            return;
        }

        //部屋IDが違う場合のみ更新
        if (nowId != m_roomId)
        {
            m_roomId = nowId;

            // 部屋閉じる

            // 敵スポーン起動
            if (m_roomId != -1)
            {
                //面積10の数に応じて敵を生成
                int calc = m_roomList[m_roomId].calcArea();
                int num  = calc / 10;
                for (int i = 0; i < num; i++)
                {
                    GameObject _enemy = SelectEnemyDifficult();
                    PopEnemy(_enemy);
                }
            }
            Debug.Log(m_roomId);
        }
    }