スポンサーリンク

Unityで3D脱出ゲーム(5)カメラ移動

前回は、ブタの貯金箱などの3Dモデルの作成を行った。(Metasequoia4+Blender2.7)

http://twosquirrel.mints.ne.jp/?p=13669

引き続き、以下の本とサイトを参考にしながら、進めていく。

    

閃光絵巻ラボ 「 Unityで脱出ゲームの作り方 」
http://senkouemaki.com/lab/?cat=2

<Unityの流れ>
(1)プロジェクトの作成
(2)オブジェクトの配置
(3)スクリプトの作成
(4)スクリプトのアタッチ

(環境)
Windows8.1
Unity5.5.0f3
VisualCode
SourceTree 1.9.10.0
Pageant

(1)切り替えボタンの配置

GameObject > UI > Button で、名前をButtonLeft に変更。

image image

PosX :-320, Width: 100, Height: 200 に設定
Canvas > ButtonLeft > Text で、Text(Script)のText: < , Character>Font Size: 100 に設定
色も変更しておく

image image

Canvas > ButtonLeft を右クリックして、Duplicate
名前をButtonRightに変更

image image

image

PosX :320  に変更
Canvas > Right > Text で、Text(Script)のText: >  に変更

image image

(2)カメラを90度ずつ回転するスクリプトを書く

Hierarchyビューで右クリックして、Create Empty ,名前をGameManagerに変更
Projectビューで、Assets > Scripts で、右クリックして、Create > C# Script で、名前をGameManagerに変更
Hierarchyビューで、GameManagerを選択し、Inspectorビューで、Add Component > Scripts > Game Manager を選択

image image

image image

image image

GameManager.cs の変更

GameManager.csをダブルクリックして、編集。

image image

image

[sourcecode language="csharp" padlinenumbers="true"]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class GameManager : MonoBehaviour {

    public GameObject mainCamera;   // カメラの定義
    public EventSystem eventsystem; // イベントシステム(いろんなことに使う)の定義

	// Use this for initialization
	void Start () {
        eventsystem = GameObject.Find(&quot;Eventsystem&quot;).GetComponent&lt;EventSystem&gt;();
        GameObject.Find(&quot;mainCamera&quot;).transform.rotation = Quaternion.Euler(0, 90, 0);
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}
[/sourcecode]

HierarchyビューのMain Cameraを選択して、Inspectorビューで、名前をmainCameraに変更。

image image

ここで、画面真ん中上の再生ボタン(▲)をクリックしても、カメラが回転しない。。。

GameManager.cs の、EventSystemの、Sが小文字のsになっていたので、大文字にお修正。

もう一度、画面真ん中上の再生ボタン(▲)をクリックすると、カメラが90度回転した!

image image

しかし、金庫とメモ帳が暗すぎる。

どうやら、メタセコイアでマテリアルなどを指定するときに、名前をデフォルトから全部変更しておいた方が、Unityへ(Blenderを経由して)エクスポートしたときに、Unity上で変更しやすそうな雰囲気であった。

なんか見栄えがとても納得がいかないが、集中力の限界なので、このあたりで。。。

Unityで物体のレンダリングがどうなっているのかさっぱりわからない。

image

(3)さらにカメラを左に、右にそれぞれ90度ずつ回転できるようにしたい。

image 

GameManager.cs
image

スクリプトはUnityで脱出ゲームの作り方(4)「部屋の中を移動する・UIでカメラ回転編」を参考にさせていただいた。

image image

image image

これで、画面の左側のボタンをクリックすると、90度ずつ左側を向くことができるようになった。

同様に、ButtonRight のスクリプトもGameManager.csに記載する。

GameManager.cs (39行目のbreak; がミスプリしている)
image image

これで、右回転もできるようになった。
本当はiTweenを使いたいが、まあ、今回はあきらめる。

次は、「3Dオブジェクトをクリックで取得」をやりたい。

急遽、鍵穴つきのドアを作成しておいた。

image

スポンサーリンク

Unity

Posted by twosquirrel