プレイヤーが入室後、全てのObjectを読み込めたタイミングを知りたい

Options

この質問は他サイトでも投稿しており、マルチポストな質問となっています。

回答を頂き次第、双方のサイトに回答を記載し解決した場合、迅速に回答の募集を終了し解決案を全てのサイトに記載致します。

非マスタークライアントがルームに入室後、他のプレイヤーのオブジェクトを読み終えた事を示す変数は無いのでしょうか?

オンライン対戦ゲームの為にPUN2を勉強していますが、参加者が全員共通で使うオブジェクトをルームのマスタークライアントが作り、後ほど入ってきたプレイヤー達はそのオブジェクトを取得し共同で使う...といった方法で行きたかったのですが

部屋に入って他プレイヤーのオブジェクトが反映されるまで少しラグがある為、入った直後に取得しようしても出来ませんでした。

今はコルーチンを用いて入室後少し待って取得させるようにしていますが、状況によってはそれ以上接続に時間が掛かる場合も考えられますし、読み込みが終わった事を示す変数があると嬉しいのですが...

using Photon.Pun;
using Photon.Realtime;
using System.Collections;
using UnityEngine;

public class SampleScene : MonoBehaviourPunCallbacks
{
    public GameObject obj;

    private void Start()
    {
        PhotonNetwork.ConnectUsingSettings();
        StartCoroutine(DelayLoad());
    }

    public override void OnConnectedToMaster()
    {
        PhotonNetwork.JoinOrCreateRoom("Room", null, null);
    }

    public override void OnJoinedRoom()
    {
        if(PhotonNetwork.LocalPlayer.IsMasterClient)
        {
            PhotonNetwork.Instantiate("Avater", Vector3.zero, Quaternion.identity, 0);
        }
    }

    public IEnumerator DelayLoad()
    {
        yield return new WaitForSeconds(5f);
        obj = GameObject.Find("Avater(Clone)");
    }
}

Answers

  • JohnTube
    JohnTube ✭✭✭✭✭
    Options

    Hi @mushipan0929,

    Thank you for choosing Photon!

    We offer support only in English.

    I will close this discussion and ask you nicely to open another one in English.

    You can use translator websites.

This discussion has been closed.