UnityNetworkでオンライン対応1-まずは動くキャラ作り-

記事内に広告が含まれています。

UnityNetworkを使ったマルチプレイの対応をやっていきたいと思います。

Unityでの簡単なキャラクターの移動スクリプト、AnimatorControllerの使い方を習得している方が対象になります。

Photonを使ったオンライン対応については

Unityでオンラインマルチプレイ対応1-まずは動くキャラ作り-
UnityでPhotonCloudを使ったリアルタイムのオンライン対応をしていきます。今回はオンライン対応する前の主人公と敵キャラクターを作成していきます。

↑の記事から順番に作って頂くとPhotonでの基本的なオンライン対応が出来ます。

UnityNetworkとPhotonは何が違うかと言うと、UnityNetworkはUnity標準搭載のオンライン対応機能で、Photonは外部サービスなので別途PUN(PhotonUnityNetwork)をインポートする必要があると言う事でしょうか。

後はオンライン対応する為のスクリプトの処理が少し変わってきます。

Photonのオンライン対応をやったので、UnityNetworkの対応も、という事でこのカテゴリが出来ました。(^_^;)

UnityNetworkの対応はUnityのチュートリアルやマニュアルを見た方がわかりやすいかもしれません。

マルチプレイヤーとネットワーク - Unity マニュアル
Unity Multiplayer は現在開発中であり、UNet は非推奨のソリューションです。アプリケーションにマルチプレイヤーの要素を加えたい場合は、以下のソリューションを利用できます。
Unity - Manual: Unity Manual
The Unity Manual helps you learn and use the Unity engine. With the Unity engine you can create 2D and 3D games, apps an...

わたくしの記事の方がわかりやすいという方(いるかわかりませんが)、自分の理解を深める為、チュートリアル等を参考にUnityNetworkでのオンライン対応の記事を書いていきます。

実はだいぶ前に対応した事があったんですが、放置してたら完全に中身を忘れてしまったので最初からやる事になりました・・・。(-_-)

PhotonではPhotonサーバーにログインする状態から作成していきましたが、UnityNetworkではそこら辺の処理はNetworkManagerHUDで確認する事にして、中身のオンライン対応についてやってきたいと思います。

UnityNetworkのログイン処理辺りは、わたくしに出来るようになればやってみたいですが、いかんせん能力が足りないのでどうなるか(;一_一)

スポンサーリンク

オフラインで動くキャラクターの作成

オンライン対応する前にオフラインで動かすキャラクターを作成します。

ほぼPhotonのオンライン対応キャラクターと同じなので、やらなくてもいいんですが・・・、別カテゴリなのでやっておきます(謎)。

キャラクターの作成

StandardAssets/Characters/ThirdPersonCharacter/ModelsにあるEthanをヒエラルキーに設置しCharacterControllerの取り付けコライダのサイズを調整します。

UnityNetworkキャラ用コライダのサイズ

↑のようにCharacterControllerのサイズを変更しました。

Ethanの名前をUnityNetworkPlayerという名前に変更しました。

移動と攻撃スクリプトの作成

移動と攻撃をするUCharaスクリプトを作成し取りつけます。

動かすスクリプトもPhoton版とまったく同じですね。

AnimatorControllerの取り付け

AnimatorControllerを作成し取り付けます。

UnityNetworkキャラ用Animator

状態と遷移は↑のように作成しSpeedが0.1より上の時Walk、0.1より下の時Idle、AttackがトリガーされたらAttack状態へと遷移するように設定します。

Attack→Idleへの遷移条件はなしでHas Exit Timeにチェックを入れます。

Photonでの対応ではアニメーションパラメータにbool型のAttackを使用していましたが、UnityNetworkではTrigger型のAttackを使用してみます。

アニメーションイベントの作成

AnimatorControllerのAttack状態に設定したアニメーションにアニメーションイベントを取り付けます。

攻撃の開始時にAttackStart、攻撃終了時にAttackEndを作成します。

使用するアニメーションに応じてイベントを作成する位置を変更してください。

AttackStartイベント発生位置

↑がAttackStartの位置、

AttackEndイベント発生位置

↑がAttackEndの位置になります。

キャラクターに剣を持たせる

キャラクターに剣を持たせます。

UnityNetworkキャラクターの階層に剣を配置

右手のボーンの子要素に剣を配置します。

UnityNetworkキャラクターが武器を持った図

↑のような感じに武器の位置と角度を調整します。

武器にはCapsuleColliderを取り付け剣のサイズに合わせたコライダのサイズに調整します。

また、Rigidbodyの取り付けを行いIs Kinematicにチェックを入れます。

UnityNetworkキャラクターが持つ武器のインスペクタ

このCapsuleColliderのオン・オフをアニメーションイベントAttackStart、AttackEndを受け取り、武器の当たり判定の切り替えを行います。

キャラクターにUProcessAttackスクリプトを作成し、取り付けます。

UProcessAttackのインスペクタでColに剣のコライダをドラッグ&ドロップします。

UnityNetworkPlayerのインスペクタは

UnityNetworkオフラインキャラクターのインスペクタ

↑のようになりました。

終わりに

今回はとりあえず動いて攻撃アニメーションをする操作キャラクターの作成を行いました。

ほぼPhotonでのオンライン対応の最初の記事と同じですが、敵の作成や攻撃スクリプト等は排除しました。

もし必要になったらその時に作成したいと思います。

タイトルとURLをコピーしました