読者です 読者をやめる 読者になる 読者になる

遊べるゲームを作りたい

作りたいです。

Unityで自作ゲームを作る チャージショット(ホーミングショット)機能

f:id:hogemarunosuke:20170219123826p:plain

遊び方

WASDキーで移動。スペースキーでジャンプ。マウスで視点移動。
左クリックで射撃。右クリックでロックオン。左シフトでダッシュ(前進中のみ)。
左ダブルクリック後、押しっぱなしでチャージ、離してチャージショット。

うわ。準備とかいって記事書いたの2週間前じゃないか。

ホーミングショットの実装

ロックオン中にチャージショットでホーミングするようにしました。スターフォックスのアレみたいな感じで。コードは↓のような感じでいたってシンプルです。弾速が遅いので鬼誘導でも違和感はありませんが、早い場合は1フレームごとの最大修正移動量みたいなものを決めておいた方がいいかも。

private void Update()
{
    if (homingTarget != null)
    {
        SetDirection(homingTarget.transform.position);
    }

    transform.Translate(direction.normalized * speed * Time.deltaTime, Space.World);
}

public void SetDirection(Vector3 targetPos)
{
    this.direction = targetPos - transform.position;
}

で。最近になってようやく「OnTriggerEnter()」の存在を知りました。ColliderのIsTriggerの存在は知っていたのですが、ずっと「OnCollisionEnter()」で検出するものだとばかり思っていて、動かねー動かねーと愚痴りつつ、意味の良くわからない邪悪なコードを書いていました。ちゃんとマニュアル読まないとだめね。

次は、ダッシュ中の風エフェクトとか、二段ジャンプとか、緊急回避(ステッポ)とか、ダメージモーションとか、いい加減ポーズ画面を作っていく予定です。