Version: 5.3 (switch to 5.4b)
IdiomaEnglish
  • C#
  • JS

Idioma de script

Selecciona tu lenguaje de programación favorito. Todos los fragmentos de código serán mostrados en este lenguaje.

EditorWindow.OnGUI()

Sugiere un cambio

¡Éxito!

Gracias por ayudarnos a mejorar la calidad de la documentación de Unity. A pesar de que no podemos aceptar todas las sugerencias, leemos cada cambio propuesto por nuestros usuarios y actualizaremos los que sean aplicables.

Cerrar

No se puedo enviar

Por alguna razón su cambio sugerido no pudo ser enviado. Por favor <a>intente nuevamente</a> en unos minutos. Gracias por tomarse un tiempo para ayudarnos a mejorar la calidad de la documentación de Unity.

Cerrar

Cancelar

Cambiar al Manual

Descripción

Implement your own editor GUI here.


Use OnGUI to draw all the controls of your window.

	// 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;	
			}
		}
	}