/*__________________________________________________________________________________________________________*/ protected static void Create(Transform parent, Picker colorGrid, int buttonCount, GameObject lockerPrefab = null) { #if SUBNAUTICA lockerPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <Text>()); #elif BELOWZERO var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <TextMeshProUGUI>()); #endif textPrefab.fontSize = 12; textPrefab.color = ScreenContentColor; float padding = 10; float width = padding + colorGrid.ButtonSize + (colorGrid.ButtonsPerRow * colorGrid.Spacing); int rowCount = Mathf.CeilToInt(colorGrid.ButtonsPerPage / (float)colorGrid.ButtonsPerRow); float height = 20 + colorGrid.ButtonSize + ((rowCount - 0.5f) * colorGrid.Spacing); var rt = colorGrid.rectTransform; // The first Vector2 positions the colorGrid on the locker horz / vert. RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.6f), parent); RectTransformExtensions.SetSize(rt, width, height); colorGrid.background = colorGrid.gameObject.AddComponent <Image>(); colorGrid.background.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("Background.png")); colorGrid.background.color = new Color(1, 1, 1); for (int i = 0; i < buttonCount; ++i) { var colorButton = ColorPickerButton.Create(colorGrid.transform, colorGrid.ButtonSize, colorGrid.ButtonSize * 0.7f); colorGrid.buttons.Add(colorButton); } }
public static CheckboxButton CreateCheckbox(Transform parent, Color color, TextMeshProUGUI textPrefab, string label, float width = 100) { #endif var checkboxButton = new GameObject("Checkbox", typeof(RectTransform)); var rt = checkboxButton.transform as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, width, 20); rt.anchoredPosition = new Vector2(0, 0); var iconWidth = 20; var checkbox = LockerPrefabShared.CreateIcon(rt, color, 0); RectTransformExtensions.SetSize(checkbox.rectTransform, iconWidth, iconWidth); checkbox.rectTransform.anchoredPosition = new Vector2(-width / 2 + iconWidth / 2, 0); var spacing = 5; var text = LockerPrefabShared.CreateText(rt, textPrefab, color, 0, 10, label); RectTransformExtensions.SetSize(text.rectTransform, width - iconWidth - spacing, iconWidth); text.rectTransform.anchoredPosition = new Vector2(iconWidth / 2 + spacing, 0); #if SN1 text.alignment = TextAnchor.MiddleLeft; #elif BZ text.alignment = TextAlignmentOptions.MidlineLeft; #endif checkboxButton.AddComponent <BoxCollider2D>(); var button = checkboxButton.AddComponent <CheckboxButton>(); button.image = checkbox; button.text = text; button.UpColor = color; return(button); }
internal static TextMeshProUGUI CreateText(Transform parent, TextMeshProUGUI prefab, Color color, int y, int size, string initial, string lockerType) { var text = new GameObject("TextMeshProUGUI", typeof(RectTransform)).AddComponent <TextMeshProUGUI>(); #endif var rt = text.rectTransform; // Positions the "Locker" label on the locker RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); // The size of the Filter rectangle for each locker type if (lockerType == "Locker(Clone)") { RectTransformExtensions.SetSize(rt, 138, 200); } else { RectTransformExtensions.SetSize(rt, 112, 200); } rt.anchoredPosition = new Vector2(0, y); text.font = prefab.font; text.fontSize = size; text.color = color; text.text = initial; return(text); }
private static void PatchSmallLocker(uGUI_SignInput __instance) { __instance.inputField.lineType = InputField.LineType.MultiLineNewline; //__instance.inputField.lineType = TMPro.TMP_InputField.LineType.MultiLineNewline; //The Multiline Feature seems to be broken. It was switched to the TextMeshPro Libary and after this it worked agein. //For now waiting for the experimental Branch to get Stable to see if this can be fixed on SN too like BZ. __instance.inputField.characterLimit = Mod.Config.SmallLockerTextLimit; var rt = __instance.inputField.transform as RectTransform; RectTransformExtensions.SetSize(rt, rt.rect.width, TextFieldHeight); GameObject.Destroy(__instance.inputField.textComponent.GetComponent <ContentSizeFitter>()); rt = __instance.inputField.textComponent.transform as RectTransform; RectTransformExtensions.SetSize(rt, rt.rect.width, TextFieldHeight); __instance.inputField.textComponent.alignment = TextAnchor.MiddleCenter; //__instance.inputField.textComponent.alignment = TMPro.TextAlignmentOptions.Center; //The TextAnchor Feature seems to be broken. It was switched to the TextMeshPro Libary and after this it worked agein. //For now waiting for the experimental Branch to get Stable to see if this can be fixed on SN too like BZ. if (Mod.Config.ColorPickerOnLockers) { var currentButton = __instance.transform.GetChild(1).GetComponent <Button>(); var height = Mod.Config.ExtraColorsOnLockers ? 1200 : 210; AddColorPickerSystem(__instance, currentButton, "LOCKER", -20, height); } }
public void ShowResultPanel(Dictionary <string, int> rewardList) { GameObject container = transform.Find("ItemPanel/Container").gameObject; foreach (Transform item in container.transform) { Destroy(item.gameObject); } foreach (KeyValuePair <string, int> resource in rewardList) { GameObject itemGO = new GameObject(); itemGO.transform.SetParent(container.transform); if (LoadManager.Instance.allResourceData.ContainsKey(resource.Key)) { itemGO.AddComponent <Image>().sprite = Resources.Load <Sprite>(LoadManager.Instance.allResourceData[resource.Key].spritePath); } else if (LoadManager.Instance.allEquipmentData.ContainsKey(resource.Key)) { itemGO.AddComponent <Image>().sprite = Resources.Load <Sprite>(LoadManager.Instance.allEquipmentData[resource.Key].spritePath); } GameObject textGO = new GameObject(); textGO.name = "Amount"; textGO.transform.SetParent(itemGO.transform); Text text = textGO.AddComponent <Text>(); text.text = resource.Value.ToString(); text.GetComponent <Text>().font = Resources.GetBuiltinResource(typeof(Font), "Arial.ttf") as Font; text.GetComponent <Text>().fontSize = 20; RectTransformExtensions.SetAnchor(text.GetComponent <RectTransform>(), AnchorPresets.BottonCenter); text.transform.position = text.transform.position + new Vector3(0, -10, 0); } }
private void Init(TechType techType, bool first, bool last) { this.techType = techType; var quickSlots = GameObject.FindObjectOfType <uGUI_QuickSlots>(); var bgSprite = first ? quickSlots.spriteLeft : last ? quickSlots.spriteRight : quickSlots.spriteCenter; (transform as RectTransform).SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, bgSprite.rect.width); (transform as RectTransform).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, bgSprite.rect.height); layout = gameObject.AddComponent <LayoutElement>(); layout.minWidth = bgSprite.rect.width; layout.minHeight = bgSprite.rect.height; background = gameObject.AddComponent <Image>(); background.color = new Color(1, 1, 1, 0.5f); background.raycastTarget = false; background.material = quickSlots.materialBackground; background.sprite = bgSprite; button = new GameObject(name, typeof(RectTransform)).AddComponent <PinButton>(); var brt = button.transform as RectTransform; RectTransformExtensions.SetParams(brt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), transform); brt.anchoredPosition = new Vector2(0, 0); RectTransformExtensions.SetSize(brt, 30, 30); button.SetMode(PinButton.Mode.Cross); button.onClick += OnButtonClick; }
GameObject PlayerBar(Entity playerMapEntity) { GameObject barObject = new GameObject("Player HP Bar"); RectTransform rectTransform = barObject.AddComponent <RectTransform>(); RectTransformExtensions.SetSize(rectTransform, new Vector2(70, 10)); Sprite spriteBar = Resources.Load <Sprite>("simple_1_bar"); Sprite spriteFg = Resources.Load <Sprite>("simple_1_fg"); EnergyBarUGUIBase.SpriteTex spriteFgTex = new EnergyBarUGUIBase.SpriteTex(); spriteFgTex.sprite = spriteFg; List <EnergyBarUGUIBase.SpriteTex> foregroundSprites = new List <EnergyBarUGUIBase.SpriteTex>(); foregroundSprites.Add(spriteFgTex); FilledRendererUGUI renderer = barObject.AddComponent <FilledRendererUGUI>(); renderer.spriteBar = spriteBar; renderer.spriteBarColor = Color.green; renderer.spritesForeground = foregroundSprites; EnergyBar bar = barObject.AddComponent <EnergyBar>(); EnergyBarFollowObject barFollow = barObject.AddComponent <EnergyBarFollowObject>(); barFollow.followObject = playerMapEntity.gameObject.transform.Find("HP Bar Anchor").gameObject; return(barObject); }
public static PickerButton Create(Transform parent, Text textPrefab, Action <AutosorterFilter> action, int width = 100, int height = 18) { var button = new GameObject("PickerButton", typeof(RectTransform)).AddComponent <PickerButton>(); button.transform.SetParent(parent, false); button.background = new GameObject("Background", typeof(RectTransform)).AddComponent <Image>(); RectTransformExtensions.SetParams(button.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform); RectTransformExtensions.SetSize(button.background.rectTransform, width * 10, height * 10); button.background.rectTransform.localScale = new Vector3(0.1f, 0.1f, 1); button.background.sprite = ImageUtils.Load9SliceSprite(Mod.GetAssetPath("MainMenuStandardSprite.png"), new RectOffset(Slice, Slice, Slice, Slice)); button.background.color = upColor; button.background.type = Image.Type.Sliced; button.text = new GameObject("Text", typeof(RectTransform)).AddComponent <Text>(); RectTransformExtensions.SetParams(button.text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), button.transform); RectTransformExtensions.SetSize(button.text.rectTransform, width, height); button.text.color = new Color(1, 1, 1); button.text.font = textPrefab.font; button.text.fontSize = 10; button.text.alignment = TextAnchor.MiddleCenter; button.onClick += action; return(button); }
private void Awake() { GameObject resourceTracker = uGUI.main.gameObject.transform.Find("ScreenCanvas/ResourceTracker").gameObject; uGUI_ResourceTracker uGUI_ResourceTracker = resourceTracker.GetComponent <uGUI_ResourceTracker>(); blip = UWE.Utils.InstantiateDeactivated(resourceTracker.transform.Find("blip").gameObject); blip.transform.SetParent(transform, false); blip.name = "blip"; GameObject distanceText = Instantiate(blip.transform.Find("text").gameObject, blip.transform); distanceText.name = "distanceText"; distanceText.SetActive(false); Color color = new Color(1, 0, 0, 1); TextMeshProUGUI tmproDist = distanceText.GetComponent <TextMeshProUGUI>(); tmproDist.color = color; TextMeshProUGUI tmproText = blip.transform.Find("text").GetComponent <TextMeshProUGUI>(); tmproText.color = color; RectTransformExtensions.CenterRect(distanceText.transform as RectTransform, Vector2.zero); Image image = blip.GetComponent <Image>(); image.color = color; mainCanvas = UWE.Utils.InstantiateDeactivated(resourceTracker.transform.Find("mainCanvas").gameObject); mainCanvas.transform.SetParent(transform, false); mainCanvas.name = "mainCanvas"; }
public void Initialize(Text textPrefab, GameObject batteryUI) { text = GameObject.Instantiate(textPrefab); text.gameObject.name = "PercentText"; text.rectTransform.SetParent(transform, false); RectTransformExtensions.SetSize(text.rectTransform, 100, 100); float scale = 1 / 4.0f; var rt = batteryUI.transform as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), transform); RectTransformExtensions.SetSize(rt, 136 * scale, 256 * scale); rt.anchoredPosition = new Vector2(0, 0); rt.localEulerAngles = new Vector3(0, 0, -90); bar = batteryUI.transform.Find("Bar").GetComponent <Image>(); bar.material = new Material(bar.material); Destroy(batteryUI.transform.Find("Text").gameObject); Destroy(batteryUI.transform.Find("Label").gameObject); bar.gameObject.SetActive(true); bar.transform.localScale = new Vector3(scale, scale, 1); text.transform.SetAsLastSibling(); UpdateNoBattery(); }
internal static Canvas CreateCanvas(Transform parent) { var canvas = new GameObject("Canvas", typeof(RectTransform)).AddComponent <Canvas>(); var t = canvas.transform; t.SetParent(parent, false); canvas.sortingLayerID = 1; var raycaster = canvas.gameObject.AddComponent <uGUI_GraphicRaycaster>(); var rt = t as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f)); RectTransformExtensions.SetSize(rt, 1.7f, 3.0f); t.localPosition = new Vector3(0, 0, 0.345f); t.localRotation = new Quaternion(0, 1, 0, 0); t.localScale = new Vector3(0.5f, 0.5f, 0.5f); canvas.scaleFactor = 0.01f; canvas.renderMode = RenderMode.WorldSpace; canvas.referencePixelsPerUnit = 100; var scaler = canvas.gameObject.AddComponent <CanvasScaler>(); scaler.dynamicPixelsPerUnit = 20; return(canvas); }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static ColoredIconButton Create(Transform parent, Color color, Text textPrefab = null, string label = "", float width = 100, float iconWidth = 20) { var checkboxButton = new GameObject("Checkbox", typeof(RectTransform)); var rt = checkboxButton.transform as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, width, 20); rt.anchoredPosition = new Vector2(0, 0); var checkbox = LockerPrefabShared.CreateIcon(rt, color, 0); RectTransformExtensions.SetSize(checkbox.rectTransform, iconWidth, iconWidth); checkbox.rectTransform.anchoredPosition = new Vector2(textPrefab != null ? -width / 2 + 10 : 0, 0); Text text = null; if (textPrefab != null) { var spacing = 5; text = LockerPrefabShared.CreateText(rt, textPrefab, color, 0, 10, label); RectTransformExtensions.SetSize(text.rectTransform, width - 20 - spacing, 20); text.rectTransform.anchoredPosition = new Vector2(10 + spacing, 0); text.alignment = TextAnchor.MiddleLeft; } checkboxButton.AddComponent <BoxCollider2D>(); var button = checkboxButton.AddComponent <ColoredIconButton>(); button.image = checkbox; button.text = text ?? null; button.UpColor = color; return(button); }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static PingColorButton Create(Transform parent, Color color, float iconWidth = 60, float editIconWidth = 30) { var button = new GameObject("ColorButton", typeof(RectTransform)); var rt = button.transform as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, iconWidth, iconWidth); rt.anchoredPosition = new Vector2(0, 0); var icon = LockerPrefabShared.CreateIcon(rt, color, 0); icon.gameObject.name = "ColorIcon"; RectTransformExtensions.SetSize(icon.rectTransform, iconWidth, iconWidth); icon.rectTransform.anchoredPosition = new Vector2(0, 0); var editIcon = LockerPrefabShared.CreateIcon(rt, color, 0); editIcon.gameObject.name = "EditIcon"; RectTransformExtensions.SetSize(editIcon.rectTransform, editIconWidth, editIconWidth); editIcon.rectTransform.anchoredPosition = new Vector2(0, 0); editIcon.gameObject.SetActive(false); button.AddComponent <BoxCollider2D>(); var pingColorButton = button.AddComponent <PingColorButton>(); pingColorButton.image = icon; pingColorButton.editImage = editIcon; var layout = pingColorButton.gameObject.AddComponent <LayoutElement>(); layout.ignoreLayout = true; return(pingColorButton); }
/////////////////////////////////////////////////////////////////////////////////////////////////////// protected static void Create(Transform parent, Picker instance, int buttonCount) { var lockerPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <Text>()); textPrefab.fontSize = 16; textPrefab.color = ScreenContentColor; float padding = 30; float width = padding + instance.ButtonSize + ((instance.ButtonsPerRow - 1) * instance.Spacing) - 20; int rowCount = Mathf.CeilToInt(instance.ButtonsPerPage / (float)instance.ButtonsPerRow); float height = padding + instance.ButtonSize + ((rowCount - 0.5f) * instance.Spacing); var rt = instance.rectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, width, height); instance.background = instance.gameObject.AddComponent <Image>(); instance.background.type = Image.Type.Sliced; instance.background.rectTransform.anchoredPosition = new Vector2(0, -20); instance.pageText = LockerPrefabShared.CreateText(instance.transform, textPrefab, Color.white, 0, 10, "X/X"); RectTransformExtensions.SetSize(instance.pageText.rectTransform, 30, 20); for (int i = 0; i < buttonCount; ++i) { var colorButton = ColorPickerButton.Create(instance.transform, instance.ButtonSize, instance.ButtonSize * 0.7f); instance.buttons.Add(colorButton); } instance.prevPageButton = ColorPickerPageButton.Create(instance.transform, Color.white); instance.nextPageButton = ColorPickerPageButton.Create(instance.transform, Color.white); }
protected static void Create(Transform parent, Picker instance, int buttonCount) { var lockerPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <Text>()); textPrefab.fontSize = 12; textPrefab.color = HabitatControlPanel.ScreenContentColor; var rt = instance.rectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(rt, 1000 / 5.0f, (buttonCount <= 10 ? 400 : 900) / 5.0f); instance.background = instance.gameObject.AddComponent <Image>(); for (int i = 0; i < buttonCount; ++i) { var colorButton = PickerButton.Create(instance.transform, ButtonSize, ButtonSize * 0.7f); instance.buttons.Add(colorButton); } instance.prevPageButton = PickerPageButton.Create(instance.transform, Color.white); (instance.prevPageButton.transform as RectTransform).anchoredPosition = new Vector2(-20, -70); instance.nextPageButton = PickerPageButton.Create(instance.transform, Color.white); (instance.nextPageButton.transform as RectTransform).anchoredPosition = new Vector2(20, -70); instance.pageText = LockerPrefabShared.CreateText(instance.transform, textPrefab, Color.white, 0, 10, "X/X"); RectTransformExtensions.SetSize(instance.pageText.rectTransform, 20, 20); instance.pageText.rectTransform.anchoredPosition = new Vector2(0, -70); }
public void Configure(string message, Popup parent, float parentBottom, float duration = 5) { Parent = parent; Text text = transform.Find("Text").GetComponent <Text>(); text.text = message; MaxLife = duration; ParentBottom = parentBottom; Height = text.preferredHeight + Border * 2f; RectTransformExtensions.SetHeight(((RectTransform)transform), Height); float lastPopupBottom = ParentBottom; if (parent.Popups.Count > 0) { GameObject lastPopup = parent.Popups[parent.Popups.Count - 1]; RectTransform rectTrans = (RectTransform)lastPopup.transform; lastPopupBottom = rectTrans.localPosition.y - rectTrans.rect.height / 2f; } BoxCollider2D collider = this.GetComponent <BoxCollider2D>(); collider.size = new Vector3(collider.size.x, Height + Border); transform.localPosition = new Vector3(0, lastPopupBottom - (Height + Border * 5f) / 2f, 0); //return transform.localPosition.y - Height / 2f; }
GameObject PlayerBar() { GameObject barObject = new GameObject("Player HP Bar"); RectTransform rectTransform = barObject.AddComponent <RectTransform>(); RectTransformExtensions.SetSize(rectTransform, new Vector2(150, 20)); rectTransform.localPosition = new Vector3(Screen.width - 110, (Screen.height - (Screen.height - 65)), 0); Sprite spriteBar = Resources.Load <Sprite>("simple_1_bar"); Sprite spriteFg = Resources.Load <Sprite>("simple_1_fg"); EnergyBarUGUIBase.SpriteTex spriteFgTex = new EnergyBarUGUIBase.SpriteTex(); spriteFgTex.sprite = spriteFg; List <EnergyBarUGUIBase.SpriteTex> foregroundSprites = new List <EnergyBarUGUIBase.SpriteTex>(); foregroundSprites.Add(spriteFgTex); FilledRendererUGUI renderer = barObject.AddComponent <FilledRendererUGUI>(); renderer.spriteBar = spriteBar; renderer.spriteBarColor = Color.green; renderer.spritesForeground = foregroundSprites; EnergyBar bar = barObject.AddComponent <EnergyBar>(); return(barObject); }
private GameObject CreateModuleDisplay(Vector3 position, Quaternion rotation) { const float scale = 0.215f; Canvas canvas = new GameObject("Canvas", typeof(RectTransform)).AddComponent <Canvas>(); Transform t = canvas.transform; t.SetParent(this.transform, false); canvas.sortingLayerID = 1; uGUI_GraphicRaycaster raycaster = canvas.gameObject.AddComponent <uGUI_GraphicRaycaster>(); var rt = t as RectTransform; RectTransformExtensions.SetParams(rt, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f)); RectTransformExtensions.SetSize(rt, 0.5f, 0.5f); t.localPosition = position; t.localRotation = rotation; t.localScale = new Vector3(scale, scale, scale); canvas.scaleFactor = 0.01f; canvas.renderMode = RenderMode.WorldSpace; canvas.referencePixelsPerUnit = 100; CanvasScaler scaler = canvas.gameObject.AddComponent <CanvasScaler>(); scaler.dynamicPixelsPerUnit = 20; uGUI_Icon icon = canvas.gameObject.AddComponent <uGUI_Icon>(); return(canvas.gameObject); }
private void Awake() { var buttonPositionCenter = new Vector2(0, 0); var buttonSpacing = 104; var parent = GetComponentInChildren <Canvas>().transform; var color = new Color32(189, 255, 255, 255); var text = new GameObject("label", typeof(RectTransform)).AddComponent <Text>(); RectTransformExtensions.SetParams(text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(text.rectTransform, 500, 140); text.rectTransform.anchoredPosition = buttonPositionCenter + new Vector2(0, 80); text.color = GetComponentInChildren <Text>().color; text.text = "Position"; text.fontSize = Mathf.FloorToInt(GetComponentInChildren <Text>().fontSize * 1.8f); text.font = GetComponentInChildren <Text>().font; text.alignment = TextAnchor.MiddleCenter; text.raycastTarget = false; for (int i = 0; i < 4; ++i) { var button = CheckboxButton.CreateCheckboxNoText(parent, color, 100); button.Initialize(); button.toggled = false; button.rectTransform.anchoredPosition = buttonPositionCenter + new Vector2((-1.5f + i) * buttonSpacing, 0); var buttonIndex = i; button.onToggled = (bool toggled) => { SetPosition(buttonIndex); }; positionButtons.Add(button); } OnProtoDeserialize(null); }
public static GameObject CreateNewText(string name, Transform parent, TextAnchor anchor) { Text prefab = GameObject.FindObjectOfType <HandReticle>().interactPrimaryText; if (prefab == null) { Logger.Log("Could not find text prefab! (HandReticle.interactPrimaryText)"); return(null); } Text text = GameObject.Instantiate(prefab); text.gameObject.layer = parent.gameObject.layer; text.gameObject.name = name; text.transform.SetParent(parent, false); text.transform.localScale = new Vector3(1, 1, 1); text.gameObject.SetActive(true); text.enabled = true; text.text = ""; text.fontSize = 20; RectTransformExtensions.SetParams(text.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); text.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 700); text.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 30); text.rectTransform.anchoredPosition = new Vector3(0, 0); text.alignment = anchor; text.raycastTarget = false; return(text.gameObject); }
public static void zero_margins(RectTransform rectTransform) { // anchors are set correctly, but margins are off. zero all margins to match anchor location RectTransformExtensions.SetLeft(rectTransform, 0); RectTransformExtensions.SetBottom(rectTransform, 0); RectTransformExtensions.SetRight(rectTransform, 0); RectTransformExtensions.SetTop(rectTransform, 0); }
private void Update() { if (hasFocus && (RectTransformExtensions.PressOutsideTransform(rectTransform) || RectTransformExtensions.PressOutsideTransform(rectTransform))) { //if the navigation has focus and there is a touch outside the navigation, close it ToggleDisplay(); } }
private void Update() { if (isScreenVisible && (RectTransformExtensions.PressOutsideTransform(screenTransform) || RectTransformExtensions.PressOutsideTransform(screenTransform))) { //if the navigation has focus and there is a touch outside the navigation, close it ToggleNotificationScreen(); } }
private void Init(IIngredient ingredient, Atlas.Sprite sprite, bool first, bool last) { this.ingredient = ingredient; bool mainIcon = ingredient == null; var quickSlots = GameObject.FindObjectOfType <uGUI_QuickSlots>(); var bgSprite = first ? quickSlots.spriteLeft : last ? quickSlots.spriteRight : quickSlots.spriteCenter; (transform as RectTransform).SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, bgSprite.rect.width); (transform as RectTransform).SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, bgSprite.rect.height); layout = gameObject.AddComponent <LayoutElement>(); layout.minWidth = bgSprite.rect.width; layout.minHeight = bgSprite.rect.height; background = gameObject.AddComponent <Image>(); background.color = new Color(1, 1, 1, Mod.config.BackgroundAlpha); background.raycastTarget = false; background.material = quickSlots.materialBackground; background.sprite = bgSprite; icon = new GameObject("Icon").AddComponent <uGUI_ItemIcon>(); icon.transform.SetParent(transform, false); icon.SetForegroundSprite(sprite); if (mainIcon) { icon.SetSize(Width, Width); } else { icon.SetSize(IconWidth, IconWidth); } icon.rectTransform.anchorMin = new Vector2(0.5f, 0.5f); icon.rectTransform.anchorMax = new Vector2(0.5f, 0.5f); icon.rectTransform.pivot = new Vector2(0.5f, 0.5f); icon.rectTransform.anchoredPosition = new Vector2(0, 0); icon.raycastTarget = false; if (!mainIcon) { text = ModUtils.InstantiateNewText("Text", transform); RectTransformExtensions.SetSize(text.rectTransform, Width, Width); text.rectTransform.anchorMin = new Vector2(0.5f, 0); text.rectTransform.anchorMax = new Vector2(0.5f, 0); text.rectTransform.pivot = new Vector2(0.5f, 0); text.rectTransform.anchoredPosition = new Vector2(0, 0); text.alignment = TextAnchor.LowerCenter; text.fontSize = Mod.config.FontSize; text.raycastTarget = false; ColorUtility.TryParseHtmlString(Mod.config.ColorblindMode ? IngredientColorGoodColorblind : IngredientColorGood, out goodColor); ColorUtility.TryParseHtmlString(Mod.config.ColorblindMode ? IngredientColorBadColorblind : IngredientColorBad, out badColor); } UpdateText(); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////// public static CustomizeScreen Create(Transform parent, SaveDataEntry data, GameObject lockerPrefab = null) { #if SUBNAUTICA lockerPrefab = Resources.Load <GameObject>("Submarine/Build/SmallLocker"); var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <Text>()); #elif BELOWZERO var textPrefab = Instantiate(lockerPrefab.GetComponentInChildren <TextMeshProUGUI>()); #endif textPrefab.fontSize = 12; textPrefab.color = CustomizeScreen.ScreenContentColor; var screen = new GameObject("CustomizeScreen", typeof(RectTransform)).AddComponent <CustomizeScreen>(); RectTransformExtensions.SetParams(screen.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(screen.rectTransform, 114, 241); screen.background = new GameObject("Background").AddComponent <Image>(); screen.background.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("CustomizeScreen.png")); RectTransformExtensions.SetParams(screen.background.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), screen.transform); RectTransformExtensions.SetSize(screen.background.rectTransform, 114, 241); screen.labelLabel = LockerPrefabShared.CreateText(screen.background.transform, textPrefab, ScreenContentColor, 100, 9, "Label:"); RectTransformExtensions.SetSize(screen.labelLabel.rectTransform, 90, 40); #if SUBNAUTICA screen.labelLabel.alignment = TextAnchor.MiddleLeft; #elif BELOWZERO screen.labelLabel.alignment = TextAlignmentOptions.MidlineLeft; #endif screen.label = LabelController.Create(data, screen.background.transform, lockerPrefab); screen.label.rectTransform.anchoredPosition = new Vector2(0, 80); screen.exitButton = ConfigureButton.Create(screen.background.transform, Color.white, 40); var startX = 0; var startY = 30; screen.labelColorSetting = ColorSetting.Create(screen.background.transform, "Label Color", lockerPrefab); screen.labelColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY); screen.iconColorSetting = ColorSetting.Create(screen.background.transform, "Icon Color", lockerPrefab); screen.iconColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - 19); screen.textColorSetting = ColorSetting.Create(screen.background.transform, "Filters Color", lockerPrefab); screen.textColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 2)); screen.buttonsColorSetting = ColorSetting.Create(screen.background.transform, "Misc Color", lockerPrefab); screen.buttonsColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 3)); screen.lockerColorSetting = ColorSetting.Create(screen.background.transform, "Locker Color", lockerPrefab); screen.lockerColorSetting.rectTransform.anchoredPosition = new Vector2(startX, startY - (19 * 4)); screen.colorPicker = ColorPicker.Create(screen.background.transform, lockerPrefab); screen.colorPicker.gameObject.SetActive(false); screen.colorPicker.rectTransform.anchoredPosition = new Vector2(0, 30); return(screen); }
private void AddBrick(Color c, float x, float y) { var brick = new GameObject("Brick").AddComponent <Image>(); RectTransformExtensions.SetParams(brick.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), transform); RectTransformExtensions.SetSize(brick.rectTransform, BrickWidth, BrickHeight); brick.rectTransform.anchoredPosition = new Vector2(x, y); brick.color = c; bricks.Add(brick.gameObject); }
private void Update() { if (DigiDIntro.Finished) { digidIntroActive = false; } if (hasFocus && (RectTransformExtensions.PressOutsideTransform(rectTransform) || RectTransformExtensions.PressOutsideTransform(rectTransform)) && !digidIntroActive) { ToggleCellPhone(); } }
private static Image CreateUnderline(Transform parent, int x) { var underline = new GameObject("Underline", typeof(RectTransform)).AddComponent <Image>(); RectTransformExtensions.SetParams(underline.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), parent); RectTransformExtensions.SetSize(underline.rectTransform, 272 / 3, 78 / 3); underline.sprite = ImageUtils.LoadSprite(Mod.GetAssetPath("TitleUnderline.png")); underline.rectTransform.anchoredPosition = new Vector2(x, 90); return(underline); }
private void OnMouseDown() { if (EventSystem.current.IsPointerOverGameObject()) return; if (RectTransformExtensions.IsPointerOverUIObject()) return; UIManager.Instance.TowerToWork = this; UIManager.Instance.ShowUpdatePanel(); }
private static bool Prefix(uGUI_SeamothHUD __instance) { var t = __instance.root.transform.parent.Find("TorpedoHud"); if (t == null) { var torpedoRoot = new GameObject("TorpedoHud", typeof(RectTransform)).AddComponent <TorpedoHudController>(); RectTransformExtensions.SetParams(torpedoRoot.rectTransform, new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f), __instance.root.transform.parent); } return(true); }