bigbanner

Unity マルチプレイオンラインゲーム開発

Unityオンラインゲーム作成【Chapter10】戦闘の実装

更新日:

ついにここまで来ましたね...

今回から戦闘の実装をしていきたいと思います。

被弾アニメーションの設定

今回戦闘を実装するにあたって、被弾のアニメーションが現在のユニティちゃんのAnimatorである"UnityChanLocomotions"に設定されていないので、別のAnimatorの"UnityChanActionCheck"から流用します。

被弾アニメーションの追加手順は以下の通りです。

  1. ”UnityChanActionCheck”にある"DAMAGED00"と”DAMEGED01”をコピーして"UnityChanLocomotions"に貼り付け
  2. 2つのアニメーションをAny StateからTransitionで繋ぎ、IdleへTransitionで繋ぐ
  3. ParametersにDeathTriggerとDamagedTriggerを追加
  4. Any StateからDAMAGE00とDAMAGE01に繋がるTransitionのConditionsを以下のように設定

以上で被弾アニメーションの設定は完了です。

攻撃と被弾の処理

今回実装する攻撃はユニティちゃんの正面に球を飛ばし、他のプレイヤーが球に触れた時にダメージを与えるという仕様にします。

攻撃の実装に必要な手順は以下の通りです。

  1. BallManageScriptを以下のようなコードを用いて作成
  2. 飛ばす球のオブジェクトのプレハブAttackBall.prefabを以下のInspectorビューのように作成
  3. CharacterControlScriptを以下のように変更

BallManageScript.csのソースコード

攻撃用の球は生成と同時に正面方向へ一定スピードで飛んでいき、生成から2秒後に消えるように設定しています。

AttackBall.prefabのInspectorビュー

ColliderのTriggerをONにし、キャラクターをすり抜けるようにしています。(ダメージは食らう)

またRigidbodyでは重力の影響を受けないように設定しています。

最後に先程作成したBallManageScriptを適用します。

変更後のCharacterControlScript.csのソースコード

大分長いスクリプトになってきましたが、追加した行はマークされている行だけです。

仕様的には攻撃コマンド(今回は左クリック)が入力されたら、キャラクターの正面に球オブジェクトを生成し、球オブジェクトは正面方向に飛んでいくという感じになっています。

球はRPCを用いてすべてのクライアント上で同時に生成し、同期をしています。

RPCについて良く分からない方はこちらの記事も読んでみてください。

Unityオンラインゲーム作成 RPC(リモートプロシージャーコール)について

この記事では同期方法の1つであるRPC(リモートプロシージャーコール)について説明いたします。 RPC(リモートプロシージャ―コール)とは 難しい説明でも良い方はどうぞ以下のリンクからPhoton公式 ...

続きを見る

実際に動かしてみましょう!

ついに攻撃と被弾を実装できましたね!!

球をParticleのオブジェクトにすれば、カッコいい攻撃にしたりできるので素材を探して実装してみるのも楽しいと思います。

次回予告!!

次回はゲーム内にカーソルを作成します!

カーソルはキャラクターの移動や攻撃の方向を決定したり等、色々な使い道に使えます!

お楽しみに!!

 

 

 

 

rectangle_l

rectangle_l

-Unity, マルチプレイオンラインゲーム開発

Copyright© Uniblo-ゆにブロ- , 2022 All Rights Reserved.