![見出し画像](https://assets.st-note.com/production/uploads/images/40822320/rectangle_large_type_2_5e4f8d196bf903c8811a7aedb3711df0.png?width=1200)
【Unity】CorgiEngineについての備忘録[既存コンポーネントの微調整とクラスの継承]
どーも、ピクジンです。
今回はセールで買ったはいいが圧倒的物量に怯んで放置していた「CorgiEngine」という有料アセットをお触りした際に、自分好みのゲームを作る上で必要そうな部分をメモしました。
CorgiEngineとは
Unityで2Dアクションゲームをコード書かずに作ることができる有料で優良なアセットです。
アクションゲームといえばこれ!ってギミックは大体入ってるし、機能をちょい足しするだけなら比較的簡単にできます。最強。
ドキュメントはこちら(英語)
アクションゲームを一から作るのはかなりしんどいので、ちゃんとしたテンプレートがあるのは嬉しいです。
ただ、その分いいお値段するしスクリプトの量も多いので、Unity始めたばかりの人には敷居高そうだなって感じです。
とりあえず触る
まずはドキュメントの「最小限のシーン要件」に書いてある通りのシーンを用意してみます。
地面と適当なオブジェクトを置いて、LevelManagerのPlayerPrefabsの欄に適当なキャラクターを入れて起動すると...
すぐさまキャラクターを動かせるようになります。
すごい。
プレハブを適当に配置するだけでもうゲームできちゃいます。
コンポーネントをいじって微調整
「ジャンプの回数を増やしたい!」
「移動する速度を変えたい!」
「銃を正面以外にも撃ちたい!」
みたいなわがままもあることでしょう。
そんな時は、関係ありそうなコンポーネントを見つけて数値をいじってみましょう。
例えばジャンプの回数を増やしたい場合
キャラクターのCharacterJumpというコンポーネントのNumberOfJumpsの数値を変えます。
8方向を銃で狙いたいなら、キャラクターが持ってる武器のWeaponAimのAimControlをPrimaryMovementにします。
銃の向きを変えるアニメーションを用意してないので変な見た目になってますが、とりあえず撃てます。
他のサンプルに銃の向きを変えるものもあるので適当に試してください。
使う武器はキャラクターのCharacterHandleWeaponコンポーネントのInitialWeaponに設定するのが1番楽です。
(武器を選べるインベントリもあるけどここでは割愛)
なお、見てわかる通り各機能は独立したコンポーネントになっています。(ジャンプはジャンプ用、移動は移動用のコンポーネントで行う)
余計だと思った機能のコンポーネントは外してしまいましょう。
クラスの継承
既存のスクリプトだけでも十分ゲームとして成立しますが、「この機能を元にしたオリジナル要素を追加しよう!」って考えたくもなります。
その場合は元にするスクリプトをほぼコピペした新規クラスを作るより、クラスの継承をしたほうがいいです。
継承について詳しくは自分で調べてね。
このCorgiEngine内のほとんどのメソッドはオーバーライドして使えるようになってます。
やったね。
例えば、ダメージを与えない代わりに敵の動きを止める攻撃にしたい場合はこうする。
namespace MoreMountains.CorgiEngine//これがないと継承できない
{
public class aaaa : Health
{
public override void Damage(int damage, GameObject instigator, float flickerDuration, float invincibilityDuration)
{
if (damage <= 0)
{
//処理内容
}
base.Damage(damage, instigator, flickerDuration, invincibilityDuration);
}
}
}
工夫次第でいろいろできることでしょう。
おわりに
60ドルもするだけあって素晴らしいアセットです。
まだほんの一部しか触れていないので、そのうちまたメモするかと思います。