質問編集履歴

1

質問を変えました

2020/05/04 10:47

投稿

creatorsGame
creatorsGame

スコア18

test CHANGED
@@ -1 +1 @@
1
- Unity Photon2 クイックッチングシテムを作りたい
1
+ Unity Photon2 最寄りのマスターサーバーに接続したい
test CHANGED
@@ -1,10 +1,12 @@
1
- UnityのPhoton2でサーバー(ルーム)を選択しなくても、勝手に接続してくれる、いわゆるクイックマッチングシステムを作りたいです。
1
+ 自動クライアントに最も近いマスターサーバーに接続するようにしたいです。
2
2
 
3
- 具体的には、StartMatch();関数が実行され、指定したPing値以下のルームすでにある場合に、その、ルームに参加し、指定したPing値以下のルームがない場合もしくはルームが満員の場合に、指定したPing値以下のルームを新たに作成するシステムを作りたいです。どう変更すれば良いでしょうか
3
+ 具体的にはOnClick関数が実行されたら最もPing値が低いルームに参加し、Ping値が指定した最大Ping値より高かった場合、最もPing値が低いルームを作成するようにしたいです。どう変更すれば良いでしょうか?
4
4
 
5
5
  ```c#
6
6
 
7
+
8
+
7
- public void StartMatch()
9
+ public void OnClick()
8
10
 
9
11
  {
10
12
 
@@ -14,19 +16,41 @@
14
16
 
15
17
  }
16
18
 
17
-
18
-
19
19
  public override void OnConnectedToMaster()
20
20
 
21
21
  {
22
22
 
23
+ PhotonNetwork.JoinRandomRoom();
24
+
25
+ }
26
+
27
+ public override void OnJoinRandomFailed(short returnCode, string message)
28
+
29
+ {
30
+
31
+ CreateRoom();
32
+
33
+ }
34
+
35
+ void CreateRoom()
36
+
37
+ {
38
+
23
- RoomOptions roomOps = new RoomOptions() { IsVisible = true, IsOpen = true, MaxPlayers = 10};
39
+ RoomOptions roomOps = new RoomOptions() { IsVisible = true, IsOpen = true, MaxPlayers = 2 };
24
40
 
25
41
  int randomRoomNumber = Random.Range(0, 10000);
26
42
 
27
- PhotonNetwork.CreateRoom("Room" + randomRoomNumber,roomOps);
43
+ PhotonNetwork.CreateRoom("Room"+randomRoomNumber, roomOps, null);
28
44
 
29
45
  Debug.Log(randomRoomNumber);
46
+
47
+ }
48
+
49
+ public override void OnCreateRoomFailed(short returnCode, string message)
50
+
51
+ {
52
+
53
+ CreateRoom();
30
54
 
31
55
  }
32
56
 
@@ -40,6 +64,4 @@
40
64
 
41
65
  }
42
66
 
43
- }
44
-
45
67
  ```