(Unity・LEGOワールドで遊ぶ)乗って移動する床の作成

(オブジェクトの作成)

  • Cubeを1つ作成
  • 名前を「MoveFloor」に変更
  • 形状、色、デザインは自由に変更


(スクリプト)

  • 新規にC#スクリプトを作成
  • 名前を「MoveFloor」に変更

  • 下記のコードを書いてチェック
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveFloor : MonoBehaviour
{
    private bool switch1 = false;
    private bool switch2 = false;
    private Vector3 initialPos;
    public Vector3 goalPos;

    private void Start()
    {
        // 初期位置の取得
        initialPos = transform.position;
    }

    void Update()
    {
        // ボタンで2つのスイッチを切り替える(ポイント)
        // ボタンは自由に設定(ここではTボタン)
        if (Input.GetKeyDown(KeyCode.T))
        {
            switch1 = true;
            switch2 = false;
        }
        // ボタンは自由に設定(ここではUボタン)
        else if (Input.GetKeyDown(KeyCode.U))
        {
            switch1 = false;
            switch2 = true;
        }

        // switch1がオンの時は前進
        if (switch1 == true)
        {
            MoveForward();
        }

        // switch2がオンの時は後退
        if (switch2 == true)
        {
            MoveBack();
        }
    }

    void MoveForward()
    {
        // 目的地を自由に設定
        // 移動速度も自由に設定
        transform.position = Vector3.MoveTowards(transform.position, new Vector3(goalPos.x, goalPos.y, goalPos.z), 2f * Time.deltaTime);
    }

    void MoveBack()
    {
        // 初期位置を目的地に設定
        transform.position = Vector3.MoveTowards(transform.position, initialPos, 2f * Time.deltaTime);
    }
}

  • このスクリプトをMoveFloorオブジェクトに追加

  • 目的地(ゴール地点)の座標を自由に設定

 


(実行結果)

  • 設定が完了したらゲーム再生
  • 乗って、Tボタンを押すと目的地に向かって移動開始(前進)
  • Uボタンを押すとスタート地点に向かって後退すれば成功です。