Unity 3D error CS106 hatası

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,

1691248316317.png


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:
Kod:
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.length; 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);
 }

}

Kodu bununla değiştir, ama bu çok temel seviye bir problem, bence biraz C# öğrenmelisin.
 
Kod:
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.length; 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);
 }

}

Kodu bununla değiştir, ama bu çok temel seviye bir problem, bence biraz C# öğrenmelisin.
yazdığınız kod için teşekkürler fakat ben daha kolay bir çözüm buldum: kodun başına
using System.Linq;

eklemek. haklısınız biraz daha eğitim almam lazım.
 
Hatayı ve kodları komple kopyalayıp ChatGPT'ye at. Altına da "Unity ile geliştirdiğim oyunda böyle bir hatayla karşılaştım" yaz.

Eminim sorunu çözecektir. Ben de Unity kullanıyorum ve sorunlarımın çoğunu çözüyor.
 
Hatayı ve kodları komple kopyalayıp ChatGPT'ye at. Altına da "Unity ile geliştirdiğim oyunda böyle bir hatayla karşılaştım" yaz.

Eminim sorunu çözecektir. Ben de Unity kullanıyorum ve sorunlarımın çoğunu çözüyor.
Hatayı da altına kopyalamak daha iyi olur, bazen kendisi çözemiyor.
 
Hatayı ve kodları komple kopyalayıp ChatGPT'ye at. Altına da "Unity ile geliştirdiğim oyunda böyle bir hatayla karşılaştım" yaz.

Eminim sorunu çözecektir. Ben de Unity kullanıyorum ve sorunlarımın çoğunu çözüyor.
kolay yoldan o çözsün diyorsunuz :D
 

Technopat Haberler

Geri
Yukarı