(オブジェクトの作成)
- 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ボタンを押すとスタート地点に向かって後退すれば成功です。