无法从“字符串”转换为“Photon.RealTime.AppSettings”

问题描述

我正在尝试使用光子统一制作多人游戏,但我收到“无法从“字符串”转换为“Photon.RealTime.AppSettings”“错误。这可能是愚蠢的事情,所以我提前道歉。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Photon.Pun;
using Photon.Realtime;

public class MenuControler : MonoBehavIoUr
{
    [Serializefield] private string VersionName = "0.1";
    [Serializefield] private GameObject UsernameMenu;
    [Serializefield] private GameObject ConnectPanel;
    
    [Serializefield] private InputField UsernameInput;
    [Serializefield] private InputField CreateGameInput;
    [Serializefield] private InputField JoinGameInput;
    
    private void Awake()
    {
        // Error happens here
        PhotonNetwork.ConnectUsingSettings(VersionName);
    }
    
    private void Start()
    {
        UsernameMenu.SetActive(true);
    }

    private void OnConnectedToMaster()
    {
        PhotonNetwork.JoinLobby(TypedLobby.Default);
        Debug.Log("Connected");
    }
}

解决方法

如果您查看文档 PhotonNetwork.ConnectUsingSettings() 需要输入 AppSettings 但您提供的是 string 类型。

您可以做的只是使用正确的类型,例如 var appSettings = new AppSettings();

然后给这个类分配正确的属性,最后把这个对象提供给ConnectUsingSettings(appSettings)

,

这是一个 PUN Classic 剩余代码。正如您在 PUN Classic to PUN 2 Migration Notes 上所读到的:“PhotonNetwork.ConnectUsingSettings() 不再需要 gameVersion 参数。”而且由于 AppSettings 是一个可选参数,因此只需调用不带参数的 PhotonNetwork.ConnectUsingSettings(),PUN 2 将使用光子服务器设置。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...