スポンサーリンク
スポンサーリンク
UnityUnityメモ

Unityで十字キーの入力で1つの座標分だけ移動させる方法

Unity

はじめに

Unityを使ってゲームを開発していると、キャラクターやオブジェクトの動きをコントロールすることがよくあります。今回は、Unityで3Dオブジェクトの一つであるCubeを十字キーの入力で1つの座標だけ移動させる方法について、初心者の方にも分かりやすく解説していきましょう。

前提知識

Unityでは、オブジェクトの位置を変更するには、Transformコンポーネントを使用します。Transformコンポーネントには、オブジェクトの位置(Position)、回転(Rotation)、スケール(Scale)を管理するためのプロパティがあります。今回は、位置(Position)のプロパティを操作して、Cubeを移動させます。

移動処理の基本

Cubeを移動させるには、まずUnityのエディタでCubeをシーンに追加し、そのCubeにスクリプトをアタッチしてコントロールします。スクリプトはC#で書くのが一般的です。

  1. Cubeの準備: Unityエディタで、Hierarchyウィンドウの「Create」ボタンをクリックし、「3D Object」→「Cube」を選択して、シーンにCubeを追加します。
  2. スクリプトの作成: プロジェクトウィンドウで右クリックし、「Create」→「C# Script」を選択して、スクリプトを新規作成します。スクリプトには分かりやすい名前をつけましょう。例えば、「CubeMove」とします。
  3. スクリプトをCubeにアタッチ: 作成したスクリプトを、Hierarchyウィンドウから選択したCubeにドラッグ&ドロップします。

スクリプトのコード

ここからが本題です。CubeMoveスクリプトを開き、以下のコードを記述します。

using UnityEngine;

public class CubeMove : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            this.transform.Translate(0, 0, 1);
        }
        if (Input.GetKeyDown(KeyCode.DownArrow))
        {
            this.transform.Translate(0, 0, -1);
        }
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            this.transform.Translate(1, 0, 0);
        }
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            this.transform.Translate(-1, 0, 0);
        }
    }
}

このC#スクリプトは、Unityでオブジェクト(この場合はCube)をキーボードの矢印キーを使って動かすためのものです。Updateメソッド内で、矢印キーの入力を検出し、それに応じてCubeをX軸またはZ軸に沿って1ユニット分移動させます。

具体的には、以下の動作を行います:

  • 上矢印キー(KeyCode.UpArrow)が押されると、CubeをZ軸の正の方向(前方向)に1ユニット移動します。
  • 下矢印キー(KeyCode.DownArrow)が押されると、CubeをZ軸の負の方向(後方向)に1ユニット移動します。
  • 右矢印キー(KeyCode.RightArrow)が押されると、CubeをX軸の正の方向(右方向)に1ユニット移動します。
  • 左矢印キー(KeyCode.LeftArrow)が押されると、CubeをX軸の負の方向(左方向)に1ユニット移動します。

this.transform.Translate(x, y, z)メソッドは、オブジェクトを指定されたx, y, zの値だけ移動させるために使います。このコードでは、y軸(上下)には移動せず、x軸(左右)またはz軸(前後)にのみ移動させています。

まとめ

以上で、UnityでCubeを十字キーの入力によって1つの座標だけ移動させる基本的な方法について説明しました。この方法をマスターすれば、キャラクターや他のオブジェクトの基本的な動きを作る土台ができます。Unityでのゲーム開発は、このような小さな機能を組み合わせていくことで、徐々に複雑な動きやロジックを実装していくことができます。

この記事がUnityを使ったゲーム開発に興味を持っている初心者の方々にとって、理解しやすく役立つ情報源となれば幸いです。Unityでのゲーム開発は非常に奥深く、無限の可能性を秘めています。一歩一歩確実にスキルを積み上げていきましょう。

スポンサーリンク
C-BA memo
タイトルとURLをコピーしました