static public void CreateCanvas() { if (rootTransform != null) { DestroyImmediate(rootTransform.transform.parent.gameObject); } GameObject root = new GameObject(); root.name = "Canvas"; Canvas canvas = root.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; canvas.sortingOrder = -1; CanvasScaler canvasScaler = root.AddComponent <CanvasScaler>(); canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; canvasScaler.matchWidthOrHeight = 1; canvasScaler.referenceResolution = new Vector2(1920, 1080); CanvasGroup canvasGroup = root.AddComponent <CanvasGroup>(); canvasGroup.blocksRaycasts = false; root.AddComponent <GraphicRaycaster>(); root.AddComponent <RoR2.UI.MPEventSystemProvider>(); Image background = ElementCreator.SpawnImageOffset(new List <Image>(), root, null, new Color(0, 0, 0, 0), new Vector2(0, 1), new Vector2(0, 0), new Vector2(0, 0)); background.raycastTarget = true; GameObject rootTransformObject = new GameObject("Base"); rootTransformObject.transform.parent = root.transform; rootTransform = rootTransformObject.AddComponent <RectTransform>(); rootTransform.pivot = new Vector2(0, 0); rootTransform.anchorMin = Vector2.zero; rootTransform.anchorMax = Vector2.one; rootTransform.offsetMin = Vector2.zero; rootTransform.offsetMax = Vector2.zero; rootTransform.localScale = Vector3.one; CanvasGroup canvasGroupChild = rootTransformObject.AddComponent <CanvasGroup>(); canvasGroupChild.blocksRaycasts = true; itemDropListMenu = rootTransform.gameObject.AddComponent <RoR2.UI.MainMenu.BaseMainMenuScreen>(); itemDropListMenu.desiredCameraTransform = new GameObject().transform; itemDropListMenu.desiredCameraTransform.position = new Vector3(20, 40, 0); itemDropListMenu.desiredCameraTransform.eulerAngles = new Vector3(90, 20, 0); //itemDropListMenu.desiredCameraTransform.position = new Vector3(60, 10, 35); //itemDropListMenu.desiredCameraTransform.eulerAngles = new Vector3(40, 165, 0); itemDropListMenu.desiredCameraTransform.localScale = new Vector3(1, 1, 1); itemDropListMenu.onEnter = new UnityEngine.Events.UnityEvent(); itemDropListMenu.onEnter.AddListener(OpenStartingItems); itemDropListMenu.onExit = new UnityEngine.Events.UnityEvent(); itemDropListMenu.onExit.AddListener(CloseStartingItems); }
static public void GetObjectsFromScene() { menuController = GameObject.FindObjectOfType(typeof(RoR2.UI.MainMenu.MainMenuController)) as RoR2.UI.MainMenu.MainMenuController; Transform newObject = null; List <string> objectHierarchyA = new List <string>() { "MainMenu", "MENU: Title", "TitleMenu" }; if (Util.GetObjectFromScene(ref newObject, objectHierarchyA, 0, null)) { mainMenu = newObject.GetComponent <RoR2.UI.MainMenu.BaseMainMenuScreen>(); } List <string> objectHierarchyB = new List <string>() { "MainMenu", "MENU: Title", "TitleMenu", "SafeZone", "GenericMenuButtonPanel", "JuicePanel", "GenericMenuButton (Logbook)" }; if (Util.GetObjectFromScene(ref newObject, objectHierarchyB, 0, null)) { logbookButton = newObject.gameObject; } }