#photonPunチャット、初心者つまずき事例
プロの方、お控えください。
ググっても情報古いし、頭の良いひとの記事は今一つわからない。
書き方がちょっと違っていたりして困った。
teratailで聞く前に、なんとなく実装出来たことを備忘録として記録。
参考にした動画は、こちら
やりたかったことは、吹き出しおしゃべりを、実装したかった。
https://www.youtube.com/watch?v=7cOtVzjy-6o
###■PhotonTargets.AllBufferedってのが、使えないらしい
photonView.RPC("SendMessage", PhotonTargets.AllBuffered, ChatInputField.text);
今はこうらしい。
photonView.RPC("SendMessage", RpcTarget.All, ChatInputField.text);
###■コードのRPC文字のみが、赤字になってエラーが出る。
プロジェクトをコピーして、当該スクリプトをコピペしたら治った。
###■インプットフィールドのテキストメッシュプロ版はいつもと記載が違う
常識なのかもしれないが、確実につまづいた。
using TMPro;
-----
-----
private TMP_InputField ChatInputField;
###■PhotonViewに吹き出しコンポーネントが登録出来ない
ゲームを実行すると、相手画面で吹き出し(チャット)が反映されない。1人チャット状態
#####原因はPhotonViewコンポーネントのObservedComponentsに共有するものは登録する必要がある。
ですが現在の状況は、PhotonViewにスクリプトコンポーネントをドラッグしても、共有オブジェクトが登録出来ない状態になっている。
↓ここが死んでいる
public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
その場合、、、これにすると復活した。
public class ChatManager : MonoBehaviourPunCallbacks, IPunObservable
'MonoBehaviourPunCallbacks'
(公式)このクラスは、.photonViewと、PUNが呼び出すことができるすべてのコールバック/イベントを提供します。使用したいイベント/メソッドをオーバーライドします
(解釈)punが折り返し連絡してくれる。電話のコールバックと似たもの。
'IPunObservable'
(公式)監視可能なスクリプトを正しく実装することを容易にするため、OnPhotonSerializeViewメソッドを定義。
(解釈)登録しないと仲間はずれにされる、複数の関数を登録しているもの。
で、スクリプトをPhotonViewの監視対象コンポーネントにできた。
###■【Unity】using Photon.Pun が、参照しなくなった
この記事で解決できました。
https://teratail.com/questions/316915
ありがとうございます。