private void DrawAnchorMode() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Anchors", GUILayout.ExpandWidth(false)); anchorMode = (AnchorMode)EditorGUILayout.Popup((int)anchorMode, anchorModeOptions); EditorGUILayout.EndHorizontal(); }
private void ToggleCreateMode() { if (mode_ == AnchorMode.Select) { mode_ = AnchorMode.Create; EndSelectMode(); StartPlacementMode(); } else { mode_ = AnchorMode.Select; EndPlacementMode(); StartSelectMode(); } }
void DrawModeSelection() { EditorGUILayout.BeginHorizontal(); if (GUILayout.Toggle((mode == AnchorMode.Border), "Border", EditorStyles.miniButtonLeft) && (mode != AnchorMode.Border)) { mode = AnchorMode.Border; } if (GUILayout.Toggle((mode == AnchorMode.Point), "Point", EditorStyles.miniButtonRight) && (mode != AnchorMode.Point)) { mode = AnchorMode.Point; } EditorGUILayout.EndHorizontal(); }
/// <summary> /// アンカーのモードを設定します /// </summary> /// <param name="mode"></param> public void SetAnchorMode(AnchorMode mode) { OnEnable(); switch (mode) { case AnchorMode.BasePoint: systemKeyboardInputHelper.gameObject.SetActive(false); break; case AnchorMode.Destination: systemKeyboardInputHelper.gameObject.SetActive(true); break; case AnchorMode.Point: systemKeyboardInputHelper.gameObject.SetActive(false); break; } }
public void ToggleAnchorMode() { switch (mode) { case AnchorMode.Callback: { mode = AnchorMode.PollingCached; StartPollingAnchors(); if (AnchorModeStatusText) { AnchorModeStatusText.text = "Polling Cached"; } break; } case AnchorMode.PollingCached: { mode = AnchorMode.PollingNative; if (AnchorModeStatusText) { AnchorModeStatusText.text = "Polling Native"; } break; } case AnchorMode.PollingNative: { mode = AnchorMode.Callback; StopPollingAnchors(); if (AnchorModeStatusText) { AnchorModeStatusText.text = "Callback"; } break; } } }
#pragma warning restore IDE0011 // ReSharper restore EnforceIfStatementBraces private static Vector2[] AnchorModeToVector(AnchorMode anchorMode) { return(anchorMode switch { AnchorMode.TOP_LEFT => new[] { new Vector2(0, 1), new Vector2(0, 1) }, AnchorMode.TOP_CENTER => new[] { new Vector2(0.5f, 1), new Vector2(0.5f, 1) }, AnchorMode.TOP_RIGHT => new[] { new Vector2(1, 1), new Vector2(1, 1) }, AnchorMode.TOP_STRETCH => new[] { new Vector2(0, 1), new Vector2(1, 1) }, AnchorMode.MIDDLE_LEFT => new[] { new Vector2(0, 0.5f), new Vector2(0, 0.5f) }, AnchorMode.MIDDLE_CENTER => new[] { new Vector2(0.5f, 1), new Vector2(0.5f, 0.5f) }, AnchorMode.MIDDLE_RIGHT => new[] { new Vector2(1, 0.5f), new Vector2(1, 0.5f) }, AnchorMode.MIDDLE_STRETCH => new[] { new Vector2(0, 0.5f), new Vector2(1, 0.5f) }, AnchorMode.BOTTOM_LEFT => new[] { new Vector2(0, 0), new Vector2(0, 0) }, AnchorMode.BOTTOM_CENTER => new[] { new Vector2(0.5f, 0), new Vector2(0.5f, 0) }, AnchorMode.BOTTOM_RIGHT => new[] { new Vector2(1, 0), new Vector2(1, 0) }, AnchorMode.BOTTOM_STRETCH => new[] { new Vector2(0, 0), new Vector2(1, 0) }, AnchorMode.STRETCH_LEFT => new[] { new Vector2(0, 0), new Vector2(0, 1) }, AnchorMode.STRETCH_CENTER => new[] { new Vector2(0.5f, 0), new Vector2(0.5f, 1) }, AnchorMode.STRETCH_RIGHT => new[] { new Vector2(1, 0), new Vector2(1, 1) }, AnchorMode.STRETCH_STRETCH => new[] { new Vector2(0, 0), new Vector2(1, 1) }, AnchorMode.NONE => throw new ArgumentOutOfRangeException(), _ => throw new ArgumentOutOfRangeException() });
private static void DrawRectTransform(RectTransform rectTransform) { using (new GUILayout.VerticalScope()) { //TODO: Implement position display like the Unity editor using (new GUILayout.HorizontalScope()) { GUILayout.Label("Local Position", NitroxGUILayout.DrawerLabel, GUILayout.Width(LABEL_WIDTH)); NitroxGUILayout.Separator(); rectTransform.localPosition = VectorDrawer.DrawVector3(rectTransform.localPosition, VECTOR_MAX_WIDTH); } using (new GUILayout.HorizontalScope()) { GUILayout.Label("Local Rotation", NitroxGUILayout.DrawerLabel, GUILayout.Width(LABEL_WIDTH)); NitroxGUILayout.Separator(); rectTransform.localRotation = Quaternion.Euler(VectorDrawer.DrawVector3(rectTransform.localRotation.eulerAngles, VECTOR_MAX_WIDTH)); } using (new GUILayout.HorizontalScope()) { GUILayout.Label("Local Scale", NitroxGUILayout.DrawerLabel, GUILayout.Width(LABEL_WIDTH)); NitroxGUILayout.Separator(); rectTransform.localScale = VectorDrawer.DrawVector3(rectTransform.localScale, VECTOR_MAX_WIDTH); } GUILayout.Space(20); using (new GUILayout.HorizontalScope()) { GUILayout.Label("Size", NitroxGUILayout.DrawerLabel, GUILayout.Width(LABEL_WIDTH)); NitroxGUILayout.Separator(); rectTransform.sizeDelta = VectorDrawer.DrawVector2(rectTransform.sizeDelta, VECTOR_MAX_WIDTH); } using (new GUILayout.HorizontalScope()) { GUILayout.Label("Anchor", NitroxGUILayout.DrawerLabel, GUILayout.Width(LABEL_WIDTH)); NitroxGUILayout.Separator(); AnchorMode anchorMode = VectorToAnchorMode(rectTransform.anchorMin, rectTransform.anchorMax); if (anchorMode == AnchorMode.NONE) { VectorDrawer.DrawVector2(rectTransform.anchorMin, VECTOR_MAX_WIDTH * 0.5f); VectorDrawer.DrawVector2(rectTransform.anchorMax, VECTOR_MAX_WIDTH * 0.5f); } else { anchorMode = NitroxGUILayout.EnumPopup(anchorMode, VECTOR_MAX_WIDTH); // Vector2[] anchorVectors = AnchorModeToVector(anchorMode); // rectTransform.anchorMin = anchorVectors[0]; // rectTransform.anchorMax = anchorVectors[1]; } } using (new GUILayout.HorizontalScope()) { GUILayout.Label("Pivot", NitroxGUILayout.DrawerLabel, GUILayout.Width(LABEL_WIDTH)); NitroxGUILayout.Separator(); rectTransform.pivot = VectorDrawer.DrawVector2(rectTransform.pivot, VECTOR_MAX_WIDTH); } } }