kuront’s blog

主にUnityでのゲーム制作やってます。

Unity RPG制作

【Unity】RPG制作 その32-特技の実装3 特技の効果対象による処理分岐、コードの整理

今回は特技の効果対象によって敵を複数回攻撃したりランダムで攻撃したりできるようにしていきます。 SpecialEvent.csのIEUseAttackSpecialコルーチンに処理を描いていきます。現状条件文の中の実行コードがかなり長くなっており、処理全体の見通しが悪くな…

【Unity】RPG制作 その31-特技の実装2 全体攻撃実装

今回は全体攻撃の特技を実装していきたいと思います。 SpecialData.csの列挙型TARGETのtargetに使用対象を設定するようにしているので、targetの中身がTARGET.AllOfEnemy(敵全体)の場合の処理をSpecialEvent.csに記述します。 クリックで展開 //戦闘中に攻…

【Unity】RPG制作 その30- 特技使用時のアニメーション再生

今回は特技を使用した時にアニメーションを再生されるようにしていきます。アニメーションを実装するにあたって、こちらのアセットを使用します。assetstore.unity.comそれからぴぽや倉庫様、moyasi戦闘エフェクト館様からも戦闘エフェクトをお借りします。p…

【Unity】RPG制作 その29-特技の実装1 基本部分を作成

今回から特技の実装をやっていきたいと思います。基本的にアイテムの実装と似ているところが多いので、アイテム実装の時に使った処理を流用していきます。 まずは特技の個々のデータを扱うSpecialDataクラスを作成します。 クリックで展開 using System.Coll…

【Unity】RPG制作 その28-戦闘時の能力値処理実装

今回は戦闘時の能力値周りの処理を実装していきます。PlayerManager.csに戦闘時に実際に参照される能力値を保持するDictionaryを新しく作成します。 クリックで展開 public Dictionary<GeneralEnum.STATUS, int> battleStatusValues = new Dictionary<GeneralEnum.STATUS, int>(); //戦闘で実際に参照される能力</generalenum.status,></generalenum.status,>…

【Unity】RPG制作 その27-プレイヤーの属性耐性値・状態異常のかかりやすさの値の確認画面作成

今回はプレイヤーの属性耐性値・状態異常のかかりやすさの値を確認できる画面を作成していきたいと思います。これらの画面はプレイヤーのステータス画面で表示させたいので、画面を切り替えるためのボタンをPlayerStatusUICanvas内に配置します。 属性耐性値…

【Unity】RPG制作 その26-武器、防具アイテム実装その3 装備による能力値の変化実装

今回は装備による能力値の変化を実装していきます。 はじめに、PlayerManager.csで基本能力値と装備反映後の値を保持するDictionaryを宣言します。 クリックで展開 public Dictionary<GeneralEnum.STATUS, int> baseStatusValue = new Dictionary<GeneralEnum.STATUS, int>(); //基本能力値Dictionary。 public </generalenum.status,></generalenum.status,>…

【Unity】RPG制作 その25-武器、防具アイテム実装その2 装備画面実装

今回は武器と防具の装備画面の作成をやっていきます。 装備画面はこんな感じです。 左のグレーの部分がボタンになっており、押すとその部位に装備できる武器・防具がスクロールビューに表示されるように作ります。まずはじめに、GeneralEnum.csに装備部位の…

【Unity】RPG制作 その24-武器、防具アイテム実装

今回からは武器と防具の実装をやっていきたいと思います。 過去の記事(RPG制作 その4)で作成したWeaponData、ArmorDataクラスを武器と防具のベースのデータに使います。少し修正もしておきます。 クリックで展開 using System.Collections; using System.Col…

【Unity】RPG制作 その23-ワープイベント、帰還イベントの作成

