/// <summary> /// Draw the custom wizard. /// </summary> void OnGUI() { #pragma warning disable 0618 EditorGUIUtility.LookLikeControls(80f); #pragma warning restore 0618 List <Camera> list = NGUIEditorTools.FindInScene <Camera>(); if (list.Count > 0) { DrawRow(null); NGUIEditorTools.DrawSeparator(); mScroll = GUILayout.BeginScrollView(mScroll); foreach (Camera cam in list) { DrawRow(cam); } GUILayout.EndScrollView(); } else { GUILayout.Label("No cameras found in the scene"); } }
/// <summary> /// Draw the custom wizard. /// </summary> void OnGUI() { //EditorGUIUtility.LookLikeControls(80f); EditorGUIUtility.labelWidth = 80; EditorGUIUtility.fieldWidth = 80; List <Camera> list = NGUIEditorTools.FindInScene <Camera>(); if (list.Count > 0) { DrawRow(null); NGUIEditorTools.DrawSeparator(); mScroll = GUILayout.BeginScrollView(mScroll); foreach (Camera cam in list) { DrawRow(cam); } GUILayout.EndScrollView(); } else { GUILayout.Label("No cameras found in the scene"); } }
/// <summary> /// Create a brand-new UI hierarchy. /// </summary> static public GameObject CreateNewUI() { NGUIEditorTools.RegisterUndo("Create New UI"); // Root for the UI GameObject root = null; if (camType == CameraType.Simple2D) { root = new GameObject("UI Root (2D)"); root.AddComponent <UIRoot>().scalingStyle = UIRoot.Scaling.PixelPerfect; } else { root = new GameObject((camType == CameraType.Advanced3D) ? "UI Root (3D)" : "UI Root"); root.transform.localScale = new Vector3(0.0025f, 0.0025f, 0.0025f); root.AddComponent <UIRoot>().scalingStyle = UIRoot.Scaling.FixedSize; } // Assign the layer to be used by everything root.layer = NGUISettings.layer; // Figure out the depth of the highest camera if (camType == CameraType.None) { // No camera requested -- simply add a panel UIPanel panel = NGUITools.AddChild <UIPanel>(root.gameObject); Selection.activeGameObject = panel.gameObject; } else { int mask = 1 << NGUISettings.layer; float depth = -1f; bool clearColor = true; bool audioListener = true; List <Camera> cameras = NGUIEditorTools.FindInScene <Camera>(); foreach (Camera c in cameras) { // Choose the maximum depth depth = Mathf.Max(depth, c.depth); // Automatically exclude the specified layer mask from the camera if it can see more than that layer if (NGUISettings.layer != 0 && c.cullingMask != mask) { c.cullingMask = (c.cullingMask & (~mask)); } // Only consider this object if it's active if (c.enabled && NGUITools.GetActive(c.gameObject)) { clearColor = false; } // If this camera has an audio listener, we won't need to add one if (c.GetComponent <AudioListener>() != null) { audioListener = false; } } // Camera and UICamera for this UI Camera cam = NGUITools.AddChild <Camera>(root); cam.depth = depth + 1; cam.backgroundColor = Color.grey; cam.cullingMask = mask; if (camType == CameraType.Simple2D) { cam.orthographicSize = 1f; cam.orthographic = true; cam.nearClipPlane = -2f; cam.farClipPlane = 2f; } else { cam.nearClipPlane = 0.1f; cam.farClipPlane = 4f; cam.transform.localPosition = new Vector3(0f, 0f, -700f); } // We don't want to clear color if this is not the first camera if (cameras.Count > 0) { cam.clearFlags = clearColor ? CameraClearFlags.Skybox : CameraClearFlags.Depth; } // Add an audio listener if we need one if (audioListener) { cam.gameObject.AddComponent <AudioListener>(); } // Add a UI Camera for event handling cam.gameObject.AddComponent <UICamera>(); if (camType == CameraType.Simple2D) { // Anchor is useful to have UIAnchor anchor = NGUITools.AddChild <UIAnchor>(cam.gameObject); anchor.uiCamera = cam; // And finally -- the first UI panel UIPanel panel = NGUITools.AddChild <UIPanel>(anchor.gameObject); Selection.activeGameObject = panel.gameObject; } else { UIPanel panel = NGUITools.AddChild <UIPanel>(root); Selection.activeGameObject = panel.gameObject; } } return(Selection.activeGameObject); }
void CreateNewUI() { NGUIEditorTools.RegisterUndo("Create New UI"); // Root for the UI GameObject root = null; if (camType == CameraType.Simple2D) { root = new GameObject("UI Root (2D)"); root.AddComponent <UIRoot>(); } else { root = new GameObject((camType == CameraType.Advanced3D) ? "UI Root (3D)" : "UI Root"); root.transform.localScale = new Vector3(0.0025f, 0.0025f, 0.0025f); UIRoot uiRoot = root.AddComponent <UIRoot>(); uiRoot.automatic = false; uiRoot.manualHeight = 800; } // Apparently ensuring that there is a kinematic rigidbody on the root of the UI makes collisions checks much faster. Rigidbody rb = root.AddComponent <Rigidbody>(); rb.useGravity = false; rb.isKinematic = true; // Assign the layer to be used by everything root.layer = layer; // Figure out the depth of the highest camera if (camType == CameraType.None) { // No camera requested -- simply add a panel UIPanel panel = NGUITools.AddChild <UIPanel>(root.gameObject); Selection.activeGameObject = panel.gameObject; } else { int mask = 1 << layer; float depth = -1f; bool clearColor = true; bool audioListener = true; List <Camera> cameras = NGUIEditorTools.FindInScene <Camera>(); foreach (Camera c in cameras) { // Choose the maximum depth depth = Mathf.Max(depth, c.depth); // Automatically exclude the specified layer mask from the camera if it can see more than that layer if (layer != 0 && c.cullingMask != mask) { c.cullingMask = (c.cullingMask & (~mask)); } // Only consider this object if it's active if (c.enabled && NGUITools.GetActive(c.gameObject)) { clearColor = false; } // If this camera has an audio listener, we won't need to add one if (c.GetComponent <AudioListener>() != null) { audioListener = false; } } // Camera and UICamera for this UI Camera cam = NGUITools.AddChild <Camera>(root); cam.depth = depth + 1; cam.backgroundColor = Color.grey; cam.cullingMask = mask; if (camType == CameraType.Simple2D) { cam.orthographicSize = 1f; cam.orthographic = true; cam.nearClipPlane = -2f; cam.farClipPlane = 2f; } else { cam.nearClipPlane = 0.1f; cam.farClipPlane = 4f; cam.transform.localPosition = new Vector3(0f, 0f, -1.7f); } // We don't want to clear color if this is not the first camera if (cameras.Count > 0) { cam.clearFlags = clearColor ? CameraClearFlags.Skybox : CameraClearFlags.Depth; } // Add an audio listener if we need one if (audioListener) { cam.gameObject.AddComponent <AudioListener>(); } // Add a UI Camera for event handling cam.gameObject.AddComponent <UICamera>(); // Anchor is useful to have UIAnchor anchor = NGUITools.AddChild <UIAnchor>(cam.gameObject); anchor.uiCamera = cam; // Since the camera was brought back 700 units above, we should bring the anchor forward to compensate if (camType == CameraType.Advanced3D) { anchor.depthOffset = 1.7f; } // And finally -- the first UI panel UIPanel panel = NGUITools.AddChild <UIPanel>(anchor.gameObject); Selection.activeGameObject = panel.gameObject; } }