private void OnEnable() { mActionEditors.Clear(); if (!mScript) { return; } foreach (var actionKitVisualAction in mScript.Acitons) { AddEditor(actionKitVisualAction); } this.AddChild( EasyIMGUI.Horizontal() .AddChild(EasyIMGUI.Label().Text("Actions").FontBold().FontSize(12)) .AddChild(EasyIMGUI.FlexibleSpace()) .AddChild(EasyIMGUI.Button().Text("+").FontBold().FontSize(12).OnClick(() => { ActionBrowser.Open((t) => { var visualAction = mScript.gameObject.AddComponent(t) as ActionKitVisualAction; visualAction.hideFlags = HideFlags.HideInInspector; mScript.Acitons.Add(visualAction); AddEditor(visualAction); Save(); }); })) ); }
private void OnRefreshList(List <PackageRepository> packageRepositories) { mRepositoryList.Clear(); mRepositoryList.AddChild(EasyIMGUI.Space().Pixel(2)); var localPackageVersion = mControllerNode.GetModel <ILocalPackageVersionModel>(); foreach (var packageRepository in packageRepositories.OrderByDescending(p => { var installedVersion = localPackageVersion.GetByName(p.name); if (installedVersion == null) { return(-1); } else if (installedVersion.VersionNumber < p.VersionNumber) { return(2); } else if (installedVersion.VersionNumber == p.VersionNumber) { return(1); } else { return(0); } }).ThenBy(p => p.name)) { mRepositoryList .AddChild(EasyIMGUI.Space().Pixel(2)) .AddChild(new PackageRepositoryView(packageRepository)); } }
public TreeNode(bool spread, string content, int indent = 0, bool autosaveSpreadState = false) { if (autosaveSpreadState) { spread = EditorPrefs.GetBool(content, spread); } Content = content; Spread = new Property <bool>(spread); Style = new GUIStyleProperty(() => EditorStyles.foldout); mFirstLine.AddTo(this); mFirstLine.AddChild(EasyIMGUI.Space().Pixel(indent)); if (autosaveSpreadState) { Spread.Bind(value => EditorPrefs.SetBool(content, value)); } EasyIMGUI.Custom().OnGUI(() => { Spread.Value = EditorGUILayout.Foldout(Spread.Value, Content, true, Style.Value); }) .AddTo(mFirstLine); EasyIMGUI.Custom().OnGUI(() => { if (Spread.Value) { mSpreadView.DrawGUI(); } }).AddTo(this); }
public void Init(IQFrameworkContainer container) { EasyIMGUI.Label().Text("账户信息").FontSize(12).Parent(this); var boxLayout = new VerticalLayout("box").Parent(this); var logoutBtn = EasyIMGUI.Button().Text("注销") .Visible(PackageKitLoginState.Logined.Value) .Parent(boxLayout); var loginView = new LoginView() .Self(self => self.Visible = PackageKitLoginState.LoginViewVisible.Value) .Parent(boxLayout); var registerView = new RegisterView() .Self(self => self.Visible = PackageKitLoginState.RegisterViewVisible.Value) .Parent(boxLayout); PackageKitLoginState.Logined.Bind(value => { logoutBtn.Visible = value; }).AddTo(mDisposableList); logoutBtn.OnClick(mControllerNode.SendCommand <LogoutCommand>); PackageKitLoginState.LoginViewVisible.Bind(value => { loginView.Visible = value; }).AddTo(mDisposableList); PackageKitLoginState.RegisterViewVisible.Bind(value => { registerView.Visible = value; }) .AddTo(mDisposableList); }
public void Init(IQFrameworkContainer container) { mRootLayout = EasyIMGUI.Vertical(); var verticalLayout = EasyIMGUI.Vertical() .AddTo(mRootLayout); EasyIMGUI.Label().Text("技术支持").FontBold().FontSize(12).AddTo(verticalLayout); new AdvertisementItemView("官方文档:《QFramework 使用指南 2020》", "https://qframework.cn/doc") .AddTo(verticalLayout); new AdvertisementItemView("官方 qq 群:623597263", "https://shang.qq.com/wpa/qunwpa?idkey=706b8eef0fff3fe4be9ce27c8702ad7d8cc1bceabe3b7c0430ec9559b3a9ce6") .AddTo(verticalLayout); new AdvertisementItemView("提问/提需求/提 Bug/社区", "https://qframework.cn/community") .AddTo(verticalLayout); new AdvertisementItemView("github", "https://github.com/liangxiegame/QFramework") .AddTo(verticalLayout); new AdvertisementItemView("gitee", "https://gitee.com/liangxiegame/QFramework") .AddTo(verticalLayout); new AdvertisementItemView("Unity 开发者进阶班级:小班", "https://liangxiegame.com/zhuanlan/list/89064995-924f-43cd-b236-3eb3eaa01aa0") .AddTo(verticalLayout); }
public T Convert <T>(XmlNode node) where T : class { var label = EasyIMGUI.Label(); foreach (XmlAttribute childNodeAttribute in node.Attributes) { if (childNodeAttribute.Name == "Id") { label.Id = childNodeAttribute.Value; } else if (childNodeAttribute.Name == "Text") { label.Text(childNodeAttribute.Value); } else if (childNodeAttribute.Name == "FontBold") { label.FontBold(); } else if (childNodeAttribute.Name == "FontSize") { label.FontSize(int.Parse(childNodeAttribute.Value)); } } return(label as T); }
private void OnRefreshList(List <PackageRepository> packageRepositories) { mRepositoryList.Clear(); mRepositoryList.AddChild(EasyIMGUI.Space().Pixel(2)); foreach (var packageRepository in packageRepositories) { mRepositoryList .AddChild(EasyIMGUI.Space().Pixel(2)) .AddChild(new PackageRepositoryView(packageRepository)); } }
public T Convert <T>(XmlNode node) where T : class { var horizontal = EasyIMGUI.Horizontal(); foreach (XmlAttribute childNodeAttribute in node.Attributes) { if (childNodeAttribute.Name == "Id") { horizontal.Id = childNodeAttribute.Value; } } return(horizontal as T); }
public T Convert <T>(XmlNode node) where T : class { var custom = EasyIMGUI.Custom(); foreach (XmlAttribute nodeAttribute in node.Attributes) { if (nodeAttribute.Name == "Id") { custom.Id = nodeAttribute.Value; } } return(custom as T); }
public T Convert <T>(XmlNode node) where T : class { var scroll = EasyIMGUI.Scroll(); foreach (XmlAttribute childNodeAttribute in node.Attributes) { if (childNodeAttribute.Name == "Id") { scroll.Id = childNodeAttribute.Value; } } return(scroll as T); }
public T Convert <T>(XmlNode node) where T : class { var flexibleSpace = EasyIMGUI.FlexibleSpace(); foreach (XmlAttribute childNodeAttribute in node.Attributes) { if (childNodeAttribute.Name == "Id") { flexibleSpace.Id = childNodeAttribute.Value; } } return(flexibleSpace as T); }
protected override void Init() { this.AddChild(EasyIMGUI.TextField().Self(t => { t.Content.Bind(c => { if (c.IsNullOrEmpty()) { AllActionViews.ForEach(a => a.Item2.Visible = true); } else { AllActionViews.ForEach(a => a.Item2.Visible = a.Item1.ToLower().Contains(c.ToLower())); } }); })); var scroll = EasyIMGUI.Scroll(); foreach (var group in EventTypeDB.GetAll() .Where(t => t.GetFirstAttribute <OnlyUsedByCodeAttribute>(false) == null).GroupBy(t => { var attribute = t.GetFirstAttribute <ActionGroupAttribute>(false); return(attribute != null ? attribute.GroupName : "未分组"); }) .OrderBy(g => g.Key == "未分组")) { var treeNode = new TreeNode(true, group.Key); foreach (var type in @group.OrderBy(t => t.Name)) { var actionType = type; treeNode.Add2Spread(EasyIMGUI.Button() .OnClick(() => { mOnTypeClick(actionType); Close(); }) .Text(type.Name) .Self(button => AllActionViews.Add(new Tuple <string, IButton>(type.Name, button)))); } scroll.AddChild(treeNode); } this.AddChild(scroll); }
void ReloadMarkedList() { mMarkedPathList.Clear(); AssetDatabase.GetAllAssetBundleNames() .SelectMany(n => { var result = AssetDatabase.GetAssetPathsFromAssetBundle(n); return(result.Select(r => { if (ResKitAssetsMenu.Marked(r)) { return r; } if (ResKitAssetsMenu.Marked(r.GetPathParentFolder())) { return r.GetPathParentFolder(); } return null; }).Where(r => r != null) .Distinct()); }) .ForEach(n => new HorizontalLayout() .AddChild(EasyIMGUI.Label().Text(n)) .AddChild(EasyIMGUI.Button() .Text(LocaleText.Select) .OnClick(() => { Selection.objects = new[] { AssetDatabase.LoadAssetAtPath <Object>(n) }; }).Width(50)) .AddChild(EasyIMGUI.Button() .Text(LocaleText.CancelMark) .OnClick(() => { ResKitAssetsMenu.MarkAB(n); EditorLifecycle.PushCommand(() => { ReloadMarkedList(); }); }).Width(75)) .Parent(mMarkedPathList) ); }
public AdvertisementItemView(string title, string link) { Box(); EasyIMGUI.Label() .Text(title) .FontBold() .AddTo(this); EasyIMGUI.FlexibleSpace().AddTo(this); EasyIMGUI.Button() .Text(LocalText.Open) .OnClick(() => { Application.OpenURL(link); }) .Width(200) .AddTo(this); }
public T Convert <T>(XmlNode node) where T : class { var textArea = EasyIMGUI.TextField(); foreach (XmlAttribute nodeAttribute in node.Attributes) { if (nodeAttribute.Name == "Id") { textArea.Id = nodeAttribute.Value; } else if (nodeAttribute.Name == "Text") { textArea.Text(nodeAttribute.Value); } } return(textArea as T); }
public T Convert <T>(XmlNode node) where T : class { var space = EasyIMGUI.Space(); foreach (XmlAttribute nodeAttribute in node.Attributes) { if (nodeAttribute.Name == "Id") { space.Id = nodeAttribute.Value; } else if (nodeAttribute.Name == "Pixel") { space.Pixel(int.Parse(nodeAttribute.Value)); } } return(space as T); }
public void Init(IQFrameworkContainer container) { EasyIMGUI.Label().Text("Roadmap 路线图").FontSize(12).Parent(this); EasyIMGUI.Vertical().Box() .AddChild(EasyIMGUI.Label().Text("将来也许").FontBold()) .AddChild(EasyIMGUI.Label().Text("* sLua、toLua、xLua、ILRuntime 支持")) .AddChild(EasyIMGUI.Label().Text("* UnityPackageManager 支持")) .AddChild(EasyIMGUI.Label().Text("* ResKit 支持自定义目录方案")) .AddChild(EasyIMGUI.Label().Text("* UIKit 支持多个 Canvas Root 和 摄像机方案")) .AddChild(EasyIMGUI.Label().Text("v0.12.x").FontBold()) .AddChild(EasyIMGUI.Label().Text("* 插件平台的插件整理")) .AddChild(EasyIMGUI.Label().Text("* Example 示例整理")) .AddChild(EasyIMGUI.Label().Text("* Asset Store 兼容 & 减少第三方依赖")) .AddChild(EasyIMGUI.Label().Text("* 文档整理 & 在编辑器内部内置")) .AddChild(EasyIMGUI.Label().Text("v0.11.x(开发中)").FontBold()) .AddChild(EasyIMGUI.Label().Text("* 打 dll 优化旧设备的编译速度")) .AddChild(EasyIMGUI.Label().Text("v0.10.x(已完成)").FontBold()) .AddChild(EasyIMGUI.Label().Text("* ILRuntime 支持(只完成一部分,后续再支持)")) .AddChild(EasyIMGUI.Label().Text("v0.9.x(已完成)").FontBold()) .AddChild(EasyIMGUI.Label().Text("* 单元测试覆盖")) .AddChild(EasyIMGUI.Label().Text("* PackageKit、Framework、Extensions 的示例全部覆盖")) .AddChild(EasyIMGUI.Label().Text("* 3 ~ 5 个 Demo 发布")) .AddChild(EasyIMGUI.Label().Text("v0.2.x ~ v0.8.x(已完成)").FontBold()) .AddChild(EasyIMGUI.Label().Text("* PackageManager 独立成 PackageKit")) .AddChild(EasyIMGUI.Label().Text("* 剥离掉第三方插件,最为扩展插件支持")) .AddChild(EasyIMGUI.Label().Text("* 插件平台发布:https://liangxiegame.com/qf/package")) .AddChild(EasyIMGUI.Label().Text("* 命名空间从 QF 改回 QFramework")) .AddChild(EasyIMGUI.Label().Text("* 大量 Bug 修复、大量示例编写")) .AddChild(EasyIMGUI.Label().Text("* 五子棋 Demo 发布:Demo:五子棋")) .AddChild(EasyIMGUI.Label().Text("* QFramework 使用指南 2020 完结:QFramework 使用指南 2020")) .AddChild(EasyIMGUI.Label().Text("v0.1.x(已完成)").FontBold()) .AddChild(EasyIMGUI.Label().Text("* UniRx、Zenject、uFrame、JsonDotnet、CatLib 集成和增强")) .AddChild(EasyIMGUI.Label().Text("* IOC 增加 IOC 部分")) .AddChild(EasyIMGUI.Label().Text("* 框架自动更新机制 => PackageManager")) .AddChild(EasyIMGUI.Label().Text("* 命名空间从 QFramework 改成 QF")) .AddChild(EasyIMGUI.Label().Text("v0.0.x(已完成)").FontBold()) .AddChild(EasyIMGUI.Label().Text("* 框架搭建 2017 的工具集收录")) .AddChild(EasyIMGUI.Label().Text("* 框架搭建 2018 的 ResKit 和 UI Kit 模块实现")) .AddChild(EasyIMGUI.Label().Text("* ActionKit 模块实现")) .AddChild(EasyIMGUI.Label().Text("* Manager Of Managers 支持")) .AddChild(EasyIMGUI.Label().Text("* 框架自动更新机制")) .Parent(this); }
public void OnGUI() { mScrollPos = GUILayout.BeginScrollView(mScrollPos, true, true, GUILayout.Width(580), GUILayout.Height(300)); GUILayout.Label("类型:" + mPackageVersion.Type); mReadme.items.ForEach(item => { EasyIMGUI .Custom() .OnGUI(() => { GUILayout.BeginHorizontal(EditorStyles.helpBox); GUILayout.BeginVertical(); GUILayout.BeginHorizontal(); GUILayout.Label("version: " + item.version, GUILayout.Width(130)); GUILayout.Label("author: " + item.author); GUILayout.Label("date: " + item.date); if (item.author == User.Username.Value || User.Username.Value == "liangxie") { if (GUILayout.Button("删除")) { // RenderEndCommandExecuter.PushCommand(() => // { new PackageManagerServer().DeletePackage(item.PackageId, () => { mReadme.items.Remove(item); }); // }); } } GUILayout.EndHorizontal(); GUILayout.Label(item.content); GUILayout.EndVertical(); GUILayout.EndHorizontal(); }).DrawGUI(); }); GUILayout.EndScrollView(); }
public T Convert <T>(XmlNode node) where T : class { var button = EasyIMGUI.Button(); foreach (XmlAttribute childNodeAttribute in node.Attributes) { if (childNodeAttribute.Name == "Id") { button.Id = childNodeAttribute.Value; } else if (childNodeAttribute.Name == "Text") { button.Text(childNodeAttribute.Value); } else if (childNodeAttribute.Name == "Width") { button.Width(int.Parse(childNodeAttribute.Value)); } } return(button as T); }
private void OnEnable() { if (mInited) { return; } if (!mScript) { return; } mInited = true; Editors.Clear(); foreach (var actionKitVisualEvent in mScript.Events) { AddEvent(actionKitVisualEvent); } this.AddChild( EasyIMGUI.Horizontal() .AddChild(EasyIMGUI.Label().Text("Events").FontBold().FontSize(12)) .AddChild(EasyIMGUI.FlexibleSpace()) .AddChild(EasyIMGUI.Button().Text("+").OnClick(() => { EventBrowser.Open((t) => { var e = mScript.gameObject.AddComponent(t) as ActionKitVisualEvent; e.hideFlags = HideFlags.HideInInspector; mScript.Events.Add(e); AddEvent(e); EditorUtility.SetDirty(target); UnityEditor.SceneManagement.EditorSceneManager .MarkSceneDirty(SceneManager.GetActiveScene()); }); })) ); }
private void OnEnable() { mRootLayout = new VerticalLayout(); EasyIMGUI.Button() .Text(LocaleText.Generate) .OnClick(() => { CreateViewControllerCode.DoCreateCodeFromScene((target as ViewController).gameObject); GUIUtility.ExitGUI(); }) .Height(30) .AddTo(mRootLayout); if (mCodeGenerateInfo.ScriptsFolder.IsNullOrEmpty()) { var setting = UIKitSettingData.Load(); mCodeGenerateInfo.ScriptsFolder = "Assets" + setting.DefaultViewControllerScriptDir; } if (mCodeGenerateInfo.PrefabFolder.IsNullOrEmpty()) { var setting = UIKitSettingData.Load(); mCodeGenerateInfo.PrefabFolder = "Assets" + setting.DefaultViewControllerPrefabDir; } if (mCodeGenerateInfo.ScriptName.IsNullOrEmpty()) { mCodeGenerateInfo.ScriptName = mCodeGenerateInfo.name; } if (mCodeGenerateInfo.Namespace.IsNullOrEmpty()) { var setting = UIKitSettingData.Load(); mCodeGenerateInfo.Namespace = setting.Namespace; } }
public void Init(IQFrameworkContainer container) { mViewModel = new UIKitSettingViewModel(); EasyIMGUI.Label().Text(LocaleText.UIKitSettings).FontSize(12).Parent(this); mRootLayout = EasyIMGUI.Vertical().Box().Parent(this); mRootLayout.AddChild(EasyIMGUI.Space().Pixel(6)); // 命名空间 var nameSpaceLayout = new HorizontalLayout() .Parent(mRootLayout); EasyIMGUI.Label().Text(LocaleText.Namespace) .FontSize(12) .FontBold() .Width(200) .Parent(nameSpaceLayout); EasyIMGUI.TextField().Text(mUiKitSettingData.Namespace) .Parent(nameSpaceLayout) .Content.Bind(content => mUiKitSettingData.Namespace = content); // UI 生成的目录 EasyIMGUI.Space().Pixel(6) .Parent(mRootLayout); var uiScriptGenerateDirLayout = new HorizontalLayout() .Parent(mRootLayout); EasyIMGUI.Label().Text(LocaleText.UIScriptGenerateDir) .FontSize(12) .FontBold() .Width(200) .Parent(uiScriptGenerateDirLayout); EasyIMGUI.TextField().Text(mUiKitSettingData.UIScriptDir) .Parent(uiScriptGenerateDirLayout) .Content.Bind(content => mUiKitSettingData.UIScriptDir = content); mRootLayout.AddChild(EasyIMGUI.Space().Pixel(6)); var uiPanelPrefabDir = new HorizontalLayout() .Parent(mRootLayout); EasyIMGUI.Label().Text(LocaleText.UIPanelPrefabDir) .FontSize(12) .FontBold() .Width(200) .Parent(uiPanelPrefabDir); EasyIMGUI.TextField().Text(mUiKitSettingData.UIPrefabDir) .Parent(uiPanelPrefabDir) .Content.Bind(content => mUiKitSettingData.UIPrefabDir = content); mRootLayout.AddChild(EasyIMGUI.Space().Pixel(6)); // UI 生成的目录 EasyIMGUI.Space().Pixel(6) .Parent(mRootLayout); var viewControllerScriptGenerateDirLayout = new HorizontalLayout() .Parent(mRootLayout); EasyIMGUI.Label().Text(LocaleText.ViewControllerScriptGenerateDir) .FontSize(12) .FontBold() .Width(200) .Parent(viewControllerScriptGenerateDirLayout); EasyIMGUI.TextField().Text(mUiKitSettingData.DefaultViewControllerScriptDir) .Parent(viewControllerScriptGenerateDirLayout) .Content.Bind(content => mUiKitSettingData.DefaultViewControllerScriptDir = content); mRootLayout.AddChild(EasyIMGUI.Space().Pixel(6)); var viewControllerPrefabDir = new HorizontalLayout() .Parent(mRootLayout); EasyIMGUI.Label().Text(LocaleText.ViewControllerPrefabGenerateDir) .FontSize(12) .FontBold() .Width(220) .Parent(viewControllerPrefabDir); EasyIMGUI.TextField().Text(mUiKitSettingData.DefaultViewControllerPrefabDir) .Parent(viewControllerPrefabDir) .Content.Bind(content => mUiKitSettingData.DefaultViewControllerPrefabDir = content); mRootLayout.AddChild(EasyIMGUI.Space().Pixel(6)); // 保存数据 EasyIMGUI.Button() .Text(LocaleText.Apply) .OnClick(() => { mUiKitSettingData.Save(); }) .Parent(mRootLayout); EasyIMGUI.TextField().Text(mViewModel.PanelNameToCreate) .Parent(mRootLayout) .Self(text => { text.Content.Bind(txt => mViewModel.PanelNameToCreate = txt); }); // 创建 UI 界面 按钮的绑定 EasyIMGUI.Button() .Text(LocaleText.CreateUIPanel) .Parent(mRootLayout) .Self(btn => btn.OnClick(() => { mViewModel.OnCreateUIPanelClick(); })); }
protected override void Init() { PackageMakerState.InitState(); var hashSet = new HashSet <string>(); if (mPackageVersion.IncludeFileOrFolders.Count == 0 && mPackageVersion.InstallPath.EndsWith("/")) { hashSet.Add(mPackageVersion.InstallPath.Remove(mPackageVersion.InstallPath.Length - 1)); } foreach (var packageIncludeFileOrFolder in mPackageVersion.IncludeFileOrFolders) { hashSet.Add(packageIncludeFileOrFolder); } _assetTree = new AssetTree(); _assetTreeGUI = new AssetTreeIMGUI(_assetTree.Root); var guids = AssetDatabase.FindAssets(string.Empty); int i = 0, l = guids.Length; for (; i < l; ++i) { _assetTree.AddAsset(guids[i], hashSet); } RootLayout = new VerticalLayout("box"); var editorView = EasyIMGUI.Vertical().Parent(RootLayout); var uploadingView = new VerticalLayout().Parent(RootLayout); // 当前版本号 var versionLine = EasyIMGUI.Horizontal().Parent(editorView); EasyIMGUI.Label().Text("当前版本号").Width(100).Parent(versionLine); EasyIMGUI.Label().Text(mPackageVersion.Version).Width(100).Parent(versionLine); // 发布版本号 var publishedVersionLine = new HorizontalLayout().Parent(editorView); EasyIMGUI.Label().Text("发布版本号") .Width(100) .Parent(publishedVersionLine); EasyIMGUI.TextField() .Text(mPublishVersion) .Width(100) .Parent(publishedVersionLine) .Content.Bind(v => mPublishVersion = v); // 类型 var typeLine = EasyIMGUI.Horizontal().Parent(editorView); EasyIMGUI.Label().Text("类型").Width(100).Parent(typeLine); var packageType = new EnumPopupView(mPackageVersion.Type).Parent(typeLine); var accessRightLine = EasyIMGUI.Horizontal().Parent(editorView); EasyIMGUI.Label().Text("权限").Width(100).Parent(accessRightLine); var accessRight = new EnumPopupView(mPackageVersion.AccessRight).Parent(accessRightLine); EasyIMGUI.Label().Text("发布说明:").Width(150).Parent(editorView); var releaseNote = EasyIMGUI.TextArea().Width(245) .Parent(editorView); // 文件选择部分 EasyIMGUI.Label().Text("插件目录: " + mPackageVersion.InstallPath) .Parent(editorView); EasyIMGUI.Custom().OnGUI(() => { _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition); _assetTreeGUI.DrawTreeLayout(); EditorGUILayout.EndScrollView(); }).Parent(editorView); PackageMakerState.InEditorView.BindWithInitialValue(value => { editorView.Visible = value; }) .AddTo(mDisposableList); if (User.Logined) { EasyIMGUI.Button() .Text("发布") .OnClick(() => { var includedPaths = new List <string>(); _assetTree.Root.Traverse(data => { if (data != null && data.isSelected) { includedPaths.Add(data.fullPath); return(false); } return(true); }); mPackageVersion.IncludeFileOrFolders = includedPaths; mPackageVersion.Readme.content = releaseNote.Content.Value; mPackageVersion.AccessRight = (PackageAccessRight)accessRight.ValueProperty.Value; mPackageVersion.Type = (PackageType)packageType.ValueProperty.Value; mPackageVersion.Version = mPublishVersion; mControllerNode.SendCommand(new PublishPackageCommand(mPackageVersion)); }).Parent(editorView); } var notice = new LabelViewWithRect("", 100, 200, 200, 200).Parent(uploadingView); PackageMakerState.NoticeMessage .BindWithInitialValue(value => { notice.Content.Value = value; }).AddTo(mDisposableList); PackageMakerState.InUploadingView.BindWithInitialValue(value => { uploadingView.Visible = value; }) .AddTo(mDisposableList); }
private void OnEnable() { mRootLayout = new VerticalLayout("box"); EasyIMGUI.Space() .Parent(mRootLayout); var markTypeLine = EasyIMGUI.Horizontal() .Parent(mRootLayout); EasyIMGUI.Label().Text(LocaleText.MarkType) .FontSize(12) .Width(60) .Parent(markTypeLine); var enumPopupView = new EnumPopupView(mBindScript.MarkType) .Parent(markTypeLine); enumPopupView.ValueProperty.Bind(newValue => { mBindScript.MarkType = (BindType)newValue; OnRefresh(); }); EasyIMGUI.Space() .Parent(mRootLayout); EasyIMGUI.Custom().OnGUI(() => { if (mBindScript.CustomComponentName == null || string.IsNullOrEmpty(mBindScript.CustomComponentName.Trim())) { mBindScript.CustomComponentName = mBindScript.name; } }).Parent(mRootLayout); mComponentLine = EasyIMGUI.Horizontal(); EasyIMGUI.Label().Text(LocaleText.Type) .Width(60) .FontSize(12) .Parent(mComponentLine); if (mBindScript.MarkType == BindType.DefaultUnityElement) { var components = mBindScript.GetComponents <Component>(); var componentNames = components.Where(c => !(c is AbstractBind)) .Select(c => c.GetType().FullName) .ToArray(); var componentNameIndex = 0; componentNameIndex = componentNames.ToList() .FindIndex((componentName) => componentName.Contains(mBindScript.ComponentName)); if (componentNameIndex == -1 || componentNameIndex >= componentNames.Length) { componentNameIndex = 0; } mBindScript.ComponentName = componentNames[componentNameIndex]; new PopupView(componentNameIndex, componentNames) .Parent(mComponentLine) .IndexProperty.Bind((index) => { mBindScript.ComponentName = componentNames[index]; }); } mComponentLine.Parent(mRootLayout); EasyIMGUI.Space() .Parent(mRootLayout); var belongsTo = EasyIMGUI.Horizontal() .Parent(mRootLayout); EasyIMGUI.Label().Text(LocaleText.BelongsTo) .Width(60) .FontSize(12) .Parent(belongsTo); EasyIMGUI.Label().Text(CodeGenUtil.GetBindBelongs2(target as AbstractBind)) .Width(200) .FontSize(12) .Parent(belongsTo); EasyIMGUI.Button() .Text(LocaleText.Select) .OnClick(() => { Selection.objects = new Object[] { CodeGenUtil.GetBindBelongs2GameObject(target as AbstractBind) }; }) .Width(60) .Parent(belongsTo); mClassnameLine = new HorizontalLayout(); EasyIMGUI.Label().Text(LocaleText.ClassName) .Width(60) .FontSize(12) .Parent(mClassnameLine); EasyIMGUI.TextField().Text(mBindScript.CustomComponentName) .Parent(mClassnameLine) .Content.Bind(newValue => { mBindScript.CustomComponentName = newValue; }); mClassnameLine.Parent(mRootLayout); EasyIMGUI.Space() .Parent(mRootLayout); EasyIMGUI.Label().Text(LocaleText.Comment) .FontSize(12) .Parent(mRootLayout); EasyIMGUI.Space() .Parent(mRootLayout); EasyIMGUI.TextArea() .Text(mBindScript.Comment) .Height(100) .Parent(mRootLayout) .Content.Bind(newValue => mBindScript.CustomComment = newValue); var bind = target as AbstractBind; var rootGameObj = CodeGenUtil.GetBindBelongs2GameObject(bind); if (rootGameObj.transform.GetComponent("ILKitBehaviour")) { } else if (rootGameObj.transform.IsUIPanel()) { EasyIMGUI.Button() .Text(LocaleText.Generate + " " + CodeGenUtil.GetBindBelongs2(bind)) .OnClick(() => { var rootPrefabObj = PrefabUtility.GetPrefabParent(rootGameObj); UICodeGenerator.DoCreateCode(new[] { rootPrefabObj }); }) .Height(30) .Parent(mRootLayout); } else if (rootGameObj.transform.IsViewController()) { EasyIMGUI.Button() .Text(LocaleText.Generate + " " + CodeGenUtil.GetBindBelongs2(bind)) .OnClick(() => { CreateViewControllerCode.DoCreateCodeFromScene(bind.gameObject); }) .Height(30) .Parent(mRootLayout); } OnRefresh(); }
public void Init(IQFrameworkContainer container) { EasyIMGUI.Label().Text(LocaleText.ResKit).FontSize(12).AddTo(this); var verticalLayout = new VerticalLayout("box").AddTo(this); var persistLine = new HorizontalLayout(); EasyIMGUI.Label().Text("PersistantPath:").AddTo(persistLine).Width(100); EasyIMGUI.TextField().Text(Application.persistentDataPath).AddTo(persistLine); persistLine.AddTo(verticalLayout); EasyIMGUI.Button() .Text(LocaleText.GoToPersistent) .OnClick(() => { EditorUtility.RevealInFinder(Application.persistentDataPath); }) .AddTo(verticalLayout); mResVersion = EditorPrefs.GetString(KEY_QAssetBundleBuilder_RESVERSION, "100"); mEnableGenerateClass = EditorPrefs.GetBool(KEY_AUTOGENERATE_CLASS, true); switch (EditorUserBuildSettings.activeBuildTarget) { case BuildTarget.WebGL: mBuildTargetIndex = 3; break; case BuildTarget.Android: mBuildTargetIndex = 2; break; case BuildTarget.iOS: mBuildTargetIndex = 1; break; default: mBuildTargetIndex = 0; break; } EasyIMGUI.Toolbar() .AddMenu("win/osx") .AddMenu("iOS") .AddMenu("Android") .AddMenu("WebGL") .Index(mBuildTargetIndex) .AddTo(verticalLayout); EasyIMGUI.Toggle() .Text(LocaleText.AutoGenerateClass) .IsOn(mEnableGenerateClass) .AddTo(verticalLayout) .ValueProperty.Bind(v => mEnableGenerateClass = v); EasyIMGUI.Toggle() .Text(LocaleText.SimulationMode) .IsOn(AssetBundleSettings.SimulateAssetBundleInEditor) .AddTo(verticalLayout) .ValueProperty.Bind(v => AssetBundleSettings.SimulateAssetBundleInEditor = v); var resVersionLine = new HorizontalLayout() .AddTo(verticalLayout); EasyIMGUI.Label().Text("ResVesion:").AddTo(resVersionLine).Width(100); EasyIMGUI.TextField().Text(mResVersion).AddTo(resVersionLine) .Content.Bind(v => mResVersion = v); EasyIMGUI.Button() .Text(LocaleText.GenerateClass) .OnClick(() => { BuildScript.WriteClass(); AssetDatabase.Refresh(); }).AddTo(verticalLayout); EasyIMGUI.Button() .Text(LocaleText.Build) .OnClick(() => { EditorLifecycle.PushCommand(() => { var window = container.Resolve <EditorWindow>(); if (window) { window.Close(); } BuildWithTarget(EditorUserBuildSettings.activeBuildTarget); }); }).AddTo(verticalLayout); EasyIMGUI.Button() .Text(LocaleText.ForceClear) .OnClick(() => { ForceClear(); }) .AddTo(verticalLayout); verticalLayout.AddChild(EasyIMGUI.Space().Pixel(10)); verticalLayout.AddChild(EasyIMGUI.Label().Text("已标记 AB 列表:").FontBold().FontSize(15)); var scrollView = EasyIMGUI.Scroll().AddTo(verticalLayout); mMarkedPathList = new VerticalLayout("box") .AddTo(scrollView); ReloadMarkedList(); }
public VerticalSplitView() { mBoxWithRect = EasyIMGUI.BoxWithRect(); }
public void Init(IQFrameworkContainer container) { mView = EasyIMGUI.XMLView(); mView.LoadXML(Application.dataPath + "/QFramework/Framework/Plugins/PackageKit/Support.xml"); }
private void OnEnable() { if (mSerializedObject.IsNull()) { mSerializedObject = new SerializedObject(target); } mRootLayout = new VerticalLayout(); if (mCodeGenerateInfo.Namespace.IsNullOrEmpty()) { mCodeGenerateInfo.Namespace = UIKitSettingData.GetProjectNamespace(); } if (mCodeGenerateInfo.ScriptsFolder.IsNullOrEmpty()) { mCodeGenerateInfo.ScriptsFolder = "Assets" + UIKitSettingData.GetScriptsPath(); } if (mCodeGenerateInfo.ScriptName.IsNullOrEmpty()) { mCodeGenerateInfo.ScriptName = mCodeGenerateInfo.gameObject.name; } new HorizontalLayout() .AddChild(EasyIMGUI.Label().Text(LocaleText.Namespace).Width(150)) .AddChild(EasyIMGUI.TextField().Text(mCodeGenerateInfo.Namespace).Do(v => { v.Content.Bind((newValue) => { mCodeGenerateInfo.Namespace = newValue; EditorUtility.SetDirty(mCodeGenerateInfo); }); })) .AddTo(mRootLayout); new HorizontalLayout() .AddChild(EasyIMGUI.Label().Text(LocaleText.ScriptName)).Width(150) .AddChild(EasyIMGUI.TextField().Text(mCodeGenerateInfo.ScriptName).Do(v => { v.Content.Bind((newValue) => { mCodeGenerateInfo.ScriptName = newValue; EditorUtility.SetDirty(mCodeGenerateInfo); }); })) .AddTo(mRootLayout); new HorizontalLayout() .AddChild(EasyIMGUI.Label().Text(LocaleText.ScriptsFolder).Width(150)) .AddChild(EasyIMGUI.TextField().Text(mCodeGenerateInfo.ScriptsFolder).Do(v => { v.Content.Bind((newValue) => { mCodeGenerateInfo.ScriptsFolder = newValue; EditorUtility.SetDirty(mCodeGenerateInfo); }); mScriptFolderView = v; })) .AddTo(mRootLayout); EasyIMGUI.Custom().OnGUI(() => { EditorGUILayout.Space(); EditorGUILayout.LabelField("请将要生成脚本的文件夹拖到下边区域 或 自行填写目录到上一栏中"); var sfxPathRect = EditorGUILayout.GetControlRect(); sfxPathRect.height = 200; GUI.Box(sfxPathRect, string.Empty); EditorGUILayout.LabelField(string.Empty, GUILayout.Height(185)); if ( Event.current.type == EventType.DragUpdated && sfxPathRect.Contains(Event.current.mousePosition) ) { //改变鼠标的外表 DragAndDrop.visualMode = DragAndDropVisualMode.Generic; if (DragAndDrop.paths != null && DragAndDrop.paths.Length > 0) { if (DragAndDrop.paths[0] != "") { var newPath = DragAndDrop.paths[0]; mScriptFolderView.Content.Value = newPath; AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } } } var fileFullPath = mCodeGenerateInfo.ScriptsFolder + "/" + mCodeGenerateInfo.ScriptName + ".cs"; if (File.Exists(mCodeGenerateInfo.ScriptsFolder + "/" + mCodeGenerateInfo.ScriptName + ".cs")) { var scriptObject = AssetDatabase.LoadAssetAtPath <MonoScript>(fileFullPath); if (GUILayout.Button("打开脚本", GUILayout.Height(30))) { AssetDatabase.OpenAsset(scriptObject); } if (GUILayout.Button("选择脚本", GUILayout.Height(30))) { Selection.objects = new Object[] { scriptObject }; } } }).AddTo(mRootLayout); EasyIMGUI.Button() .Text(LocaleText.Generate) .OnClick(() => { if (mCodeGenerateInfo.GetComponent <UIDefaultPanel>()) { CreateILBehaviourCode.DoCreateCodeFromScene(mCodeGenerateInfo.gameObject, true); } else { CreateILBehaviourCode.DoCreateCodeFromScene(mCodeGenerateInfo.gameObject); } }) .Height(30) .AddTo(mRootLayout); }
public void Init(IQFrameworkContainer container) { Container = container; var localPackageVersionModel = this.GetModel <ILocalPackageVersionModel>(); // 左侧 mLeftLayout = EasyIMGUI.Vertical() .AddChild(EasyIMGUI.Area().WithRectGetter(() => mLeftRect) // 间距 20 .AddChild(EasyIMGUI.Vertical() .AddChild(EasyIMGUI.Space().Pixel(20))) // 搜索 .AddChild(EasyIMGUI.Horizontal() .AddChild(EasyIMGUI.Label().Text("搜索:") .FontBold() .FontSize(12) .Width(40) ).AddChild(EasyIMGUI.TextField() .Height(20) .Self(search => { search.Content .Bind(key => { this.SendCommand(new SearchCommand(key)); }) .AddToDisposeList(mDisposableList); }) ) ) // 权限 .AddChild(EasyIMGUI.Toolbar() .Menus(new List <string>() { "All", PackageAccessRight.Public.ToString(), PackageAccessRight.Private.ToString() }) .Self(self => { self.IndexProperty.Bind(value => { PackageManagerState.AccessRightIndex.Value = value; this.SendCommand(new SearchCommand(PackageManagerState.SearchKey.Value)); }).AddToDisposeList(mDisposableList); })) // 分类 .AddChild( EasyIMGUI.Horizontal() .AddChild(PopupView.Create() .ToolbarStyle() .Self(self => { self.IndexProperty.Bind(value => { PackageManagerState.CategoryIndex.Value = value; this.SendCommand(new SearchCommand(PackageManagerState.SearchKey.Value)); }).AddToDisposeList(mDisposableList); mCategoriesSelectorView = self; })) ) // 是否是官方 .AddChild( EasyIMGUI.Horizontal() .AddChild(EasyIMGUI.Toggle().IsOn(mIsOfficial) .Self(t => t.ValueProperty.Bind(v => mIsOfficial = v))) .AddChild(EasyIMGUI.Label().Text("官方")) .AddChild(EasyIMGUI.FlexibleSpace()) ) .AddChild(EasyIMGUI.Scroll() .AddChild(EasyIMGUI.Custom().OnGUI(() => { PackageManagerState.PackageRepositories.Value .Where(p => p.isOfficial == mIsOfficial) .OrderByDescending(p => { var installedVersion = localPackageVersionModel.GetByName(p.name); if (installedVersion == null) { return(-1); } else if (installedVersion.VersionNumber < p.VersionNumber) { return(2); } else if (installedVersion.VersionNumber == p.VersionNumber) { return(1); } else { return(0); } }) .ThenBy(p => p.name) .ForEach(p => { GUILayout.BeginVertical("box"); GUILayout.BeginHorizontal(); { GUILayout.Label(p.name); GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { EasyIMGUI.Box().Text(p.latestVersion) .Self(self => self.BackgroundColor = Color.green) .DrawGUI(); GUILayout.FlexibleSpace(); var installedVersion = localPackageVersionModel.GetByName(p.name); if (installedVersion == null) { if (GUILayout.Button(LocaleText.Import)) { RenderEndCommandExecutor.PushCommand(() => { this.SendCommand(new ImportPackageCommand(p)); }); } } else if (installedVersion.VersionNumber < p.VersionNumber) { if (GUILayout.Button(LocaleText.Update)) { RenderEndCommandExecutor.PushCommand(() => { this.SendCommand(new UpdatePackageCommand(p)); }); } } else if (installedVersion.VersionNumber == p.VersionNumber) { if (GUILayout.Button(LocaleText.Reimport)) { RenderEndCommandExecutor.PushCommand(() => { this.SendCommand(new ReimportPackageCommand(p)); }); } } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); var rect = GUILayoutUtility.GetLastRect(); if (mSelectedPackageRepository == p) { GUI.Box(rect, "", mSelectionRect); } if (rect.Contains(Event.current.mousePosition) && Event.current.type == EventType.MouseUp) { mSelectedPackageRepository = p; Event.current.Use(); } }); })) ) ); // var skin = AssetDatabase.LoadAssetAtPath<GUISkin>( var skin = AssetDatabase.LoadAssetAtPath <GUISkin>( "Assets/QFramework/Framework/Toolkits/Core/Editor/Markdown/Skin/MarkdownSkinQS.guiskin"); mMarkdownViewer = new MarkdownViewer(skin, string.Empty, ""); // 右侧 mRightLayout = EasyIMGUI.Vertical() .AddChild(EasyIMGUI.Area().WithRectGetter(() => mRightRect) // 间距 20 .AddChild(EasyIMGUI.Vertical() .AddChild(EasyIMGUI.Space().Pixel(20)) ) // 详细信息 .AddChild(EasyIMGUI.Vertical() .WithVisibleCondition(() => mSelectedPackageRepository != null) // 名字 .AddChild(EasyIMGUI.Label() .TextGetter(() => mSelectedPackageRepository.name) .FontSize(30) .FontBold()) .AddChild(EasyIMGUI.Space()) // 服务器版本 .AddChild(EasyIMGUI.Label() .TextGetter(() => "服务器版本: " + mSelectedPackageRepository.latestVersion) .FontSize(15)) // 本地版本 .AddChild(EasyIMGUI.Label() .WithVisibleCondition(() => localPackageVersionModel.GetByName(mSelectedPackageRepository.name).IsNotNull()) .TextGetter(() => "本地版本:" + localPackageVersionModel.GetByName(mSelectedPackageRepository.name).Version) .FontSize(15)) // 作者 .AddChild(EasyIMGUI.Label() .TextGetter(() => "作者:" + mSelectedPackageRepository.author) .FontSize(15)) // 权限 .AddChild(EasyIMGUI.Label() .TextGetter(() => "权限:" + mSelectedPackageRepository.accessRight) .FontSize(15)) // 主页 .AddChild( EasyIMGUI.Horizontal() .AddChild(EasyIMGUI.Label() .FontSize(15) .Text("插件主页:")) .AddChild(EasyIMGUI.Button() .TextGetter(() => UrlHelper.PackageUrl(mSelectedPackageRepository)) .FontSize(15) .OnClick(() => { this.SendCommand(new OpenDetailCommand(mSelectedPackageRepository)); }) ) .AddChild(EasyIMGUI.FlexibleSpace()) ) // 描述 .AddChild(EasyIMGUI.Label() .TextGetter(() => "描述:") .FontSize(15) ) .AddChild(EasyIMGUI.Space()) // 描述内容 .AddChild(EasyIMGUI.Custom().OnGUI(() => { mMarkdownViewer.UpdateText(mSelectedPackageRepository.description); var lastRect = GUILayoutUtility.GetLastRect(); mMarkdownViewer.DrawWithRect(new Rect(lastRect.x, lastRect.y + lastRect.height, mRightRect.width - 210, mRightRect.height - lastRect.y - lastRect.height)); // mMarkdownViewer.Draw(); })) ) ); mPackageKitWindow = EditorWindow.GetWindow <PackageKitWindow>(); this.SendCommand <PackageManagerInitCommand>(); PackageManagerState.Categories.Bind(value => { mCategoriesSelectorView.Menus(value); mPackageKitWindow.Repaint(); }).AddToDisposeList(mDisposableList); // 创建双屏 mSplitView = mSplitView = new VerticalSplitView { Split = 240, fistPan = rect => { mLeftRect = rect; mLeftLayout.DrawGUI(); }, secondPan = rect => { mRightRect = rect; mRightLayout.DrawGUI(); } }; }
public void Init(IQFrameworkContainer container) { EasyIMGUI.Label().Text(LocaleText.ResKit).FontSize(12).Parent(this); var verticalLayout = new VerticalLayout("box").Parent(this); var persistLine = EasyIMGUI.Horizontal(); EasyIMGUI.Label().Text("PersistantPath:").Parent(persistLine).Width(100); EasyIMGUI.TextField().Text(Application.persistentDataPath).Parent(persistLine); persistLine.Parent(verticalLayout); EasyIMGUI.Button() .Text(LocaleText.GoToPersistent) .OnClick(() => { EditorUtility.RevealInFinder(Application.persistentDataPath); }) .Parent(verticalLayout); mResVersion = EditorPrefs.GetString(KEY_QAssetBundleBuilder_RESVERSION, "100"); mEnableGenerateClass = EditorPrefs.GetBool(KEY_AUTOGENERATE_CLASS, true); switch (EditorUserBuildSettings.activeBuildTarget) { case BuildTarget.WSAPlayer: mBuildTargetIndex = 4; break; case BuildTarget.WebGL: mBuildTargetIndex = 3; break; case BuildTarget.Android: mBuildTargetIndex = 2; break; case BuildTarget.iOS: mBuildTargetIndex = 1; break; default: mBuildTargetIndex = 0; break; } EasyIMGUI.Toolbar() .AddMenu("Windows/MacOS") .AddMenu("iOS") .AddMenu("Android") .AddMenu("WebGL") .AddMenu("WSAPlayer") .Index(mBuildTargetIndex) .Parent(verticalLayout); EasyIMGUI.Toggle() .Text(LocaleText.AutoGenerateClass) .IsOn(mEnableGenerateClass) .Parent(verticalLayout) .ValueProperty.Bind(v => mEnableGenerateClass = v); EasyIMGUI.Toggle() .Text(LocaleText.SimulationMode) .IsOn(ResKitEditorAPI.SimulationMode) .Parent(verticalLayout) .ValueProperty.Bind(v => ResKitEditorAPI.SimulationMode = v); // EasyIMGUI.Toggle() // .Text(LocaleText.EncryptAB) // .IsOn(GetConfig().EncryptAB) // .Parent(verticalLayout) // .ValueProperty.Bind(v => GetConfig().EncryptAB = v); // var aesLine = EasyIMGUI.Horizontal(); // EasyIMGUI.Label().Text("AES秘钥:").Parent(aesLine).Width(100); // EasyIMGUI.TextField().Text(GetConfig().AESKey).Parent(aesLine).Content.OnValueChanged.AddListener(_=>GetConfig().AESKey=_); // aesLine.Parent(verticalLayout); // EasyIMGUI.Toggle() // .Text(LocaleText.EncryptKey) // .IsOn(GetConfig().EncryptKey) // .Parent(verticalLayout) // .ValueProperty.Bind(v => GetConfig().EncryptKey = v); var resVersionLine = new HorizontalLayout() .Parent(verticalLayout); // EasyIMGUI.Label().Text("ResVesion:").Parent(resVersionLine).Width(100); EasyIMGUI.TextField().Text(mResVersion).Parent(resVersionLine) .Content.Bind(v => mResVersion = v); EasyIMGUI.Button() .Text(LocaleText.GenerateClass) .OnClick(() => { BuildScript.WriteClass(); AssetDatabase.Refresh(); }).Parent(verticalLayout); EasyIMGUI.Button() .Text(LocaleText.Build) .OnClick(() => { EditorLifecycle.PushCommand(() => { var window = container.Resolve <EditorWindow>(); if (window) { window.Close(); } ResKitEditorAPI.BuildAssetBundles(); //if (GetConfig().EncryptAB) //{ // string key = GetConfig().EncryptKey ? RSA.RSAEncrypt("", GetConfig().AESKey): GetConfig().AESKey; // BundleHotFix.EncryptAB(key); //} }); }).Parent(verticalLayout); EasyIMGUI.Button() .Text(LocaleText.ForceClear) .OnClick(ResKitEditorAPI.ForceClearAssetBundles) .Parent(verticalLayout); verticalLayout.AddChild(EasyIMGUI.Space().Pixel(10)); verticalLayout.AddChild(EasyIMGUI.Label().Text(LocaleText.MarkedAB).FontBold().FontSize(15)); var scrollView = EasyIMGUI.Scroll().Parent(verticalLayout); mMarkedPathList = new VerticalLayout("box") .Parent(scrollView); ReloadMarkedList(); }