UNET 位置の同期を自作する

UNETにはNetworkTransformという位置同期の仕組みが標準で搭載されています(使い方はこちらで解説しています)。

これを使うと、とても手軽に位置の同期が行えますが、残念ながら色々と問題があるし、かゆいところに手が届かない機能です。

そこで今回は、簡単な位置同期の仕組みを自作しようと思います。

TargetRPCという機能も使ってみます。

続きを読む

UNET⑮ ネットワーク対戦のレースゲームを作る

今まで学んだことを組み合わせて、ネットワーク対戦のレースゲームを作ってみたいと思います!!

・・・といっても、本格的な車を走らせたりするのは大変なので、プレイヤーオブジェクトは玉です。玉転がしレースです。

なるべく簡単に作りたかったので、見た目はショボいですが・・・しかし、ちゃんと複数人で遊べるネットワーク対戦ゲームです!

続きを読む

UNET⑭ NetworkManagerをカスタマイズして、プレイヤー生成処理などを独自のものにする

通常、NetworkManagerに登録可能なプレイヤーのプレハブは、1つだけです。つまり、全員同じキャラクターしか使えません。

今回は、NetworkManagerを継承した独自クラスを作り、プレイヤー生成処理をカスタマイズすることによって、プレイヤーによって別々のキャラクターを使えるようにします。

続きを読む

UNET⑫ NetworkManagerHUDを自作のUIに置き換える

UNETのNetworkManagerHUD(あのクソダサいデフォルトのUI)を見限って、自作のUIで接続などを行えるようにします。

f:id:motoyamablog:20171125231950p:plain
※なお今回作るのはLAN接続前提のUIです。インターネット接続のゲームを作りたい場合は、この記事に加えて、こちらの記事も参考にしてみてください。

あと、ついでに、UNETにおけるシーンの切り替え方法も学びます。

続きを読む

UNET⑪ Messageを使って情報を送信する

UNETのMessageという機能を使って、サーバー↔クライアント間で情報をやり取りする方法を学んでいきます。

公式マニュアルはこちら

Messageを全く使わなくても、ネットワークゲームを作ることは可能です。しかし、UNETの内部ではMessageを多用しており、Messageを理解していないと、UNETのソースコードを読むことは困難でしょう。そして現状、UNETを使いこなすためにはUNETのソースコードを読む必要があるので、結局、Messageの理解は必要です・・・

また、今回はNetworkManagerを使わずに、通信処理を作ります。これにより、普段お世話になっているNetworkManagerがどんな仕事をしてくれているのかが理解しやすくなるはずです。

続きを読む

UNET⑩ Spawnで敵キャラなどを生成

今回はNPCを作りながら、Spawnという機能について学びます。

NPCとはNon Player Characterの略で、プレイヤーが操作するキャラクター以外のキャラクター全般のことです。村人とかです。広義では敵キャラ等もNPCです。

続きを読む