首页 > 解决方案 > photonView 和光子网络

问题描述

我对 PhotonNetwork 的连接有一点问题。我想按 L 向我显示玩家列表。一切正常,但是当我运行游戏并按 L 时,Unity 显示没有人加入。请帮帮我。它还写了 ID 为 1 的 PhotonView 没有用 PunRPC 或 @PunRPC(JS) 属性标记的方法“GraczWszedł”!参数:PhotonPlayer UnityEngine.Debug:LogError(Object)。

using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
using Debug = UnityEngine.Debug;
using Photon.Realtime;
using UnityEngine.SceneManagement;

public class MenadzerPolaczen : Photon.MonoBehaviour
{

    void Start(){

    }

    void Update(){
        if (Input.GetKeyDown(KeyCode.L))
            Gracz.DebugListyGraczy();
    }

    public void Polacz() {
        PhotonNetwork.ConnectUsingSettings("Dunkierka_1.0");
    }

    void OnGUI() {
        GUI.Label(new Rect(0, 0, 200, 20),  PhotonNetwork.connectionStateDetailed.ToString());
    }

    void OnJoinedLobby(){
        SceneManager.LoadScene(1);
    }

    void OnPhotonRandomJoinFailed(){
        PhotonNetwork.CreateRoom(null);
    }

    void OnLevelWasLoaded(int level) {
        if (level != 0)
            PhotonNetwork.JoinRandomRoom();
    }

    void OnPhotonPlayerConnected(PhotonPlayer pp) {

    }

    void OnPhotonPlayerDisconnected(PhotonPlayer pp) {

    }

    [PunRPC]
    public void GraczWszedl(PhotonPlayer pp){
        Gracz gracz = new Gracz();        
        gracz.nick = pp.NickName;
        gracz.pp = pp;
        Gracz.gracze.Add(gracz);
    }

    [PunRPC]
    void GraczWyszedl(PhotonPlayer pp) {

    }

    void OnCreatedRoom(){
        photonView.RPC(("GraczWszedł"), PhotonTargets.AllBuffered, PhotonNetwork.player);
    }
}

标签: unity3dmultiplayerphoton

解决方案


如果要列出玩家所在房间的玩家数量:

  1. 确保创建一个房间。

  2. 确保加入房间。

  3. PhotonNetwork.playerList 检索当前本地玩家房间中的所有玩家的列表以及该玩家本身。 https://documentation.help/Photon-v1.81/class_photon_network.html#a2dc5e6cba79f899d9952f804db35b2f3

  4. 您还可以通过设置 PhotonPlayer.customProperties https://documentation.help/Photon-v1.81/class_photon_player.html#af8815abb8edaafbe6bddbf328f9612fb列出所有玩家属性


推荐阅读