現在開発中のマルチプレイアプリケーションにおいて、キャラクタの名前をTextMeshProにて頭上に表示しております。
ゲーム中に名前を変更し頭上の表示に反映したいのですが、うまくいきません。プレーヤーA/Bが参加している際に、プレーヤーAは正常に名前を変更できるのですが、プレーヤーB側でエラーが発生します。
C#
1void Update() 2{ 3 if(!photonView.IsMine) return; 4 if(updateText){ 5 if(NameInput == null) NameInput = GameObject.Find("NameInputField").GetComponent<InputField>(); 6 if(nameDisplay == null) nameDisplay = transform.Find("NameText").gameObject.GetComponent<TextMeshPro>(); 7 updateText = false; 8 9 if( NameInput.text.Replace(" ", "") != ""){ 10 photonView.RPC("displayName", RpcTarget.All, NameInput.text); 11 NameInput.text = ""; 12 } 13 } 14} 15 16[PunRPC] 17void displayName(string str){ 18 nameDisplay.text = str; 19}
NameTextは本gameObjectの子オブジェクトとしております。
試したこととして、NameTextをprefabとし、photonNetwork.Instantiateで同期オブジェクトを生成したものに対してテキストを変更しようと試みましたがやはり同様にエラーが発生しました。
何か良い方法あありませんでしょうか。
> プレーヤーB側でエラーが発生します。
> 同様にエラーが発生しました。
エラーの内容と、その行で何の処理をしたのか、がわからないと何が起きたのか知りようがないのでそれらを示してください。
回答1件
あなたの回答
tips
プレビュー