Unityで作る3D脱出ゲームの作り方を紹介している記事その27です。
僕が所属しているオンラインサロンの
先生である嶋津さんが作成された動画を
見ながら勉強した内容について、
「3D脱出ゲームの作り方」
としてまとめている記事になります。
その27となるこの記事では、
「アイテムの配置と取得をする方法」
についてお伝えしています。
参考となる動画はこちらです。
【Unity】ライブで教材制作!脱出ゲーム制作の残りを終わらせるぞ!パート1
このページでお伝えしている内容は、
動画の1:13:31あたりからの内容になります。
<注意>
「#25カメラのズーム機能」を
参考にしてカメラズームを作成した場合、
上記動画内でのやり方と
多少違う場所が出てきます。
その都度記事内でフォローして
おりますが、わかりにくい場合や
動画の内容に沿って進めたい場合には、
上記、ライブで教材作成パート1の
内容に沿ってズームカメラから
作り直した方がいいかもしれません。
この動画で勉強すること
▶︎アイテムの配置と取得方法について学ぶ。
目標1
赤タイルを宝箱の中に配置する。
=>RedTileを移動させて宝箱の中に入れる。
「#25カメラのズーム機能」の動画を参考にした場合
=>RedTileのLayerをGimmickに変更する。
=>RedTileを宝箱の中に入れた後、RedTileの表示を消しておく。
=>Chestスクリプトを編集して、宝箱が開いた時にRedTileを表示させるようにする。
目標2
青タイルと黄色タイルを取得できるようにする。
(#25「カメラのズーム機能」の動画を参考にしていた場合はそのままでも取得できます。)
=>LayerのAdd Layerから青タイル・黄色タイル用のレイヤーを作成する。(CanMainCameraClick)
=>BlueTileとYellowTileのLayerを「CanMainCameraClick」に変更する。
=>Main CameraのPhysics RaycasterにあるEvent Maskに「CanMainCameraClick」を追加する。(チェックをつける)
Chestスクリプトのコード
「#25カメラのズーム機能」の動画を参考にした場合のみ編集。
宝箱へ配置した赤タイル(RedTile)を
表示させるためにChestスクリプトに
コードを追加しました。
そのコードは以下となります。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Chest : MonoBehaviour
{
// クリックされたら
// 鍵を持っていると:鍵を取得して選択状態なら
// 開ける=アニメーション
[SerializeField] Animation anim = default;
[SerializeField] GameObject redTile; // 今回追加:表示させたい赤タイルを設定する変数
public void Open()
{
// keyアイテムを選択していたら
if (ItemBox.instance.CheckSelectItem(Item.Type.Key))
{
ItemBox.instance.UseSelectItem();
redTile.SetActive(true); // 今回追加:赤タイルの表示するコード。
anim.Play();
}
}
}
アイテムの配置と取得をする方法で勉強したことのまとめ
3D脱出ゲームの作り方その27
「アイテムの配置と取得をする方法」
で勉強した内容についてのまとめです。
・アイテムを配置するには、
配置したい場所へアイテムを
移動させます。
今回は宝箱の中へ
Red Tileを移動させました。
・次にアイテムを取得する方法です。
まずズーム状態のカメラと
メインカメラでクリックできる
レイヤーをそれぞれ作成します。
・そして配置した場所に応じて
アイテムにそれぞれのレイヤーをつけます。
・さらにメインカメラとズームの
カメラについている
「Physics Raycaster」
にある「Event Mask」に、
それぞれのアイテムに設定した
レイヤーをクリックできるよう
チェックをつけてあげます。
これでカメラに応じた場所へ
配置したアイテムをそれぞれ
取得できるようになります。
「アイテムの配置と取得をする方法」
の目標は以上で達成です!