#2 ランナーを追加して、動かす[Forever+Unity]

道を作っただけでエンドレスランゲームは作れんのですよ。ということで次は実際に動くプレイヤーを作って見ましょう

目次

プレイヤーを作る

ステージがなーんとなく作れるようになりましたが、ゲームとして動きが無いですね。ということで今回はプレイヤーになるものを作りましょう。

とにかく動け!

  • 仮プレイヤーを追加
    • 3D Object > Cube(名前:Runner)
  • Runnerオブジェクトにプレイヤーになるスクリプトをアタッチ
    • Add Compoment>Dreamteck>Forever>Gameplay>Basic Runner
    • コンポーネントの数字を変更。下図を参考に変更してください。変更点意外も違うところがないか注意してください。
  • 動かしてみる
    • 速前進します

カメラを後ろから追従させる

プレイヤーは走り去っていくけど、カメラは置いてけぼりです。次はカメラが後ろからプレイヤーをおかけるようにしましょう。

  • Cinemachineをインストール
    • Window>Package Managerからパッケージマネージャーを表示
    • 左上のメニューをUnity Registryに切り替え
    • Cinemachineを探してインストール
  • Virtual Cameraを追加
    • GameObject>Cinemachine>Virtual Cameraを選択
  • 追加されたCM vcam1の設定を変更
    • デフォルトから以下を設定変更
    • Follow>RunnerのGameObject
    • Look At>RunnerのGameObject
    • Body
      • Follow Offset (0f,2f,-10f)

制御処理を追加する

とりあえず動くようになりましたが、まだゲームは作れないですね。動くプレイヤーに移動処理や当たり判定を追加しましょう。

左右に移動する

Runnerゲームオブジェクトに貼り付けることで、左右への移動が可能になります。

using UnityEngine;
using Dreamteck.Forever;

public class RunnerMover : MonoBehaviour
{
    private Runner runner;
    public float moveSpeed = 5f;
    public float clampWidth = 4f;

    void Start()
    {
        runner = GetComponent<Runner>();
    }

    private void Update()
    {
        runner.motion.offset += new Vector2(Input.GetAxis("Horizontal"), 0f) * moveSpeed * Time.deltaTime;
        runner.motion.offset = new Vector2(Mathf.Clamp(runner.motion.offset.x, -clampWidth, clampWidth), runner.motion.offset.y);
    }
}

何かに当たったら止まる

ゴールやゲームオーバーになるお邪魔オブジェクトとの接触などが取れないと、ゲームを作るのは難しいです。ここではトリガーモードの当たり判定に接触したら停止する処理を作って見ましょう。

using Dreamteck.Forever;
using UnityEngine;

public class HitDetector : MonoBehaviour
{
    private void OnTriggerEnter(Collider other)
    {
        Runner runner = GetComponent<Runner>();
        runner.follow = false;
    }
}

スクリプトはRunnerスクリプトと同じ位置に付ける必要があります。モデルの構成が変わる場合、当たり判定が必要になりますので、コライダーと同じ位置関係が必要になります。

  • HitDetectorコンポーネントをアタッチ
  • Rigidbodyコンポーネントをアタッチ
    • Is Kinematic:enable(チェックを入れる)

あと障害物になる当たり判定のCubeを追加します。

  • Cubeを追加
    • 3D Object>Cube
    • BoxColliderを追加
      • Is Trigger:enable(チェックを入れる
    • Runnerの通り道にTransformを調整
      • Position(0,0,30)
      • Scale(5,5,1)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次