Это мой первый сетевой проект.Я пытался следовать некоторым урокам, и вот с чем я сталкиваюсь: я пытаюсь просто изменить логическое значение при нажатии кнопки.Кнопка находится в одной сцене, а текстовый объект здесь находится в другой сцене.Так что я использую один и тот же сетевой менеджер в двух разных сценах.Я понимаю, что это не принято, но так должно быть для моего проекта.Все, что я сейчас ищу, это чтобы он изменил текст, как только я пойму, как это произошло, я уверен, что смогу выяснить все остальное.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Networking;
public class textChanger : NetworkBehaviour
{
Text text;
[SyncVar]
bool change = false;
// Use this for initialization
void Start ()
{
text = gameObject.GetComponent<Text>();
}
// Update is called once per frame
void Update ()
{
if(change)
{
text.text = "it worked";
}
}
[Command]
public void CmdChangeText()
{
change = true;
}
}
Если я установлю "изменить" наПри нажатии клавиши код работает точно так, как должен, текст меняется.Но это не работает, когда я нажимаю кнопку из другой сцены.Я использую Networking Hud, и две сцены на самом деле связаны.Но переменная не обновляется.
![enter image description here](https://i.stack.imgur.com/Y0lx3.png)
![enter image description here](https://i.stack.imgur.com/KUawo.png)
На первом рисунке игровой объект "Текст" запускает ""Чейнджер текста".И на втором рисунке кнопка также имеет общий объект «Игровой объект», на котором она запущена.На него можно ссылаться в области кнопок onClick, вызывающей метод «CmdChangeText» в скрипте «Text Changer».
Так что в моей голове все выглядит так, как будто должно работать, но это не так.Может кто-нибудь помочь?