(Unity・LEGOワールドで遊ぶ)ワープ装置の作成

(オブジェクトの作成)

  • Cubeを1つ作成
  • 名前を「Warp」に変更
  • 色やデザインは自由に変更


(スクリプト)

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

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

public class Warp : MonoBehaviour
{
    private GameObject target;
    public Vector3 pos;

    private void OnTriggerEnter(Collider other)
    {
        if(other.CompareTag("Player"))
        {
            target = other.gameObject;

            // CharacterControllerコンポーネントを一時的にオフにする(ポイント)
            target.GetComponent<CharacterController>().enabled = false;

            target.transform.position = new Vector3(pos.x, pos.y, pos.z);

            Invoke("Reset", 0.2f);
        }
    }

    private void Reset()
    {
        // CharacterControllerコンポーネントをオンの状態に戻す。
        target.GetComponent<CharacterController>().enabled = true;
    }
}

(設定)

  • このスクリプトをWarpオブジェクトに追加
  • Is Triggerにチェック
  • Posを自由に設定(ここで指定した座標にワープします)

  • 主人公のプレーヤーに「Player」のTagが付いているかを確認する。


(実行結果)

  • 設定が完了したらゲーム再生
  • ワープ装置に触れた瞬間にワープすれば成功です。