(Unity)簡易的なエレベータを作成する

(スクリプト)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GondolaSwitch : MonoBehaviour
{
    public MoveFloor mf;
    public GameObject door;
    public GameObject door2;
    public GameObject gondola;
    private float posY;

    private void Update()
    {
        posY = gondola.transform.position.y;

        // ゴンドラの高さが5を超えたら移動を停止
        if (posY > 5)
        {
            mf.enabled = false;

            // 反対側のドアを開く
            door2.SetActive(false);
        }
    }

    private void OnTriggerEnter(Collider other)
    {
        if(other.CompareTag("Player"))
        {
            mf.enabled = true;

            // ドアオブジェクトをワープさせて閉じる
            door.transform.position = new Vector3(-1.5f, 0.5f, 0);

            // ドアオブジェクトをゴンドラの子供に設定する
            door.transform.parent = gondola.transform;
        }
    }

}

(実行)

  • 最初の状態

  • 乗り込むと、ドアが閉まる
  • 上部方向に移動を開始する

  • 移動中

  • 指定の高さに到達すると移動停止
  • 反対側のドアが開く