alp giray altunsoy
Decapat
- Katılım
- 14 Mart 2023
- Mesajlar
- 15
Daha fazla
- Sistem Özellikleri
- İntel core i5-12500-H 12. nesil cpu RTX-3050 Ti LAPTOP GPU windows 11
- Cinsiyet
- Erkek
Bu kod start game buttona basılınca oyun sahnesine atmıyor yani başlatmıyor.
Kodum:
Kodum:
C#:
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;
using TMPro;
using UnityEngine.UI;
public class RoomManager : MonoBehaviourPunCallbacks
{
public Button createRoomButton;
public Button joinRoomButton;
public TMP_InputField roomCodeInput;
public TMP_Text roomCodeText;
public GameObject playerPanelPrefab;
public Transform playerPanelContainer;
public TMP_Text statusText;
public Button startGameButton;
private string roomCode;
void Start()
{
if (!PhotonNetwork.IsConnected)
{
PhotonNetwork.ConnectUsingSettings();
startGameButton.onClick.AddListener(StartGame);
}
// Butonlara tıklama olaylarını bağla.
createRoomButton.onClick.AddListener(CreateRoom);
joinRoomButton.onClick.AddListener(JoinRoom);
joinRoomButton.interactable = false;
startGameButton.gameObject.SetActive(false);
}
public override void OnConnectedToMaster()
{
Debug.Log("Bağlantı başarılı! Master server'a bağlandınız.");
joinRoomButton.interactable = true;
}
void CreateRoom()
{
roomCode = "Room_" + Random.Range(1000, 9999).ToString();
RoomOptions roomOptions = new RoomOptions();
roomOptions.MaxPlayers = 10;
if (PhotonNetwork.IsConnectedAndReady)
{
PhotonNetwork.CreateRoom(roomCode, roomOptions, TypedLobby.Default);
roomCodeText.text = "Oda Kodu: " + roomCode;
Debug.Log("Yeni oda oluşturuldu: " + roomCode);
}
else.
{
Debug.LogError("Photon sunucusuna bağlanırken bir hata oluştu.");
roomCodeText.text = "Bağlantı hatası! Tekrar deneyin.";
}
}
void JoinRoom()
{
string inputRoomCode = roomCodeInput.text.Trim();
if (string.IsNullOrEmpty(inputRoomCode))
{
Debug.Log("Bir oda kodu girin.");
return;
}
if (PhotonNetwork.IsConnectedAndReady)
{
PhotonNetwork.JoinRoom(inputRoomCode);
playerPanelPrefab.SetActive(true);
}
else.
{
Debug.LogError("Photon sunucusuna bağlanırken bir hata oluştu.");
roomCodeText.text = "Bağlantı hatası! Tekrar deneyin.";
}
}
public override void OnJoinedRoom()
{
Debug.Log("Odaya katıldınız: " + PhotonNetwork.CurrentRoom.Name);
playerPanelPrefab.SetActive(true);
UpdatePlayerCount();
statusText.text = "Odaya katıldınız!";
if (PhotonNetwork.IsMasterClient)
{
startGameButton.gameObject.SetActive(true);
statusText.text = "Oyun başlatılabilir!";
startGameButton.onClick.AddListener(StartGame);
}
CreatePlayerPanel();
}
public override void OnPlayerEnteredRoom(Player newPlayer)
{
Debug.Log(newPlayer.NickName + " odaya katıldı!");
UpdatePlayerCount();
}
public override void OnPlayerLeftRoom(Player otherPlayer)
{
Debug.Log(otherPlayer.NickName + " odadan ayrıldı!");
UpdatePlayerCount();
}
void UpdatePlayerCount()
{
int playerCount = PhotonNetwork.CurrentRoom.PlayerCount;
statusText.text = "PLAYER COUNT: " + playerCount.ToString();
if (playerCount == PhotonNetwork.CurrentRoom.MaxPlayers)
{
statusText.text = "Oda doldu. Oyunu başlatabilirsiniz!";
}
else.
{
statusText.text = "Odaya daha fazla oyuncu bekleniyor...";
}
}
public void StartGame()
{
if (PhotonNetwork.IsMasterClient)
{
Debug.Log("Oyunu başlatma...");
string sceneName = "Scenes/Game";
PhotonNetwork.LoadLevel(sceneName);
}
else.
{
Debug.LogWarning("Sadece oda sahibi oyunu başlatabilir.");
}
}
public override void OnCreateRoomFailed(short returnCode, string message)
{
Debug.LogError("Oda oluşturulamadı: " + message);
roomCodeText.text = "Oda oluşturulamadı. Tekrar deneyin.";
}
public override void OnJoinRoomFailed(short returnCode, string message)
{
Debug.LogError("Odaya katılamadınız: " + message);
roomCodeText.text = "Odaya katılamadınız. Oda kodunu kontrol edin.";
}
public void CreatePlayerPanel()
{
if (playerPanelPrefab != null && playerPanelContainer != null)
{
GameObject playerPanel = Instantiate(playerPanelPrefab, playerPanelContainer);
playerPanel.SetActive(true);
Debug.Log("Oyuncu paneli oluşturuldu: " + playerPanel.name);
}
else.
{
Debug.LogError("playerPanelPrefab veya playerPanelContainer null!");
}
playerPanelPrefab.SetActive(true);
}
}