Я хотел бы знать, почему эта ошибка происходит в коде ниже.
Я назначил корреспондента GO (игровые объекты) в инспекторе.
PhotonNetwork.ConnectUsingSettings, OnConnectedToMaster, OnJoinedLobby работает нормально
Метод On_PlayerNameInput_changed()
уже PlayerName InputField в иерархии (и PlayerName InputField как PlayerNameScreen , дочерний элемент).
GO подключен к MenuManager GO слотов
Теперь у меня есть этот код
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.
Спасибо за любую помощь.