LoginSignup
0
0

More than 1 year has passed since last update.

昨日、つまずいたphoton

Last updated at Posted at 2022-01-28

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
ありがとうございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0