问题描述
我正在尝试使用光子统一制作多人游戏,但我收到“无法从“字符串”转换为“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 将使用光子服务器设置。