Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

EditorWindow.OnGUI()

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える

説明

ここに独自のエディターの GUI を実装します


"ウィンドウのすべてのコントロールを描画するために OnGUI を使用します。"

	// Simple script that saves frames from the Game View when on play mode
	//
	// You can put later the frames togheter and create a video.
	// Note: The frames are saved next to the Assets folder.
	
	using UnityEngine;
	using UnityEditor;
	
	public class SimpleRecorder : EditorWindow {
		string fileName = "FileName";
	
		string status = "Idle";
		string recordButton = "Record";
		bool recording = false;
		float lastFrameTime = 0.0f;
		int capturedFrame = 0;
	
		[MenuItem ("Example/Simple Recorder")]
		static void Init () {
			SimpleRecorder window = 
				(SimpleRecorder)EditorWindow.GetWindow(typeof(SimpleRecorder));
		}
	
		void OnGUI () {
			fileName = EditorGUILayout.TextField ("File Name:", fileName);
			
			if(GUILayout.Button(recordButton)) {
				if(recording) { //recording
					status = "Idle...";
					recordButton = "Record";				
					recording = false;
				} else { // idle
					capturedFrame = 0;
					recordButton = "Stop";
					recording = true;
				}
			}
			EditorGUILayout.LabelField ("Status: ", status);
		}
		
		void Update () {
			if (recording) {
				if (EditorApplication.isPlaying && !EditorApplication.isPaused){
					RecordImages();
					Repaint();
				} else
					status = "Waiting for Editor to Play";
			}
		}
		
		void RecordImages() {
			if(lastFrameTime < Time.time + (1/24f)) { // 24fps
				status = "Captured frame " + capturedFrame;
				Application.CaptureScreenshot(fileName + " " + capturedFrame + ".png");
				capturedFrame++;
				lastFrameTime = Time.time;	
			}
		}
	}