今回はワープイベントを作成していきます。eventIDを11とします。ワープイベントを知らせる処理をInformDangeonEventコルーチンに追加します。 クリックで展開 public IEnumerator InformDangeonEvent() { eventID = GetCurrentPosDangeonEventID(); Dangeon…

【Unity】RPG制作 その22-トラップイベント、扉のスイッチイベント実装

今回は探索時のトラップイベントやスイッチで開く扉の処理を実装していきます。 まずはじめに、DangeonController.csのInformDangeonEventコルーチンで、各々のイベントが配置されていることを知らせる処理を追加します。 クリックで展開 public IEnumerator…

【Unity】RPG制作 その21-到達していない部屋を非表示にする

前回の終わりで探索時のトラップを作成すると書きましたが、今回はその前に、到達していないダンジョンの部屋とその部屋に配置されているイベントを非表示にする処理を実装していきます。 はじめに、イベント及び部屋を表示するかどうかのデータを保持する配…

【Unity】RPG制作 その20-探索イベントのランダム配置

今回は探索イベントをランダムに配置する処理を実装していきます。 はじめに、今までDangeonMap.csのposOfEventに直接入力していたIDを階段の上り下りのイベント以外全て-1にしておきます。 クリックで展開 public int[,,] structOfDangeon = new int[4,5,5]…

【Unity】RPG制作 その19-ダンジョンの下層へ進む

今回はダンジョンの下層にすすめるように階層間の移動を実装していきます。現状、DangeonMap.csに2次元配列を定義してそれをもとにダンジョンの部屋構造を定義しているのですが、その二次元配列を三次元配列に定義しなおします。 クリックで展開 public int[…

【Unity】RPG制作 その18-探索時のイベント処理

今回は探索時にイベントを発生させる処理を作っていきます。探索時にDangeon関連の処理を実行できるようにQuestManager.csでDangeonController型の変数を定義します。 クリックで展開 [SerializeField] DangionMap dangionMap; //New 次に、DangeonControlle…

【Unity】RPG制作 その17-プレイヤー移動したら一定の確率で敵とエンカウント

前回は探索ステージのマップを制作しました。今回はプレイヤーの移動ボタンを押したら一定の確率で敵をエンカウントするようにします。 プレイヤーのマップ移動を実装するまでは、「進む」ボタンを押したらエンカウントするかどうかを処理していましたが、そ…

【Unity】RPG制作 その16-ステージ制作 プレイヤーの移動

前回はステージマップの見た目を作っていきました。今回はマップ上のプレイヤーの移動を実装していきます。 プレイヤーを移動させるためのボタンを以下のように配置します。 次にダンジョンの処理を制御するスクリプト、DangionControllerを作成し、DangionM…

【Unity】RPG制作 その15-ステージマップ作成

前回まではアイテムの使用処理を実装しました。今回からは探索ステージのマップを作成していきたいと思います。以下の画像のようなマップの見た目を作っていきます。 まずはじめに、Canvasを新規作成し、名前をDangionMapCanvaにします。次にDangeonMapCanva…

【Unity】RPG制作 その14-攻撃アイテム使用処理

前回は戦闘時の回復アイテムの処理の実装を行いました。今回は攻撃アイテムの実装をやっていきます。 アイテムのデータに命中率を設定したいので、itemData.csに以下の記述を追加しておきます。 [Header("攻撃アイテムの場合の命中率")] public int hitRate …

【Unity】RPG制作 その13-戦闘時の行動タイプの保持、実行

前回は戦闘中に回復アイテムを使用する処理を実装しようとして、アイテムを使っている途中で動かなくなったところで終わりました。 バグの原因が不明なので、アイテムの使用処理の実装を置いておいて先に戦闘時の行動タイプによる処理分けを実装していきたい…

【Unity】RPG制作 その12-回復アイテム使用処理(戦闘中)

前回は探索中にアイテムを使用する処理を実装しました。今回は戦闘中にアイテムが使えるようにしたいと思います。ItemUiは探索と戦闘の両方同じスクリプトで呼び出しているのですが、実際にボタンを押した時の挙動については戦闘時と探索時で変えたいです。…

【Unity】RPG制作 その11- アイテム使用処理(探索中)

RPG制作その4とその5でアイテムのUIと所持数の処理は実装したのですが、実際に使う処理をまだ実装していないので、今回はアイテム使用処理を実装していきます。 今回かなり煩雑な内容になっています。参考程度に御覧ください。 現在のゲームの場面に応じて…

【Unity】RPG制作 その10- プレイヤーステータスUI作成

今回はプレイヤーのステータスを表示するUIを作成していきたいと思います。 前回作成した能力成長表のキャンバスをコピーして名前をPlayerStatusUICanvasにします。このCanvasの階層下にあるGrowlistをStatusListに改名し、ExpListの方は削除します。ステー…

【Unity】RPG制作 その9- プレイヤーのステータス成長処理

前回はプレイヤー死亡時の処理と戦闘終了時の経験値とお金の入手処理を実装しました。今回はプレイヤーの能力経験値が一定値溜まった時にプレイヤー能力を上げる処理を実装していきます。 最初に、ステータスのデータを扱いやすくするために、能力の項目を列…

【Unity】RPG制作 その8- プレイヤー死亡時処理、戦闘勝利時処理(経験値、お金)

前回は戦闘時のプレイヤーと敵の行動順の処理を実装しました。今回はプレイヤー死亡時の処理と、戦闘勝利時の処理を実装していきたいと思います。 BattleManagerを開き、以下の部分を修正します。 クリックで展開 IEnumerator PlayerDeath() { yield return …

【Unity】RPG制作 その7-戦闘時の行動順の処理 他バグ修正

前回は戦闘時に敵を複数出現させる処理を実装しました。今回はプレイヤーと敵が速さ順に行動するように処理を実装していきたいと思います。 その前に、現状敵を撃破した時にの演出で、敵の画像と一緒に敵のUIも一緒に拡大するようになってしまっているため、…

【Unity】RPG制作 その6-敵を複数出現させる。

現在敵は1体のみで出現しますが、今回はそれを複数出現できるように処理を実装していきます。敵のステータスを表示するUIは敵のプレハブが子オブジェクトとして保持するようにします。 ゲームオブジェクト「QuestManager」の階層下に空のオブジェクト「Enemy…

【Unity】RPG制作 その5-アイテムのUI作成

今回はアイテムのUIを作成していきたいと思います。 アイテムのリストを作るのにScreenViewを使います。ScreenViewの階層下にあるContentsに、所持数が1以上のアイテム名のTextコンポーネントを保持したゲームオブジェクトを追加していきます。 ヒエラルキー…

【Unity】RPG制作 その4-アイテムマネージャー作成

今回はアイテムを管理する仕組みを作っていきます。まずはじめに、ヒエラルキー上で空のゲームオブジェクトを作成し、名前をItemManagerにします。次に新しくスクリプトを作成し、名前をItemManagerにして、ゲームオブジェクトItemManagerに貼り付けます。It…

【Unity】RPG制作 その3 -プレイヤーの情報作成

今回はプレイヤーのステータスまわりを実装していく。まずはじめに、プレイヤーの管理を行っているスクリプト"PlayerManager.cs"にプレイヤーのステータスを追加する。 追加前のスクリプト クリックで展開 using System.Collections; using System.Collectio…