Я изучаю многопользовательскую среду Unity Photon, и мне нужна ваша помощь, < /p>
Player 1 создает комнату и сидит в лобби в комнате, игрок 2 начинает игру или находится в главном меню, входит в сцену в комнате, но не видит каких -либо комнат, < /p>
Мгновенно и могу присоединиться к этой комнате, очень странной, пытался выяснить ее с 3 дней, я попытался создать все вместе новое представление о прокрутке, новые кнопки, даже изменяли скрипт в 3 на 4 раза в зависимости от того, какой учебник на YouTube говорит, что написать, пожалуйста, помогите, < /p>
Ниже приведен код для создания комнаты, < /p>
< /p>
.public TMP_InputField input_Create;
public void CreateRoom()
{
if (input_Create.text.Length >= 2) // Ensure valid room name
{
PhotonNetwork.CreateRoom(input_Create.text, new RoomOptions() { MaxPlayers =
6, IsVisible = true, IsOpen = true }, TypedLobby.Default, null);
}
}
< /code>
Ниже приведен сценарий для получения списка комнаты, < /p>
public class RoomList : MonoBehaviourPunCallbacks
{
public GameObject RoomPrefab;
public GameObject[] AllRooms;
public override void OnRoomListUpdate(List roomList)
{
// Destroy any previous rooms
for (int i = 0; i < AllRooms.Length; i++)
{
if (AllRooms != null)
{
Destroy(AllRooms);
}
}
// Initialize the array of rooms
AllRooms = new GameObject[roomList.Count];
// Create new rooms based on the list received
for (int i = 0; i < roomList.Count; i++)
{
if (roomList.IsOpen && roomList.IsVisible && roomList.PlayerCount >=
1)
{
GameObject Room = Instantiate(RoomPrefab, Vector3.zero,
Quaternion.identity, GameObject.Find("Content").transform);
// Access Room component and set room details
RoomLegacy roomComponent = Room.GetComponent();
roomComponent.Name.text = roomList.Name + " (" +
roomList.PlayerCount + "/" + roomList.MaxPlayers + ")";
roomComponent.actualRoomName = roomList.Name; // Store the actual
room name for joining
AllRooms = Room;
}
}
}
}
< /code>
Существует Prefab -кнопка для комнатной кнопки, которая имеет код для соединения комнаты, < /p>
public TMP_Text Name; // UI element to display room name
public string actualRoomName; // Store the actual room name to join
public void JoinRoom()
{
// Ensure the client is ready and connected before joining
if (PhotonNetwork.IsConnectedAndReady && PhotonNetwork.InLobby)
{
PhotonNetwork.JoinRoom(actualRoomName); // Use the actual room name for
joining
}
else
{
Debug.LogError("Client is not ready.");
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... room-issue
Unity Photon присоединиться к комнате. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение