// 更新 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); } } }
//更新 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); } }