はじめに
Photonで実装やってみたブログみたいな参考文献たくさんあるし、簡単に導入できるでしょ!
と思っていたらボコボコにされたので。自分へのメモ書き兼ねて。
なお、基本的な流れはPUNの実装について書いてあるブログでいけます。
ここでは、PUN実装やってみたブログを見ながら進めていたらつまづいたことをフォローする感じです。
Qiita初投稿なのでお手柔らかに。。。
##PUN2(2019/8/8時点で最新バージョン)を使おうと思うとデカい罠がある
罠1.PUN"2"に関するブログが少ない。
罠2.PUN→PUN2アプデ時に名前空間やら諸々が一新されている。ので、PUNについて解説してあるブログが役に立たないことがある。
###作業環境
Unity2018.3.10.f1
PUN2.13
###導入方法
導入に関しては、PUN導入ブログで普通にいけました。
適当にググってわかりやすそうなブログを見てください。
見なくても問題なく導入できるかもしれません。
以下、つまずいたことと解決策。
##Photon.PunBehaviourが無い
「MonoBehaviourPunCallbacks」で置き換えられます。
「Photon.MonoBehaviour」は「MonoBehaviourPun」にすることで、おそらく大抵が片付きます。
##PhotonNetwork.ConnectUsingSettings()の引数が指定できない
ロビー分けられんのかと泣きそうになりましたが、分けられます。
分ける必要が無ければ「PhotonNetwork.ConnectUsingSettings()」(引数なし)で終わりです。
ロビーを複数作る感じの仕様なら、まず
PhotonNetwork.GameVersion = "3";
PhotonNetwork.ConnectUsingSettings();
これでいけます。ただ、もう少しやることがあります。
//ConnectUsingSettings()関数内
GameVersion = PhotonServerSettings.AppSettings.AppVersion;
これをコメントアウトしましょう。別の数字で上書きされてしまうので。
ダメなのかもしれないですけど。
(たぶん本当はPhotonServerSettings.AppSettings.AppVersionの値を指定するのが良い気がします。)
他にこうしたほうが良いみたいなのがあったら教えてください。
#RPC関連
##Targets.AllとかPhotonTargets.Allが無い
RpcTarget.Allになってます。
##PhotonViewが重要
Transformが無いオブジェクト(UIとか。)にアタッチしても動作しない(ちょっとつまづいた)。
空のオブジェクトとかにアタッチして使うのが良さそう。
参考
Unityのネットワーク対戦で相手にデータを送信する最も単純で簡単な方法
#最後に
自分用メモとか言いつつ、PUN2の文献が少なすぎて困っている方のお力になれたら本望です!
「あのへんはどう解決した?」みたいな質問も受け付けます(解決できるとは言ってない)。
初投稿なため、見にくい部分もあると思いますが、そのあたりは何なりとお申し付けください!
また、「こっちのほうが良いよ!」という解決策などございましたら、ご教授いただけますと幸いです。