Exemplo n.º 1
0
            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);
            }
Exemplo n.º 2
0
            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;
                }
            }