Как сделать изменение переменной и текста у всех игроков Unity Photon Pun 2?

Для изменения переменной и текста у всех игроков в Unity с использованием Photon PUN 2, вам потребуется использовать функционал синхронизации сетевых переменных и сетевых RPC (Remote Procedure Call).

Во-первых, вам потребуется создать класс для сетевого игрового объекта. Добавьте в этот класс сетевую переменную, которую вы хотите синхронизировать. Например, давайте предположим, что вы хотите изменить цвет на всех клиентах:

public class Player : MonoBehaviourPunCallbacks, IPunObservable
{
    [SerializeField]
    private Color playerColor;

    void OnGUI()
    {
        GUI.Label(new Rect(10, 10, 100, 20), "Color: " + playerColor.ToString());
    }

    public void ChangeColor(Color newColor)
    {
        playerColor = newColor;
        photonView.RPC("UpdateColor", RpcTarget.AllBuffered, newColor);
    }

    [PunRPC]
    private void UpdateColor(Color newColor)
    {
        playerColor = newColor;
    }

    public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
    {
        if (stream.IsWriting)
        {
            stream.SendNext(playerColor);
        }
        else
        {
            playerColor = (Color)stream.ReceiveNext();
        }
    }
}

Обратите внимание, что мы добавляем [PunRPC] перед методом UpdateColor, чтобы Photon мог вызывать этот метод на всех клиентах при смене цвета игрока.

Теперь, когда у вас есть класс игрока, вы можете создать объект игрока на сцене и добавить этот компонент к нему.

Когда вы хотите изменить цвет игрока, вызовите метод ChangeColor на объекте игрока (возможно, из другого компонента или в ответ на действие игрока). Это приведет к вызову RPC на всех клиентах и обновит цвет игрока на всех клиентах.

Это лишь пример, как изменить одну переменную и текст на всех клиентах в Unity Photon Pun 2. Точные решения могут различаться, в зависимости от ваших потребностей и структуры вашей игры.