我想知道为什么这个错误发生在下面的代码中。
我在检查器中分配了对应的 GO(游戏对象)。
PhotonNetwork.ConnectUsingSettings、OnConnectedToMaster、OnJoinedLobby 工作正常
该方法On_PlayerNameInput_changed()
已分配给层次结构中的PlayerName InputField(并且PlayerName InputField作为PlayerNameScreen的子级)。
现在,我有这个代码
public class MenuManager : MonoBehaviourPunCallbacks
{
[SerializeField] private GameObject connectScreen, playerNameScreen, playerNameButton;
[SerializeField] private InputField createRoomInput, joinRoomInput, playerNameInput;
public void OnClick_PlayerNameButton()
{
PhotonNetwork.NickName = playerNameInput.text;
}
public void On_PlayerNameInput_changed()
{
if (playerNameInput.text.Length > 2 && playerNameInput.text.Length < 11)
playerNameButton.SetActive(true);
else
playerNameButton.SetActive(false);
}
并且没有显示警告,但如果我执行下一个:
public void On_PlayerNameInput_changed()
{
if (playerNameInput != null)
{
if (playerNameInput.text.Length > 2 && playerNameInput.text.Length < 11)
playerNameButton.SetActive(true);
else
playerNameButton.SetActive(false);
}
else
Debug.Log("PlayerNameInput is null");
}
立即出现下一条警告信息:
Assets\Scripts\MenuManager.cs(11,57):警告 CS0649:字段“MenuManager.playerNameButton”从未分配给,并且始终具有其默认值 null
Assets\Scripts\MenuManager.cs(14,56):警告 CS0649:字段 'MenuManager.playerNameInput' 从未分配给,并且始终具有其默认值 null
Assets\Scripts\MenuManager.cs(11,39):警告 CS0649:字段 'MenuManager.playerNameScreen' 从未分配给,并且始终具有其默认值 null
如图所示,GO 已经被拖放到 MenuManager 插槽中。
谢谢你的帮助。