private void OnEnable() { helperNames.Clear(); makerNames.Clear(); baseHelperIdx = serializedObject.FindProperty("_baseHelperIdx"); foreach (var helperName in TypesObtainer <BaseCircleHelper <dynamic> > .GetNames()) { helperNames.Add(helperName.Substring(0, helperName.Length - 2)); } Type[] makerAttr = ScrollCircleEditor.SeekFeatureMaker(baseHelperIdx.intValue); foreach (var makerName in makerAttr) { makerNames.Add(makerName.FullName); } scrollMaker = serializedObject.FindProperty("_scrollMaker"); baseItem = serializedObject.FindProperty("_baseItem"); scrollDir = serializedObject.FindProperty("_scrollDir"); scrollType = serializedObject.FindProperty("_scrollType"); scrollSort = serializedObject.FindProperty("_scrollSort"); refreshRatio = serializedObject.FindProperty("_refreshRatio"); autoMoveRatio = serializedObject.FindProperty("_autoMoveRatio"); padding = serializedObject.FindProperty("_padding"); spacing = serializedObject.FindProperty("_spacing"); isUpdateEnable = serializedObject.FindProperty("_isUpdateEnable"); isCircleEnable = serializedObject.FindProperty("_isCircleEnable"); stepLen = serializedObject.FindProperty("_stepLen"); itemsPos = serializedObject.FindProperty("_itemsPos"); itemIdx = serializedObject.FindProperty("_itemIdx"); dataIdx = serializedObject.FindProperty("_dataIdx"); visibleItems = serializedObject.FindProperty("_visibleItems"); initItems = serializedObject.FindProperty("_initItems"); m_MakerIdx = makerNames.IndexOf(scrollMaker.stringValue); }
private void OnEnable() { helperNames.Clear(); foreach (var helperName in TypesObtainer <BaseCircleHelper <dynamic> > .GetNames()) { helperNames.Add(helperName.Substring(0, helperName.Length - 2)); } }
private static void ClerAllMakers() { List <string> baseMakers = TypesObtainer <BaseDirectMaker <dynamic> > .GetScripts(); List <string> resultFiles = new List <string>(); GetDirs("Assets/", baseMakers, resultFiles); foreach (var fileName in resultFiles) { if (File.Exists(fileName)) { File.Delete(fileName); } } AssetDatabase.Refresh(); }
/// <summary> /// 寻找特征解决方案 /// </summary> /// <param name="helperName">辅助器名</param> /// <returns></returns> public static List <string> SeekFeatureMaker(string helperName) { List <string> baseMakers = TypesObtainer <BaseDirectMaker <dynamic> > .GetScripts(); List <string> resultFiles = new List <string>(); GetDirs("Assets/", baseMakers, resultFiles); string tmpContent; for (int i = resultFiles.Count - 1; i >= 0; --i) { if (File.Exists(resultFiles[i])) { tmpContent = File.ReadAllText(resultFiles[i]); if (!tmpContent.Contains(helperName)) { resultFiles.RemoveAt(i); } } } return(resultFiles); }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); { EditorGUILayout.PropertyField(baseItem); if (baseItem.objectReferenceValue == null) { EditorGUILayout.HelpBox("You must set BaseItem", MessageType.Error); } int helperIndex = EditorGUILayout.Popup("Base Helper", baseHelperIdx.intValue, helperNames.ToArray()); if (helperIndex != baseHelperIdx.intValue) { makerNames.Clear(); baseHelperIdx.intValue = helperIndex; List <string> tmpMakerNames = TypesObtainer <BaseDirectMaker <dynamic> > .GetNames(); List <string> resultFiles = ScrollCircleEditor.SeekFeatureMaker(helperNames[baseHelperIdx.intValue].Split('.')[2]); foreach (var filesName in resultFiles) { foreach (var tmpMaker in tmpMakerNames) { if (filesName.Contains(tmpMaker.Split('.')[2])) { makerNames.Add(tmpMaker); break; } } } m_MakerIdx = -1; tmpMakerNames.Clear(); resultFiles.Clear(); } if (baseHelperIdx.intValue == -1) { EditorGUILayout.HelpBox("You must set BaseHelper", MessageType.Error); } int makerIndex = EditorGUILayout.Popup("Scroll Maker", m_MakerIdx, makerNames.ToArray()); if (makerIndex != m_MakerIdx) { m_MakerIdx = makerIndex; scrollMaker.stringValue = makerNames[makerIndex]; } if (string.IsNullOrEmpty(scrollMaker.stringValue) || m_MakerIdx == -1) { EditorGUILayout.HelpBox("You must set ScrollCircleMaker", MessageType.Error); } EditorGUILayout.PropertyField(scrollDir); EditorGUILayout.PropertyField(scrollSort); EditorGUILayout.PropertyField(scrollType); if (scrollType.enumValueIndex == 1) { EditorGUILayout.PropertyField(stepLen); if (stepLen.intValue < 0) { stepLen.intValue = 0; } } refreshRatio.floatValue = (EditorGUILayout.IntSlider("Refresh Ratio", (int)(refreshRatio.floatValue * 10 + 1), 1, 3) - 1) / 10f; autoMoveRatio.intValue = EditorGUILayout.IntSlider("AutoMove Ratio", autoMoveRatio.intValue / 10, 1, 10) * 10; if (helperIndex == 0) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Spacing", GUILayout.Width(116)); Vector2Int tmpSpacing = spacing.vector2IntValue; if (scrollDir.enumValueIndex <= 1) { tmpSpacing.y = EditorGUILayout.IntField(spacing.vector2IntValue.y); } else { tmpSpacing.x = EditorGUILayout.IntField(spacing.vector2IntValue.x); } spacing.vector2IntValue = tmpSpacing; EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(padding, true); EditorGUILayout.PropertyField(itemsPos, true); } else if (helperIndex == 1) { EditorGUILayout.PropertyField(spacing, true); EditorGUILayout.PropertyField(padding, true); } else if (helperIndex == 2) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Spacing", GUILayout.Width(116)); Vector2Int tmpSpacing = spacing.vector2IntValue; if (scrollDir.enumValueIndex <= 1) { tmpSpacing.y = EditorGUILayout.IntField(spacing.vector2IntValue.y); } else { tmpSpacing.x = EditorGUILayout.IntField(spacing.vector2IntValue.x); } spacing.vector2IntValue = tmpSpacing; EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(padding, true); } EditorGUILayout.BeginHorizontal(); isUpdateEnable.boolValue = EditorGUILayout.ToggleLeft("IsUpdateEnable", isUpdateEnable.boolValue, GUILayout.Width(140)); isCircleEnable.boolValue = EditorGUILayout.ToggleLeft("IsCircleEnable", isCircleEnable.boolValue, GUILayout.Width(140)); EditorGUILayout.EndHorizontal(); if (EditorApplication.isPlaying) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("VisibleItems:" + visibleItems.intValue.ToString(), GUILayout.Width(100)); EditorGUILayout.LabelField("InitItems:" + initItems.intValue.ToString(), GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("ItemIdx:" + itemIdx.intValue.ToString(), GUILayout.Width(100)); EditorGUILayout.LabelField("DataIdx:" + dataIdx.intValue.ToString(), GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); } } EditorGUI.EndDisabledGroup(); serializedObject.ApplyModifiedProperties(); }