Unity + PUN2(Photon Unity Networking 2)でネットワーク対戦カードゲームを作っています。
わかりやすいように、以下ではハースストーンのミニオンが出てきます。
(ミニオンの箇所はシャドウバースのフォロワーでも大丈夫です!)
実現したいこと
以下の図のようにゲームオブジェクトを同期させることが、実現したいことです。
プレイヤー①とプレイヤー②はそれぞれ対戦する人です。
PUNでは、ルームにプレイヤー①、②が入って対戦を行うイメージです。以下図のような状態で、対戦が進んでいくことを実現できないかなあと思っています。
プレイヤー①から見れば、プレイヤー②(対戦相手)は画面上側にきます。
逆にプレイヤー②からすれば、対戦相手はプレイヤー①なので、プレイヤー①が上側にきて、もちろんプレイヤー②からプレイヤー①の手札は見えません。(ハースストーン、シャドウバースと同じ)
PUNにおけるPhotonNetwork.Instantiate
を使ってオブジェクトの同期をとる場合、そのまま同期してしまうと、上の図ではプレイヤー①が召喚したミニオンは、プレイヤー②のミニオンの場所(図の右側における「プレイヤー②のミニオン」の場所)に同期されてしまいます。本来、プレイヤー①が自分のローカルで召喚したミニオンは、プレイヤー②から見れば、上側に表示されるべきなのです。
これって例えば、RPC(Remote Procedure Call
を使って実装したりするんでしょうか??
試したこと/考えたこと
それぞれのプレイヤーに異なるカメラをつけて、それらのカメラの向きを変えることで、座標自体を反転させることを考えました。この方法は、座標は正しく同期されますが、これだと召喚されたミニオンのオブジェクト自体をカメラの向きに合わせて回転させてあげないと逆さまに見えてしまったりします。そこをミニオン生成と同時に修正するのはあんまりスマートじゃないかなあ、、、と思いました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/07 11:37