Unityで作る3D脱出ゲームの作り方を紹介している記事その10です。
僕が所属しているオンラインサロンの
先生である嶋津さんが作成された動画を
見ながら勉強した内容について、
「3D脱出ゲームの作り方」
としてまとめている記事になります。
その10となるこの記事では、
「アイテムをズームした時のズームオブジェクトを回転させる方法」
についてお伝えしています。
参考となる動画はこちらです。
【Unity3D】脱出ゲームの作り方 # 10ズームオブジェクトの回転
Udemyの場合は、
セクション6の52
「アイテム回転の実装#1 簡易実装」
セクション6の53
「アイテム回転の実装#2」
セクション6の54
「アイテム回転の実装#3 バグの修正」
の内容です。
この動画で勉強すること
▶︎ズームオブジェクトを回転できるようにする。
目標1
ズームオブジェクトを回転させる
処理を書くC#スクリプトを用意する。
=>ItemRotationスクリプトを作成する。
目標2
ズームアイテムを回転させる処理を作る。
=>ItemRotationスクリプトにコードを書く。
目標3
マウスをクリックした時にだけ回転させるようにする。
=>ItemRotationスクリプトの編集をする。
目標4
ズームアイテムが回転する方向などの修正を行う。
=>ItemRotationスクリプトの編集をする。
ItemRotationスクリプトのコード
ズームオブジェクトを回転させる
ために作成したItemRotationの
コードは以下となります。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ItemRotation : MonoBehaviour
{
[SerializeField] Transform parent = default;
float k = 500f;
// ドラッグで回転させる
void Update()
{
if (Input.GetMouseButton(0))
{
float x = -Input.GetAxis("Mouse X") * Time.deltaTime * k; //回転する角度x
float y = Input.GetAxis("Mouse Y") * Time.deltaTime * k; //回転する角度y
//transform.Rotate(x, y, 0);
//RotateAround(中心, 軸, 回転する角度)
transform.RotateAround(transform.position, Quaternion.Euler(parent.rotation.eulerAngles) * Vector3.up, x);
transform.RotateAround(transform.position, Quaternion.Euler(parent.rotation.eulerAngles) * Vector3.right, y);
}
}
}
ズームオブジェクトの作成で勉強したことのまとめ
3D脱出ゲームの作り方その10
「ズームオブジェクトの作成」で
勉強した内容についてのまとめです。
・ズームオブジェクトの回転を
するには、まずC#スクリプトの
作成をします。
・次に、ズームアイテムを回転させる
処理を行うコードを書きます。
・そして回転の方向を修正する
コードを書きます。
今回の内容を実践してPlayボタンで
実行すると、
ズームオブジェクトをマウスで
ドラッグすることで回転させることが
できるようになります。
以上で「ズームオブジェクトの回転」
の目標は達成です!