public override void OnInspectorGUI() { if (IsRootCanvas && j_Canvas != null) { ShowMRTKButton(); List <Graphic> graphics = GetGraphicsWhichRequireScaleMeshEffect(targets); if (graphics.Count != 0) { EditorGUILayout.HelpBox($"Canvas contains {graphics.Count} {typeof(Graphic).Name}(s) which require a {typeof(JMRScaleMeshEffect).Name} to work with the {JMRStandardShaderUtility.StandardShaderName} shader.", MessageType.Warning); if (GUILayout.Button($"Add {typeof(JMRScaleMeshEffect).Name}(s)")) { foreach (var graphic in graphics) { Undo.AddComponent <JMRScaleMeshEffect>(graphic.gameObject); } } } EditorGUILayout.Space(); if (!IsCanvasHasScene) { return; } if (IsJMRToolkitConfigured) { if (j_Canvas.worldCamera == null) { SetRaycastCameraToCanvas(); } } else { EditorGUILayout.HelpBox($"Input Manager not present in scene. Event camera needed in scene to work canvas properly", MessageType.Error); if (j_Timer >= 0.5f) { if (!j_IPManager) { j_IPManager = FindObjectOfType <JMRInputManager>(); } IsJMRToolkitConfigured = (j_IPManager != null) ? true : false; j_Timer = 0; } j_Timer += Time.deltaTime; } } if (j_InternalEditor != null) { j_InternalEditor.OnInspectorGUI(); } }
private void OnEnable() { j_Timer = 0; j_CanvasEditorType = Type.GetType("UnityEditor.CanvasEditor, UnityEditor"); if (j_CanvasEditorType != null) { j_InternalEditor = CreateEditor(targets, j_CanvasEditorType); j_Canvas = target as Canvas; IsRootCanvas = j_Canvas.transform.parent == null || j_Canvas.transform.parent.GetComponentInParent <Canvas>() == null; IsCanvasHasScene = j_Canvas.gameObject.scene.IsValid(); } // Find id the input manager in scene j_IPManager = FindObjectOfType <JMRInputManager>(); IsJMRToolkitConfigured = (j_IPManager != null) ? true : false; }