TomdieBratwurst Posted April 16, 2022 Report Share Posted April 16, 2022 Ich programmiere gerade einen Multiplayer für mein spiel ich nutze dafür PUN 2 Ich habe eine tutorial reihe verfolgt und alles genau so gemacht trotzdem bekomme ich folgenden error : unity script error cs115 no suitable method found to override Der Fehler ist ganz unten bei( public override void OnPlayerEnteredRoom(Player newPlayer) und public override void OnPlayerLeftRoom(Player otherPlayer)) hier mein code: using System.Collections; using System.Collections.Generic; using UnityEngine; using Photon.Pun; using Photon.Realtime; using UnityEngine.UI; public class LobbyManager : MonoBehaviourPunCallbacks { public InputField roomInputField; public GameObject lobbyPanel; public GameObject roomPanel; public Text roomName; public RoomItem roomItemPrefab; List<RoomItem> roomItemsList = new List<RoomItem>(); public Transform contentObject; public float timeBetweenUpdates = 1.5f; float nextUpdateTime; public List<PlayerItem> playerItemsList = new List<PlayerItem>(); public PlayerItem playerItemPrefab; public Transform playerItemParent; private void Start() { PhotonNetwork.JoinLobby(); } public void OnClickCreate() { if (roomInputField.text.Length >= 1) { PhotonNetwork.CreateRoom(roomInputField.text, new RoomOptions() { MaxPlayers = 3 }); } } public override void OnJoinedRoom() { lobbyPanel.SetActive(false); roomPanel.SetActive(true); roomName.text = "Room Name: " + PhotonNetwork.CurrentRoom.Name; UpdatePlayerList(); } public override void OnRoomListUpdate(List<RoomInfo> roomList) { if (Time.time >= nextUpdateTime) { UpdateRoomList(roomList); nextUpdateTime = Time.time + timeBetweenUpdates; } } void UpdateRoomList(List<RoomInfo> list) { foreach (RoomItem item in roomItemsList) { Destroy(item.gameObject); } roomItemsList.Clear(); foreach (RoomInfo room in list) { RoomItem newRoom = Instantiate(roomItemPrefab, contentObject); newRoom.SetRoomName(room.Name); roomItemsList.Add(newRoom); } } public void JoinRoom(string roomName) { PhotonNetwork.JoinRoom(roomName); } public void OnClickLeaveRoom() { PhotonNetwork.LeaveRoom(); } public override void OnLeftRoom() { roomPanel.SetActive(false); lobbyPanel.SetActive(true); } public override void OnConnectedToMaster() { PhotonNetwork.JoinLobby(); } void UpdatePlayerList() { foreach (PlayerItem item in playerItemsList) { Destroy(item.gameObject); } playerItemsList.Clear(); foreach (KeyValuePair<int, Player> player in PhotonNetwork.CurrentRoom.Players) { PlayerItem newPlayerItem = Instantiate(playerItemPrefab, playerItemParent); playerItemsList.Add(newPlayerItem); } } public override void OnPlayerEnteredRoom(Player newPlayer) { UpdatePlayerList(); } public override void OnPlayerLeftRoom(Player otherPlayer) { UpdatePlayerList(); } } Quote Link to comment Share on other sites More sharing options...
SkipToPlay Posted April 16, 2022 Report Share Posted April 16, 2022 Nach meinem Verständnis sucht das Skript durch das "override" Schlüsselwort nach einer "virtual" Methode in der Basis-Klasse. Wurden die Implementation dieser beiden Methoden möglicherweise in der MonoBehaviourPunCallbacks Klasse vergessen? Falls dessen Existenz nicht gewünscht ist, sollte sich das Problem lösen, wenn du in deinem Code das "override" schlüsselwort entfernst Quote Link to comment Share on other sites More sharing options...
TomdieBratwurst Posted April 17, 2022 Author Report Share Posted April 17, 2022 vor 7 Stunden schrieb SkipToPlay: Nach meinem Verständnis sucht das Skript durch das "override" Schlüsselwort nach einer "virtual" Methode in der Basis-Klasse. Wurden die Implementation dieser beiden Methoden möglicherweise in der MonoBehaviourPunCallbacks Klasse vergessen? Falls dessen Existenz nicht gewünscht ist, sollte sich das Problem lösen, wenn du in deinem Code das "override" schlüsselwort entfernst von wo genau soll ich das override entfernen wenn ich das unten bei den fehlern entferne kommt ein neuer error Quote Link to comment Share on other sites More sharing options...
TomdieBratwurst Posted April 17, 2022 Author Report Share Posted April 17, 2022 vor 7 Stunden schrieb SkipToPlay: Nach meinem Verständnis sucht das Skript durch das "override" Schlüsselwort nach einer "virtual" Methode in der Basis-Klasse. Wurden die Implementation dieser beiden Methoden möglicherweise in der MonoBehaviourPunCallbacks Klasse vergessen? Falls dessen Existenz nicht gewünscht ist, sollte sich das Problem lösen, wenn du in deinem Code das "override" schlüsselwort entfernst Und was könnte ich denn vergessen haben was muss ich hinzufügen Quote Link to comment Share on other sites More sharing options...
SkipToPlay Posted April 17, 2022 Report Share Posted April 17, 2022 Ich kenne mich mit diesem PUN nicht aus. Angenommen, du musstest in deiner Tutorial-Reihe das Skript "MonoBehaviourPunCallbacks" schreiben. In diesem Fall würde ich dir raten, dir die Teile dieser Reihe worum es um diese Teilkomponente geht nochmal anzuschauen und zu prüfen, ob du irgendwo vergessen hast Methoden mit den Namen "OnPlayerEnteredRoom" oder "OnPlayerLeftRoom" anzulegen. Sofern dieses Skript mit dem PUN-Paket mitgeliefert wird, empfehle ich dir die Videos nochmal anzuschauen, in dem die "OnPlayerEnteredRoom" und "OnPlayerLeftRoom" Methoden im LobbyManager-Skript implementiert werden. Hier darauf achten, ob tatsächlich das "override" Schlüsselwort erforderlich war. Falls das der Fall war, sollte man eventuell prüfen, ob man wirklich die selbe PUN Version wie im Video verwendet. Hier kann es helfen, das override Schlüsselwort in den letzten beiden Methoden deines Codes zu entfernen. btw. in der Regel reicht es aus, eine Frage nur einmal in einem Forum zu stellen Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.