无法从“字符串”转换为“Photon.RealTime.AppSettings”
Posted
技术标签:
【中文标题】无法从“字符串”转换为“Photon.RealTime.AppSettings”【英文标题】:cannot convert from "string" to "Photon.RealTime.AppSettings" 【发布时间】:2021-03-31 08:29:14 【问题描述】:我正在尝试使用 photon 统一制作多人游戏,但出现“”错误。这可能是一些愚蠢的事情,所以我提前道歉。
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");
【问题讨论】:
哪些行会导致问题?此外,发生此错误是因为类型string
和 Photon.RealTime.AppSettings
之间没有转换。 string
是一种简单的文本类型,而后者可能是一种复杂的类型。
【参考方案1】:
如果您查看文档 PhotonNetwork.ConnectUsingSettings()
需要 AppSettings
类型,但您提供的是 string
类型。
你可以做的只是使用正确的类型,比如var appSettings = new AppSettings();
然后给这个类分配正确的属性,最后把这个对象提供给ConnectUsingSettings(appSettings)
【讨论】:
【参考方案2】:这是 PUN Classic 剩余代码。正如您在 PUN Classic to PUN 2 Migration Notes 上看到的那样:“PhotonNetwork.ConnectUsingSettings()
不再需要 gameVersion
参数。”由于 AppSettings 是可选参数,因此只需不带参数调用 PhotonNetwork.ConnectUsingSettings()
,PUN 2 将使用 PhotonServerSettings。
【讨论】:
以上是关于无法从“字符串”转换为“Photon.RealTime.AppSettings”的主要内容,如果未能解决你的问题,请参考以下文章