簡単な3Dパズル風ゲーム作成。Part2.ブロック・スイッチ【Unityゲーム作成】

簡単な3Dパズル風ゲーム作成の第2回目です。今回はブロックとスイッチを設定していきます。

はじめに

前回の続きの第2回目です。第1回目は下記から。

ゲーム作成開始

前回は「地面」と「壁」と「プレイヤー」を設定しました。今回は「ブロック」と「スイッチ」を設定していきます。

カメラ設定

まずは少しだけカメラの設定をします。位置とスケールをとりあえず仮として変更しておきます。

次に、スクリプトを作成します。プレイヤーが動いた分だけカメラも動くようにしておきます。

スクリプト名は「CameraMove」にして中身を下記に変更します。

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

public class CameraMove : MonoBehaviour
{
    public GameObject player;
    private Vector3 _offset;

    void Start()
    {
        _offset = transform.position - player.transform.position;
    }

    void LateUpdate()
    {
        transform.position = player.transform.position + _offset;

    }
}

作成したスクリプトをカメラオブジェクトにくっつけて変数にPlayerをセットします。

これでプレイヤーが動いた分だけカメラが動きます。

動かすブロックを作成

次にプレイヤーが動かすブロックを作成します。

ヒエラルキーメニューから「3Dオブジェクト」→「キューブ」を追加。

見分けがつきやすいように仮色を付けておきます。

「マテリアル」を作成してブロックにくっつけておきます。

ブロックに「コンポーネントを追加」からRigidbodyを追加。質量を小さくして、回転しないようにします。

これでプレイヤーがブロックを押せるようになります。

スイッチの作成

次にスイッチを作成します。ヒエラルキーメニューから「空のオブジェクトを作成」。名前をSwitchにしておきます。

配下に「3Dオブジェクト」→「キューブ」を追加。スイッチOFF状態です。

サイズを変更して、マテリアルも変更しておきます。

コピーして、スイッチON状態のオブジェクトを追加しておきます。

位置Yを下の方に変更しただけです。

次に、スクリプトを作成。スイッチにブロックが触れたら切り替わるようにします。

スクリプト名は「Switch」にして中身を下記にします。

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

public class Switch : MonoBehaviour
{
	public GameObject onSwitch;
	public GameObject offSwitch;

	private void OnTriggerEnter(Collider other)
	{
		onSwitch.SetActive(true);
		offSwitch.SetActive(false);
	}
	private void OnTriggerExit(Collider other)
	{
		onSwitch.SetActive(false);
		offSwitch.SetActive(true);
	}
}

Switchオブジェクトにスクリプトをくっつけて、変数をセット。

「コンポーネントを追加」からBOXコライダーを追加して、サイズを変更、トリガーにします。

試しに動かして、下記の様にプレイヤーでブロックを押して、スイッチの上に乗った時にオブジェクトが切り替わればOK

タイトルとURLをコピーしました