LoginSignup
11
3

More than 3 years have passed since last update.

【Unity】PUN2実装時に念頭に置いておくことのメモ

Last updated at Posted at 2019-08-08

はじめに

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の文献が少なすぎて困っている方のお力になれたら本望です!
「あのへんはどう解決した?」みたいな質問も受け付けます(解決できるとは言ってない)。
初投稿なため、見にくい部分もあると思いますが、そのあたりは何なりとお申し付けください!
また、「こっちのほうが良いよ!」という解決策などございましたら、ご教授いただけますと幸いです。

11
3
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
11
3