13 [CustomEditor(typeof(Canvas))]
16 private const string DialogText =
"Hi there, we noticed that you've changed this canvas to use WorldSpace.\n\n" +
17 "In order for the InputManager to work properly with uGUI raycasting we'd like to update this canvas' " +
18 "WorldCamera to use the FocusManager's UIRaycastCamera.\n";
20 private Canvas canvas;
22 private void OnEnable()
24 canvas = (Canvas)target;
29 EditorGUI.BeginChangeCheck();
30 base.OnInspectorGUI();
36 bool removeHelper =
false;
39 if (canvas.isRootCanvas && canvas.renderMode == RenderMode.WorldSpace && canvas.worldCamera !=
FocusManager.
Instance.UIRaycastCamera)
41 if (EditorUtility.DisplayDialog(
"Attention!", DialogText,
"OK",
"Cancel"))
52 if (canvas.isRootCanvas && canvas.renderMode == RenderMode.WorldSpace && canvas.worldCamera ==
FocusManager.
Instance.UIRaycastCamera)
54 var helper = canvas.gameObject.EnsureComponent<
CanvasHelper>();
59 if (canvas.isRootCanvas && canvas.renderMode != RenderMode.WorldSpace && canvas.worldCamera ==
FocusManager.
Instance.UIRaycastCamera)
62 canvas.worldCamera = null;
73 DestroyImmediate(helper);