在窗口获得键盘焦点时调用。
另请参阅:OnLostFocus。
\
选择窗口后,在正交模式下预览摄像机。
// Simple script that lets you preview your main camera in // Orthographic view when selected. using UnityEngine; using UnityEditor; using UnityEngine.UIElements; public class OrthographicPreview : EditorWindow { RenderTexture renderTexture; Camera camera; Image image; [MenuItem("Examples/Orthographic Previewer")] static void Init() { OrthographicPreview window = (OrthographicPreview)EditorWindow.GetWindow(typeof(OrthographicPreview), true, "My Empty Window"); window.Show(); } void OnEnable() { int w = (int)this.position.width; int h = (int)this.position.height; image = new Image(); renderTexture = new RenderTexture(w, h, 32, RenderTextureFormat.ARGB32); camera = Camera.main; } void OnDisable() { Object.DestroyImmediate(renderTexture); } void CreateGUI() { var buttonClose = new Button(); buttonClose.text = "Close"; buttonClose.clicked += () => { camera.orthographic = false; this.Close(); }; rootVisualElement.Add(buttonClose); if (renderTexture != null) { image.image = renderTexture; rootVisualElement.Add(image); } } void OnFocus() { Selection.activeTransform = camera.transform; camera.orthographic = true; } void Update() { int w = (int)this.position.width; int h = (int)this.position.height; if (renderTexture.width != w || renderTexture.height != h) { Object.DestroyImmediate(renderTexture); renderTexture = new RenderTexture(w, h, 32, RenderTextureFormat.ARGB32); image.image = renderTexture; } if (camera != null) { camera.targetTexture = renderTexture; camera.Render(); camera.targetTexture = null; } } void OnLostFocus() { camera.orthographic = false; } }