dkk
Decapat
- Katılım
- 19 Nisan 2023
- Mesajlar
- 104
Daha fazla
- Sistem Özellikleri
- Windows 10 Pro
İşlemci Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz 2.59 GHz
Takılı RAM 8,00 GB
64 bit
- Cinsiyet
- Diğer
Unity 3D de photon yardımı ile Online FPS oyunu yapıyorum. Fakat,
Böyle bir hata veriyor. Kodlarım şunlar: 1. kodum: Launcher. CS.
2. kodum: Playerlistıtem. CS.
Birkaç. CS dosyam daha var ama bu değişkenleri o kodlarda kullanmadığım için paylaşmadım. Yardım edebilirseniz sevinirim.
Böyle bir hata veriyor. Kodlarım şunlar: 1. kodum: Launcher. CS.
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;
using TMPro;
public class Launcher : MonoBehaviourPunCallbacks
{
public static Launcher Instance;
[SerializeField] TMP_InputField roomNameInputField;
[SerializeField] TMP_Text errorText;
[SerializeField] TMP_Text roomNameText;
[SerializeField] Transform roomListContent;
[SerializeField] Transform playerListContent;
[SerializeField] GameObject roomListItemPrefab;
[SerializeField] GameObject PlayerListItemPrefab;
void Awake()
{
Instance = this;
}
// Start is called before the first frame update.
void Start()
{
Debug.Log("Bağlanıyor");
PhotonNetwork.ConnectUsingSettings();
}
public override void OnConnectedToMaster()
{
Debug.Log("Bağlandı");
PhotonNetwork.JoinLobby();
}
public override void OnJoinedLobby()
{
MenuManager.Instance.OpenMenu("title");
Debug.Log("Lobiye Bağlandı");
PhotonNetwork.NickName = "Player" + Random.Range(0, 1000).ToString("0000");
}
public void CreateRoom()
{
if(string.IsNullOrEmpty(roomNameInputField.text))
{
return;
}
PhotonNetwork.CreateRoom(roomNameInputField.text);
MenuManager.Instance.OpenMenu("loading");
}
public override void OnJoinedRoom()
{
MenuManager.Instance.OpenMenu("room");
roomNameText.text = PhotonNetwork.CurrentRoom.Name;
Player[] players = PhotonNetwork.PlayerList;
for (int i = 0; i < players.Count(); i++)
{
Instantiate(PlayerListItemPrefab, playerListContent).GetComponent<PlayerListItem>().SetUp(players[i]);
}
}
public override void OnCreateRoomFailed(short returnCode, string message)
{
errorText.text = "Oda Oluşturulamadı: " + message;
MenuManager.Instance.OpenMenu("error");
}
public void LeaveRoom()
{
PhotonNetwork.LeaveRoom();
MenuManager.Instance.OpenMenu("loading");
}
public void JoinRoom(RoomInfo info)
{
PhotonNetwork.JoinRoom(info.Name);
MenuManager.Instance.OpenMenu("loading");
}
public override void OnLeftRoom()
{
MenuManager.Instance.OpenMenu("title");
}
public override void OnRoomListUpdate(List<RoomInfo> roomList)
{
foreach(Transform trans in roomListContent)
{
Destroy(trans.gameObject);
}
for(int i = 0; i < roomList.Count; i++)
{
Instantiate(roomListItemPrefab, roomListContent).GetComponent<RoomListItem>().SetUp(roomList[i]);
}
}
public override void OnPlayerEnteredRoom(Player newPlayer)
{
Instantiate(PlayerListItemPrefab, playerListContent).GetComponent<PlayerListItem>().SetUp(newPlayer);
}
}
2. kodum: Playerlistıtem. CS.
C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using Photon.Realtime;
using TMPro;
public class PlayerListItem : MonoBehaviourPunCallbacks
{
[SerializeField] TMP_Text text;
Player player;
public void SetUp(Player _player)
{
player = _player;
text.text = _player.NickName;
}
public override void OnPlayerLeftRoom(Player otherPlayer)
{
if (player == otherPlayer)
{
Destroy(gameObject);
}
}
public override void OnLeftRoom()
{
Destroy(gameObject);
}
}
Birkaç. CS dosyam daha var ama bu değişkenleri o kodlarda kullanmadığım için paylaşmadım. Yardım edebilirseniz sevinirim.
Son düzenleyen: Moderatör: