public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { Vector2 orgIconSize = EditorGUIUtility.GetIconSize(); EditorGUI.BeginProperty(position, label, property); Rect line = position.Clone(height: lineH + 16f); EditorGUIUtility.SetIconSize(Vector2.one * 32f); property.isExpanded = EditorGUI.Foldout(line, property.isExpanded, PositionOverriderLabel, true); EditorGUIUtility.SetIconSize(orgIconSize); if (property.isExpanded) { SerializedProperty addonCount = property.FindPropertyRelative("m_AddonCount"); int lineCnt = addonCount.intValue + 1; line = line.GetRectBottom(height: lineH * lineCnt).Modify(y: lineS); SerializedProperty addonList = property.FindPropertyRelative("m_AddonList"); EditorGUI.BeginDisabledGroup(true); EditorGUI.TextArea(line, addonList.stringValue); EditorGUI.EndDisabledGroup(); } EditorGUI.EndProperty(); }
void OnGUI() { this.ScrollPosition = GUILayout.BeginScrollView(this.ScrollPosition); foreach (var referent in results.Keys.OrderBy(key => key.Name).ToList()) { foldOuts.AddSafety(referent, true); if (foldOuts[referent] = EditorGUILayout.Foldout(foldOuts[referent], referent.Name)) { foreach (var target in results[referent]) { var iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(Vector2.one * 16); if (GUILayout.Button(target.Name)) { var obj = target.ToObject(); Selection.objects = new[] { obj }; } EditorGUIUtility.SetIconSize(iconSize); } } } GUILayout.EndScrollView(); }
public static bool LayoutButtonLink(GUIContent content, params GUILayoutOption[] options) { var controlId = GUIUtility.GetControlID(FocusType.Passive) + 1; // @Hack, predicting the next control id... may not always work. var clicked = GUILayout.Button(content, linkStyle, options); var rect = GUILayoutUtility.GetLastRect(); var widthOffset = 0f; var widthContent = content; if (content.image != null) { widthContent = new GUIContent(content.text); widthOffset = EditorGUIUtility.GetIconSize().x; } float min, max; linkStyle.CalcMinMaxWidth(widthContent, out min, out max); var start = new Vector2(rect.x + 2 + widthOffset, rect.y + rect.height - 2); var end = new Vector2(rect.x - 2 + min + widthOffset, start.y); var color = linkStyle.normal.textColor; if (GUIUtility.hotControl == controlId) { color = linkStyle.active.textColor; } Handles.BeginGUI(); Handles.color = color; Handles.DrawLine(start, end); Handles.EndGUI(); return(clicked); }
public static void ExportMessageIcon() { var size = 16; var type = MessageType.Warning; var restoreSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(size, size)); var icon = LudiqGUIUtility.GetHelpIcon(type); icon.filterMode = FilterMode.Point; var rt = RenderTexture.GetTemporary(icon.width, icon.height); rt.filterMode = FilterMode.Point; RenderTexture.active = rt; Graphics.Blit(icon, rt); var readableIcon = new Texture2D(icon.width, icon.height); readableIcon.ReadPixels(new Rect(0, 0, icon.width, icon.height), 0, 0); readableIcon.Apply(); RenderTexture.active = null; icon = readableIcon; File.WriteAllBytes($"{Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), type.ToString())}@{size}x.png", icon.EncodeToPNG()); EditorGUIUtility.SetIconSize(restoreSize); }
public override void OnInspectorGUI() { MonoImporter target = this.target as MonoImporter; MonoScript script = target.GetScript(); if (!(bool)((UnityEngine.Object)script)) { return; } System.Type type = script.GetClass(); if (!MonoScriptImporterInspector.IsTypeCompatible(type)) { EditorGUILayout.HelpBox("No MonoBehaviour scripts in the file, or their names do not match the file name.", MessageType.Info); } XMonoBehaviourEditor.ShowXAttributeType(type); Vector2 iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(16f, 16f)); List <string> names = new List <string>(); List <UnityEngine.Object> objects = new List <UnityEngine.Object>(); bool didModify = false; this.ShowFieldInfo(type, target, names, objects, ref didModify); EditorGUIUtility.SetIconSize(iconSize); if (!didModify) { return; } target.SetDefaultReferences(names.ToArray(), objects.ToArray()); AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath((UnityEngine.Object)target)); }
void OnGUI() { this.ScrollPosition = GUILayout.BeginScrollView(this.ScrollPosition); foreach (var referent in Results.Keys.OrderBy(key => key.Name).ToList()) { Foldouts.AddSafety(referent, true); if (Foldouts[referent] = EditorGUILayout.Foldout(Foldouts[referent], referent.Name)) { foreach (var target in Results[referent]) { var iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(Vector2.one * 16); var obj = target.ToObject(); var content = new GUIContent(target.Name, EditorGUIUtility.ObjectContent(obj, obj.GetType()).image); if (GUILayout.Button(content, "Label")) { Selection.objects = new [] { obj }; } EditorGUIUtility.SetIconSize(iconSize); } } } GUILayout.EndScrollView(); }
public virtual void OnGUI(Rect position, SerializedProperty property, GUIContent label, bool includeChildren) { if (!includeChildren || !HasVisibleChildFields(property)) { DefaultPropertyField(position, property, label); } else { var iconSize = EditorGUIUtility.GetIconSize(); bool enabled = GUI.enabled; int indentLevel = EditorGUI.indentLevel; var propertyHeights = m_PropertyHeights.Get(property.propertyPath); int index = 0; var prop = property.Copy(); var depth = prop.depth; EditorGUI.indentLevel = prop.depth + (indentLevel - depth); position.height = EditorGUI.GetPropertyHeight(property.propertyType, label); bool enter = DefaultPropertyField(position, prop, label) && HasVisibleChildFields(prop); if (!enter) { return; } position.y += position.height + 2f; while (prop.NextVisible(enter) && prop.depth > depth) { enter = false; prop.GetFieldInfos(s_FieldInfos); if (s_FieldInfos[s_FieldInfos.Count - 1].GetCustomAttributes(typeof(InGroupAttribute), false).Any()) { continue; } EditorGUI.indentLevel = prop.depth + (indentLevel - depth); if (propertyHeights.Any()) { position.height = propertyHeights[index]; } else { position.height = EditorGUI.GetPropertyHeight(prop, null, false); } index++; EditorGUI.BeginChangeCheck(); enter = EditorGUI.PropertyField(position, prop, null, false) && HasVisibleChildFields(prop); if (EditorGUI.EndChangeCheck()) { break; } position.y += position.height + 2f; } GUI.enabled = enabled; EditorGUIUtility.SetIconSize(iconSize); EditorGUI.indentLevel = indentLevel; } }
void OnGUIIconLabel(Texture2D icon, Vector2 size, params GUILayoutOption[] options) { var iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(size); GUILayout.Label(icon, options); EditorGUIUtility.SetIconSize(iconSize); }
private void DrawObjectReferenceField(Rect position, SerializedProperty property, GUIContent label) { Vector2 iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(12f, 12f)); DynamicDNAConverterController converterControllerObject = null; if (property.objectReferenceValue != null) { converterControllerObject = property.objectReferenceValue.GetType() == typeof(DynamicDNAConverterController) ? property.objectReferenceValue as DynamicDNAConverterController : null; } var dummyFieldStyle = new GUIStyle(EditorStyles.objectField); //could be objectFieldMiniThumb dummyFieldStyle.normal.background = null; var labelPos = new Rect(position.xMin, position.yMin, EditorGUIUtility.labelWidth, position.height); var fieldPos = new Rect(labelPos.xMax, position.yMin, position.width - labelPos.width, position.height); //unfortunately we can use PrefixLabel because it inherits the GUI.content color of the field (which is transparent) //the result is the label doesn't highlight- but I think we can live with that! EditorGUI.LabelField(labelPos, label); var prevContentColor = GUI.contentColor; GUI.contentColor = new Color(0, 0, 0, 0); //hide the content of the field so we can use our own label EditorGUI.BeginChangeCheck(); //We use a converterController field rather than an object field so that the 'dot' button shows ConverterControllers when clicked converterControllerObject = (DynamicDNAConverterController)EditorGUI.ObjectField(fieldPos, "", converterControllerObject, typeof(DynamicDNAConverterController), false); if (EditorGUI.EndChangeCheck()) { property.objectReferenceValue = converterControllerObject; } GUI.contentColor = prevContentColor; Rect dropRect = fieldPos; dropRect.width = dropRect.width - 18f; System.Type fieldType = typeof(DynamicDNAConverterController); if (property.objectReferenceValue != null) { fieldType = property.objectReferenceValue.GetType(); } GUIContent typeContent = EditorGUIUtility.ObjectContent(property.objectReferenceValue, fieldType); if (property.objectReferenceValue == null) { typeContent.text = "None (DNAConverterController/Behaviour)"; typeContent.image = null; } GUI.Box(dropRect, typeContent, dummyFieldStyle); DoDropArea(dropRect, property); EditorGUIUtility.SetIconSize(iconSize); }
private void DrawControl(SerializedProperty property, string nameToUse, bool isNotAddressable, string guid) { float pickerWidth = 20f; Rect pickerRect = assetDropDownRect; pickerRect.width = pickerWidth; pickerRect.x = assetDropDownRect.xMax - pickerWidth; bool isPickerPressed = Event.current.type == EventType.MouseDown && Event.current.button == 0 && pickerRect.Contains(Event.current.mousePosition); bool isEnterKeyPressed = Event.current.type == EventType.KeyDown && Event.current.isKey && (Event.current.keyCode == KeyCode.KeypadEnter || Event.current.keyCode == KeyCode.Return); var asset = m_AssetRefObject?.editorAsset; if (asset != null && m_ReferencesSame) { float iconHeight = EditorGUIUtility.singleLineHeight - EditorGUIUtility.standardVerticalSpacing * 3; Vector2 iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(iconHeight, iconHeight)); string assetPath = AssetDatabase.GUIDToAssetPath(m_AssetRefObject.AssetGUID); Texture2D assetIcon = AssetDatabase.GetCachedIcon(assetPath) as Texture2D; UnityEngine.GUI.SetNextControlName(k_FieldControlName); if (EditorGUI.DropdownButton(assetDropDownRect, new GUIContent(nameToUse, assetIcon), FocusType.Keyboard, EditorStyles.objectField)) { if (Event.current.clickCount == 1) { UnityEngine.GUI.FocusControl(k_FieldControlName); EditorGUIUtility.PingObject(asset); } if (Event.current.clickCount == 2) { AssetDatabase.OpenAsset(asset); GUIUtility.ExitGUI(); } } EditorGUIUtility.SetIconSize(iconSize); } else { UnityEngine.GUI.SetNextControlName(k_FieldControlName); if (EditorGUI.DropdownButton(assetDropDownRect, new GUIContent(nameToUse), FocusType.Keyboard, EditorStyles.objectField)) { UnityEngine.GUI.FocusControl(k_FieldControlName); } } DrawCaret(pickerRect); bool enterKeyRequestsPopup = isEnterKeyPressed && (k_FieldControlName == UnityEngine.GUI.GetNameOfFocusedControl()); if (isPickerPressed || enterKeyRequestsPopup) { newGuidPropertyPath = property.propertyPath; var nonAddressedOption = isNotAddressable ? m_AssetName : string.Empty; PopupWindow.Show(assetDropDownRect, new AssetReferencePopup(this, guid, nonAddressedOption, enterKeyRequestsPopup)); } }
public override bool BeforeGUI(ref Rect position, ref SerializedProperty property, ref GUIContent label, ref bool includeChildren, bool visible) { m_SavedSize = EditorGUIUtility.GetIconSize(); if (!IsVisible()) { return(visible); } EditorGUIUtility.SetIconSize(new Vector2(m_Width, m_Height)); return(visible); }
/// <summary> /// 各セルのGUIを描画する /// </summary> private void CellGUI(Rect rect, CanvasTreeViewItem item, CanvasColumnType columnType, RowGUIArgs args) { switch (columnType) { case CanvasColumnType.Name: args.rowRect = rect; base.RowGUI(args); break; case CanvasColumnType.Note: var canvas = item.unityObject as Canvas; if (canvas != null) { if (IsInactiveSubCanvas(canvas)) { var redTextStyle = new GUIStyle(EditorStyles.label) { normal = new GUIStyleState { textColor = Color.red, } }; EditorGUI.LabelField(rect, new GUIContent("Inactive Sub-canvas"), redTextStyle); } else if (canvas.gameObject.activeInHierarchy == false) { EditorGUI.LabelField(rect, new GUIContent("Inactive Canvas")); } } break; case CanvasColumnType.Object: if (item.hasUnityObject) { var obj = item.unityObject; var objectContent = EditorGUIUtility.ObjectContent(obj, item.objectType); var objectStyle = new GUIStyle(EditorStyles.textField) { imagePosition = obj ? ImagePosition.ImageLeft : ImagePosition.TextOnly }; var originalSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(10, 10)); if (GUI.Button(rect, objectContent, objectStyle) && obj) { EditorGUIUtility.PingObject(obj); Selection.activeObject = obj; } EditorGUIUtility.SetIconSize(originalSize); } break; } }
// Token: 0x0600020C RID: 524 RVA: 0x0000E62C File Offset: 0x0000C82C protected override void DoGUI() { Vector2 iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(this.ImageSize); foreach (GUIToolbarRadioControl guitoolbarRadioControl in this._controls) { EditorGUIUtility.SetIconSize(Vector2.Min(this.ImageSize, guitoolbarRadioControl.ImageSize)); guitoolbarRadioControl.OnGUI(); } EditorGUIUtility.SetIconSize(iconSize); }
public Icon GetDefaultIcon(int size = 16) { var iconSizeWas = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(size, size)); var icon = new Icon(); icon.open = EditorGUIUtility.IconContent("Folder Icon").image; icon.closed = icon.open; EditorGUIUtility.SetIconSize(iconSizeWas); return(icon); }
private void OnDrawHierarchy(int instandeID, Rect rect) { if (Application.isPlaying) { return; } if (!HierarchyComponentIcon.Prefs.enable) { return; } var go = EditorUtility.InstanceIDToObject(instandeID) as GameObject; if (go == null) { return; } var components = UnityUtility.GetComponents <Component>(go) .Where(x => x != null) .ToArray(); if (components.Any()) { var originIconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(IconSize, IconSize)); var padding = new Vector2(5, 0); var iconOffectX = IconSize + 1.5f; var iconDrawRect = new Rect(rect.xMax - (IconSize + padding.x), rect.yMin, rect.width, rect.height); foreach (var component in components) { var type = component.GetType(); var item = iconTextureCache.FirstOrDefault(x => type == x.Key || type.IsSubclassOf(x.Key)); if (item.Equals(default(KeyValuePair <Type, Texture>))) { continue; } DrawComponentIcon(iconDrawRect, item.Value); iconDrawRect.center = Vector.SetX(iconDrawRect.center, iconDrawRect.center.x - iconOffectX); } EditorGUIUtility.SetIconSize(originIconSize); } }
//------------------------------------------------------------------------------------------------ protected void DrawCommonField(Object pTarget, Texture pIcon, ref bool bIsFavorite, out bool bRemoved) { bRemoved = false; var iWidth = this.position.width; var iHeight = EditorGUIUtility.singleLineHeight; GUILayout.BeginHorizontal(GUILayout.Height(iHeight), GUILayout.Width(iWidth)); GUILayout.Space(2); var t = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(iHeight - 1, iHeight - 1)); GUILayout.Label(new GUIContent(pTarget.name, pIcon), GUILayout.Height(iHeight), GUILayout.Width(iWidth - 85)); EditorGUIUtility.SetIconSize(t); if (GUILayout.Button(EditorGUIUtility.FindTexture("VisibilityOn"), EditorStyles.miniButtonLeft, GUILayout.Height(iHeight), GUILayout.Width(25))) { EditorGUIUtility.PingObject(pTarget); } var pDefaultColor = GUI.color; GUI.color = bIsFavorite ? Color.yellow : pDefaultColor; if (GUILayout.Toggle(false, EditorGUIUtility.FindTexture("Favorite"), EditorStyles.miniButtonMid, GUILayout.Height(iHeight), GUILayout.Width(25))) { bIsFavorite = !bIsFavorite; } GUI.color = pDefaultColor; if (GUILayout.Button(EditorGUIUtility.FindTexture("winbtn_win_close_h"), EditorStyles.miniButtonRight, GUILayout.Height(iHeight), GUILayout.Width(25))) { bRemoved = true; } GUILayout.EndHorizontal(); }
// Token: 0x06000204 RID: 516 RVA: 0x0000E4E4 File Offset: 0x0000C6E4 protected override void DoGUI() { Vector2 iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(this.ImageSize); GUILayout.BeginHorizontal(this.Style, this.LayoutOptions); foreach (GUIControl guicontrol in this._controls) { EditorGUIUtility.SetIconSize(Vector2.Min(this.ImageSize, guicontrol.ImageSize)); guicontrol.OnGUI(); } GUILayout.Space(1f); GUILayout.EndHorizontal(); EditorGUIUtility.SetIconSize(iconSize); }
private static void DrawStandardLabel(Rect rect, GUIContent icon, string label, GUIStyle style) { // Draw Label + Icon Vector2 originalIconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(Vector2.one * rect.height); { EditorGUI.LabelField(rect, icon, style); rect.x += 18f; rect.y--; EditorGUI.LabelField(rect, label, style); } EditorGUIUtility.SetIconSize(originalIconSize); }
public override Rect Draw(GameObject targetObject, Rect rect) { rect.center = Vector.SetX(rect.center, rect.center.x - 2f); var components = UnityUtility.GetComponents <Component>(targetObject).ToArray(); var originIconSize = EditorGUIUtility.GetIconSize(); if (components.Any()) { using (new EditorGUIUtility.IconSizeScope(new Vector2(ComponentIconSize, ComponentIconSize))) { var iconOffsetX = ComponentIconSize + 1.5f; foreach (var component in components) { if (component == null) { continue; } var type = component.GetType(); var item = iconGUIContentDictionary.FirstOrDefault(x => type == x.Key || type.IsSubclassOf(x.Key)); if (item.IsDefault()) { continue; } var drawRect = rect; drawRect.center = Vector.SetY(rect.center, rect.center.y + 1f); EditorGUI.LabelField(drawRect, item.Value); rect.center = Vector.SetX(rect.center, rect.center.x - iconOffsetX); } } } EditorGUIUtility.SetIconSize(originIconSize); return(rect); }
private void OnGUI() { if (result == null) { return; } EditorGUILayout.Separator(); GUILayout.Label(HeaderLabelTitle); var iconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(Vector2.one * 16f); // アセット毎の参照リスト // Reference list for each asset. scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); foreach (var referenceData in result.Assets) { if (referenceData.Asset == null) { // 削除済み // Deleted. continue; } DrawReferences(referenceData); } EditorGUILayout.EndScrollView(); EditorGUIUtility.SetIconSize(iconSize); // Spotlightの時のみヘルプ情報 // Help information only for Spotlight. if (result.Type == Result.SearchType.OSX_Spotlight) { EditorGUILayout.Separator(); EditorGUILayout.HelpBox( "Assets内のインデックスが作られていない場合など、正しく検索できないことがあります。" + "正確に検索するにはGrep版を使用して下さい。\n\n" + "Spotlight is not be able to search correctly, for example, when an file index in Assets is not created. " + "Please use Grep version to search exactly.", MessageType.Info ); EditorGUILayout.Separator(); } }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { Vector2 orgIconSize = EditorGUIUtility.GetIconSize(); EditorGUI.BeginProperty(position, label, property); Rect line = position.Clone(height: lineH); Rect cell = EditorGUI.PrefixLabel(line, label); EditorGUI.PropertyField(cell, property.FindPropertyRelative("m_Coordinates"), GUIContent.none); line = line.GetRectBottom(height: 33f).Modify(y: lineS); Rect[] cols = line.SplitHorizontal(.5f), lc = cols[0].SplitHorizontal(.3f, 30f, 30f), rc = cols[1].SplitHorizontal(.3f, 30f, 30f); EditorGUIUtility.SetIconSize(Vector2.one * 16f); EditorGUI.LabelField(lc[0], MouseIcon); EditorGUI.LabelField(lc[0].Modify(y: 10f, width: 30f, height: 20f), ArrowLeftIcon); EditorGUIUtility.SetIconSize(Vector2.one * 24f); bool IsRight = property.FindPropertyRelative("m_OppositePolar").boolValue; if (GUI.Button(lc[1], ((IsRight) ? ArrowRightIcon : ArrowLeftIcon))) { property.FindPropertyRelative("m_OppositePolar").boolValue = !IsRight; } EditorGUIUtility.SetIconSize(Vector2.one * 16f); EditorGUI.LabelField(rc[0], MouseIcon); EditorGUI.LabelField(rc[0].Modify(y: 10f, width: 30f, height: 20f), ArrowUpIcon); EditorGUIUtility.SetIconSize(Vector2.one * 24f); bool IsDown = property.FindPropertyRelative("m_OppositeElevation").boolValue; if (GUI.Button(rc[1], ((IsDown) ? ArrowDownIcon : ArrowUpIcon))) { property.FindPropertyRelative("m_OppositeElevation").boolValue = !IsDown; } EditorGUIUtility.SetIconSize(orgIconSize); EditorGUI.EndProperty(); }
private void OnHeaderGUI() { if (e.type == EventType.Layout || e.type == EventType.Repaint) { headerWidth = 0; } var previousIconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(IconSize.Small, IconSize.Small)); LudiqGUI.BeginHorizontal(Styles.headerBackground); foreach (var node in stack) { node.EnsureDrawable(); var content = new GUIContent(node.option.headerLabel, node.option.showHeaderIcon ? node.icon?[IconSize.Small] : null); var isCurrent = node == stack[stack.Count - 1]; var style = node == stack[0] ? Styles.headerBreadcrumbRoot : Styles.headerBreadcrumbElement; if (isCurrent) { style = node == stack[0] ? Styles.headerBreadcrumbRootCurrent : Styles.headerBreadcrumbElementCurrent; } var width = style.CalcSize(content).x; if (GUILayout.Toggle(isCurrent, content, style) && !isCurrent) { SelectAncestor(node); } if (e.type == EventType.Layout || e.type == EventType.Repaint) { headerWidth += width; } } LudiqGUI.FlexibleSpace(); LudiqGUI.EndHorizontal(); EditorGUIUtility.SetIconSize(previousIconSize); }
public void OnGUI() { InitStyles(); Vector2 oldIconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(Content.k_IconSize); var activeBuildTargetGroup = selectedBuildTargetGroup; if (activeBuildTargetGroup == BuildTargetGroup.Unknown) { activeBuildTargetGroup = BuildPipeline.GetBuildTargetGroup(EditorUserBuildSettings.activeBuildTarget); } OpenXRProjectValidation.GetCurrentValidationIssues(_failures, activeBuildTargetGroup); EditorGUILayout.BeginVertical(); bool fixAllSelected = DrawIssuesAndFixAll(); if (EditorApplication.isPlaying) { GUILayout.Space(Content.k_Space); GUILayout.Label(Content.k_PlayMode); } EditorGUILayout.Space(); bool anyFixApplied = false; if (_failures.Count > 0) { anyFixApplied = DrawIssuesList(); } EditorGUILayout.EndVertical(); EditorGUIUtility.SetIconSize(oldIconSize); ActionAnyFixes(fixAllSelected, anyFixApplied, activeBuildTargetGroup); }
private static void StaticSetup() { staticSetupDone = true; defaultEditorType = typeof(Editor).Assembly.GetType("UnityEditor.GameObjectInspector", false, false); hierarchyFolderInfoLabel.text = HierarchyFolderPreferences.Get().infoBoxText; prefabHierarchyFolderInfoLabel.text = HierarchyFolderPreferences.Get().prefabInfoBoxText; var iconSizeWas = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(30f, 30f)); folderIcon = EditorGUIUtility.IconContent("Folder Icon").image; EditorGUIUtility.SetIconSize(iconSizeWas); defaultOnHeaderGUI = defaultEditorType.GetMethod("OnHeaderGUI", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); #if UNITY_2019_1_OR_NEWER backgroundColor = EditorGUIUtility.isProSkin ? new Color(0.23529412f, 0.23529412f, 0.23529412f, 1f) : new Color(0.79607844f, 0.79607844f, 0.79607844f, 1f); #else backgroundColor = EditorGUIUtility.isProSkin ? new Color(0.24313726f, 0.24313726f, 0.24313726f, 1f) : new Color(0.85490197f, 0.85490197f, 0.85490197f, 1f); #endif }
public override void DrawForeground() { base.DrawForeground(); if (BoltFlow.Configuration.showConnectionValues) { var showLastValue = EditorApplication.isPlaying && ConnectionDebugData.assignedLastValue; var showPredictedvalue = BoltFlow.Configuration.predictConnectionValues && !EditorApplication.isPlaying && Flow.CanPredict(connection.source, reference); if (showLastValue || showPredictedvalue) { var previousIconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(IconSize.Small, IconSize.Small)); object value; if (showLastValue) { value = ConnectionDebugData.lastValue; } else // if (showPredictedvalue) { value = Flow.Predict(connection.source, reference); } var label = new GUIContent(value.ToShortString(), Icons.Type(value?.GetType())?[IconSize.Small]); var labelSize = Styles.prediction.CalcSize(label); var labelPosition = new Rect(position.position - labelSize / 2, labelSize); BeginDim(); GUI.Label(labelPosition, label, Styles.prediction); EndDim(); EditorGUIUtility.SetIconSize(previousIconSize); } } }
/// <summary> /// Renders the properties in the block. /// </summary> public override void OnGUI() { if (layerUIBlocks == null) { CreateUIBlockLayers(); } var iconSize = EditorGUIUtility.GetIconSize(); for (int layerIndex = 0; layerIndex < layerCount.floatValue; layerIndex++) { EditorGUIUtility.SetIconSize(Styles.layerIconSize); using (var header = new MaterialHeaderScope(Styles.layers[layerIndex], (uint)Styles.layerExpandableBits[layerIndex], materialEditor)) { if (header.expanded) { EditorGUIUtility.SetIconSize(iconSize); DrawLayerGUI(layerIndex); } } } EditorGUIUtility.SetIconSize(iconSize); }
public static bool PropertyField(Rect position, SerializedProperty property, GUIContent label) { Vector2 iconSize = EditorGUIUtility.GetIconSize(); if (lookLikeInspector) { EditorGUIUtility.SetIconSize(new Vector2(16f, 16f)); } bool enabled = GUI.enabled; int indentLevel = EditorGUI.indentLevel; int num = indentLevel - property.depth; position.height = 16f; SerializedProperty serializedProperty = property.Copy(); SerializedProperty endProperty = serializedProperty.GetEndProperty(); EditorGUI.indentLevel = serializedProperty.depth + num; bool enterChildren = SinglePropertyField(position, serializedProperty, label) && HasVisibleChildFields(serializedProperty); position.y += GetSinglePropertyHeight(serializedProperty); while (serializedProperty.NextVisible(enterChildren) && !SerializedProperty.EqualContents(serializedProperty, endProperty)) { EditorGUI.indentLevel = serializedProperty.depth + num; EditorGUI.BeginChangeCheck(); enterChildren = (SinglePropertyField(position, serializedProperty) && HasVisibleChildFields(serializedProperty)); if (EditorGUI.EndChangeCheck()) { break; } position.y += GetSinglePropertyHeight(serializedProperty); } GUI.enabled = enabled; EditorGUIUtility.SetIconSize(iconSize); EditorGUI.indentLevel = indentLevel; return(false); }
public static bool ProperyField(Rect position, SerializedProperty property, GUIContent label, bool includeChildren, Func <Rect, SerializedProperty, GUIContent, bool> propertyDrawer) { if (!includeChildren) { return(propertyDrawer(position, property, label)); } else { Vector2 iconSize = EditorGUIUtility.GetIconSize(); bool enabled = GUI.enabled; int indentLevel = EditorGUI.indentLevel; int num2 = indentLevel - property.depth; SerializedProperty serializedProperty = property.Copy(); SerializedProperty endProperty = serializedProperty.GetEndProperty(); position.height = GetSinglePropertyHeight(serializedProperty, label); EditorGUI.indentLevel = serializedProperty.depth + num2; bool enterChildren = ProperyField(position, serializedProperty, label, false, propertyDrawer) && serializedProperty.hasVisibleChildren; position.y += position.height + 2f; while (serializedProperty.NextVisible(enterChildren) && !SerializedProperty.EqualContents(serializedProperty, endProperty)) { EditorGUI.indentLevel = serializedProperty.depth + num2; position.height = EditorGUI.GetPropertyHeight(serializedProperty, null, false); EditorGUI.BeginChangeCheck(); enterChildren = ProperyField(position, serializedProperty, label, false, propertyDrawer) && serializedProperty.hasVisibleChildren; if (EditorGUI.EndChangeCheck()) { break; } position.y += position.height + 2f; } GUI.enabled = enabled; EditorGUIUtility.SetIconSize(iconSize); EditorGUI.indentLevel = indentLevel; return(false); } }
protected override void OnContentGUI() { var previousIconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(new Vector2(IconSize.Small, IconSize.Small)); GUILayout.BeginVertical(Styles.background, GUILayout.ExpandHeight(true)); var question = "How do you want names to be displayed?" + "\n"; question += "If you're not an experienced programmer, we recommend Human Naming."; LudiqGUI.FlexibleSpace(); GUILayout.Label(question, LudiqStyles.centeredLabel); LudiqGUI.FlexibleSpace(); LudiqGUI.BeginHorizontal(); LudiqGUI.FlexibleSpace(); LudiqGUI.BeginVertical(); if (GUILayout.Button("Human Naming", Styles.modeButton)) { LudiqCore.Configuration.humanNaming = true; LudiqCore.Configuration.Save(); Complete(); } LudiqGUI.Space(-1); GUILayout.BeginVertical(Styles.modeBox); GUILayout.Label(new GUIContent(" Transform: Get Position", typeof(Transform).Icon()[IconSize.Small]), Styles.example); GUILayout.Label(new GUIContent(" Integer", typeof(int).Icon()[IconSize.Small]), Styles.example); GUILayout.Label(new GUIContent(" List of Game Object", typeof(List <GameObject>).Icon()[IconSize.Small]), Styles.example); GUILayout.Label(new GUIContent(" Rigidbody: Add Force (Force)", typeof(Rigidbody).Icon()[IconSize.Small]), Styles.example); LudiqGUI.EndVertical(); LudiqGUI.EndVertical(); LudiqGUI.Space(10); LudiqGUI.BeginVertical(); if (GUILayout.Button("Programmer Naming", Styles.modeButton)) { LudiqCore.Configuration.humanNaming = false; LudiqCore.Configuration.Save(); Complete(); } LudiqGUI.Space(-1); GUILayout.BeginVertical(Styles.modeBox); GUILayout.Label(new GUIContent(" Transform.position (Get)", typeof(Transform).Icon()[IconSize.Small]), Styles.example); GUILayout.Label(new GUIContent(" int", typeof(int).Icon()[IconSize.Small]), Styles.example); GUILayout.Label(new GUIContent(" List<GameObject>", typeof(List <GameObject>).Icon()[IconSize.Small]), Styles.example); GUILayout.Label(new GUIContent(" Rigidbody.AddForce(force)", typeof(Rigidbody).Icon()[IconSize.Small]), Styles.example); LudiqGUI.EndVertical(); LudiqGUI.EndVertical(); LudiqGUI.FlexibleSpace(); LudiqGUI.EndHorizontal(); LudiqGUI.FlexibleSpace(); GUILayout.Label("You can change this setting at any time from the setup or configuration.", EditorStyles.centeredGreyMiniLabel); LudiqGUI.FlexibleSpace(); LudiqGUI.EndVertical(); EditorGUIUtility.SetIconSize(previousIconSize); }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { EditorGUI.BeginProperty(position, label, property); Vector2 orgIconSize = EditorGUIUtility.GetIconSize(); EditorGUIUtility.SetIconSize(Vector2.one * 32f); Rect line = position.Clone(height: lineH + 16f); property.isExpanded = EditorGUI.Foldout(line, property.isExpanded, ZoomSectionLabel, true); EditorGUIUtility.SetIconSize(orgIconSize); if (property.isExpanded) { float forward = property.FindPropertyRelative("m_ForwardLimit").floatValue; float backward = property.FindPropertyRelative("m_BackwardLimit").floatValue; line = line.GetRectBottom(height: lineH * 2f).Modify(y: lineS); if (property.FindPropertyRelative("m_Distance").floatValue < 0.1f) { EditorGUI.HelpBox(line, "To enable zoom method, input vaild [Distance]", MessageType.Warning); } else if (forward < 0.1f && backward < 0.1f) { EditorGUI.HelpBox(line, "Drag slider bar or input [Forward] & [Backward] to config zoom range.", MessageType.Warning); } else { EditorGUI.HelpBox(line, "You may adjust [Speed] to override the camera zoom speed.", MessageType.Info); } // Distance line = line.GetRectBottom(height: lineH).Modify(y: lineS); SerializedProperty distanceProp = property.FindPropertyRelative("m_Distance"); EditorGUI.BeginChangeCheck(); EditorGUI.PropertyField(line, distanceProp, ZoomDistanceLabel); if (EditorGUI.EndChangeCheck()) { distanceProp.floatValue = Mathf.Abs(distanceProp.floatValue); } // Speed line = line.GetRectBottom().Modify(y: lineS); SerializedProperty speedProp = property.FindPropertyRelative("m_Speed"); EditorGUI.BeginChangeCheck(); EditorGUI.PropertyField(line, speedProp, ZoomSpeedLabel); if (EditorGUI.EndChangeCheck() && speedProp.floatValue <= 0f) { speedProp.floatValue = 1f; } line = line.GetRectBottom().Modify(y: lineS); SerializedProperty forwardLimitProp = property.FindPropertyRelative("m_ForwardLimit"), backwardLimitProp = property.FindPropertyRelative("m_BackwardLimit"); float max = distanceProp.floatValue; float min = -max; EditorGUI.BeginChangeCheck(); EditorGUI.MinMaxSlider(line, ref forward, ref backward, min, max); if (EditorGUI.EndChangeCheck() && forward <= 0 && backward >= 0) { forwardLimitProp.floatValue = Mathf.Clamp(forward, min, 0f);; backwardLimitProp.floatValue = Mathf.Clamp(backward, 0f, max); } line = line.GetRectBottom().Modify(y: lineS); Rect cell = line.Clone(width: line.width / 4f); EditorGUI.BeginChangeCheck(); EditorGUI.PrefixLabel(cell, ZoomForwardLabel); cell = cell.GetRectRight(); float forward2 = EditorGUI.FloatField(cell, GUIContent.none, forwardLimitProp.floatValue); cell = cell.GetRectRight(); EditorGUI.PrefixLabel(cell, ZoomBackwardLabel); cell = cell.GetRectRight(); float backward2 = EditorGUI.FloatField(cell, GUIContent.none, backwardLimitProp.floatValue); if (EditorGUI.EndChangeCheck()) { if (forward2 <= 0 && forward2 >= min) { forwardLimitProp.floatValue = Mathf.Clamp(forward2, min, 0f); } if (backward2 >= 0) { backwardLimitProp.floatValue = Mathf.Clamp(backward2, 0f, max); } } SerializedProperty reboundProp = property.FindPropertyRelative("m_Rebound"); if (reboundProp.boolValue) { line = line.GetRectBottom(height: lineH * 2f).Modify(y: lineS + 10f); EditorGUI.HelpBox(line, string.Format("Enable \"Rebound\" method, the camera will trying to reset its position to the initial direction."), MessageType.Info); } line = line.GetRectBottom(height: lineH).Modify(y: lineS); EditorGUI.PropertyField(line, reboundProp, ReboundLabel); if (reboundProp.boolValue) { line = line.GetRectBottom(height: lineH).Modify(y: lineS); EditorGUI.PropertyField(line, property.FindPropertyRelative("m_ReboundDelay"), ReboundDelayLabel); line = line.GetRectBottom(height: lineH).Modify(y: lineS); EditorGUI.PropertyField(line, property.FindPropertyRelative("m_ReboundPeriod"), ReboundPeriodLabel); line = line.GetRectBottom(height: lineH).Modify(y: lineS); AnimationCurve curve = EditorGUI.CurveField(line, ReboundCurveLabel, property.FindPropertyRelative("m_ReboundCurve").animationCurveValue); curve.Clamp(0f, -1f, 1f, 1f); property.FindPropertyRelative("m_ReboundCurve").animationCurveValue = curve; if (!curve.MatchStartEndKeysValues(0f, 1f)) { line = line.GetRectBottom(height: 40f).Modify(y: lineS); if (GUI.Button(line, "Fix curve values into 0f..1f")) { property.FindPropertyRelative("m_ReboundCurve").animationCurveValue = curve.FixStartEndKeysValues(0f, 1f); } } line = line.GetRectBottom(height: lineH).Modify(y: lineS); EditorGUI.PropertyField(line, property.FindPropertyRelative("m_WaitForClampAngle"), ReboundWaitClampAngleLabel); } } EditorGUI.EndProperty(); }