強火で進め

このブログではプログラム関連の記事を中心に書いてます。

カメラの位置をスライダーで移動させるエディタ拡張

エディタ拡張の内容

スクロールが多い横スクロールタイプのアクションゲームやシューティングゲームだとカメラの移動が結構面倒臭いのでスライダーで移動出来る様に作成。Z軸方向に 0〜1000 の範囲で移動させる事が出来ます。

Main Cameraでのみ使える様に作成して有ります。
Main CameraのInspectorでこちらのスライドを変更する事で移動させる事が出来ます。

作成方法

ProjectビューでEditorフォルダを作成し、その中にプログラムのファイルを置く。C#JavaScriptの両方のプログラムを作りましたのでお好きな方をお使い下さい。

C#の場合】
以下のプログラムを CameraCustom というファイルで保存。

using UnityEngine;
using UnityEditor;
using System.Collections;

[CustomEditor (typeof(Camera))]
public class CameraCustom : Editor {
	public override void OnInspectorGUI()
	{
		if (this.target == Camera.mainCamera) {
		    GUILayout.BeginHorizontal();
		    GUILayout.Label("Position Z");
			Camera mainCamera = Camera.mainCamera;
			if (mainCamera != null) {
				Vector3 pos = mainCamera.transform.position;
				pos.z = EditorGUILayout.Slider(pos.z, 0, 1000);
				mainCamera.transform.position = pos;
			}
		    GUILayout.EndHorizontal();
		}
	}
}

JavaScriptの場合】
以下のプログラムを CameraCustom というファイルで保存。

#pragma strict

@CustomEditor (Camera)
class CameraCustom extends Editor {
	function OnInspectorGUI() {
		if (this.target == Camera.mainCamera) {
		    GUILayout.BeginHorizontal();
		    GUILayout.Label("Position Z");
			var mainCamera : Camera = Camera.mainCamera;
			if (mainCamera != null) {
				var pos : Vector3 = mainCamera.transform.position;
				pos.z = EditorGUILayout.Slider(pos.z, 0, 1000);
				mainCamera.transform.position = pos;
			}
		    GUILayout.EndHorizontal();
	    }
	}
}