├── .docfx_project ├── .gitignore ├── api.meta ├── api │ ├── .gitignore │ ├── index.md │ └── index.md.meta ├── docfx.json ├── docfx.json.meta ├── favicon.ico ├── index.md ├── index.md.meta ├── logo.svg ├── toc.yml └── toc.yml.meta ├── .github └── workflows │ └── main.yml ├── .gitignore ├── .gitmodules ├── Documentation~ └── api │ ├── .manifest │ ├── MacacaGames.ViewSystem.BreakPointViewElementTransform.yml │ ├── MacacaGames.ViewSystem.ComponentTreeView._OnItemClick.yml │ ├── MacacaGames.ViewSystem.ComponentTreeView.yml │ ├── MacacaGames.ViewSystem.FullPageChanger.yml │ ├── MacacaGames.ViewSystem.FullPageChangerExtension.yml │ ├── MacacaGames.ViewSystem.IViewController.yml │ ├── MacacaGames.ViewSystem.IViewElementInjectable.yml │ ├── MacacaGames.ViewSystem.IViewElementLifeCycle.yml │ ├── MacacaGames.ViewSystem.LayoutDropdownWindow.LayoutMode.yml │ ├── MacacaGames.ViewSystem.LayoutDropdownWindow.yml │ ├── MacacaGames.ViewSystem.MicroCoroutine.Coroutine.yml │ ├── MacacaGames.ViewSystem.MicroCoroutine.yml │ ├── MacacaGames.ViewSystem.NestedViewElement.yml │ ├── MacacaGames.ViewSystem.NestedViewElementEditor.yml │ ├── MacacaGames.ViewSystem.OverlayPageChanger.yml │ ├── MacacaGames.ViewSystem.OverlayPageChangerExtension.yml │ ├── MacacaGames.ViewSystem.OverridePropertyDrawer.OverridePopup.yml │ ├── MacacaGames.ViewSystem.OverridePropertyDrawer.yml │ ├── MacacaGames.ViewSystem.PageChanger.yml │ ├── MacacaGames.ViewSystem.PageChangerExtension.yml │ ├── MacacaGames.ViewSystem.PropertyOverride.S_Type.yml │ ├── MacacaGames.ViewSystem.PropertyOverride.yml │ ├── MacacaGames.ViewSystem.QueueExtension.yml │ ├── MacacaGames.ViewSystem.ReadOnlyAttribute.yml │ ├── MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.yml │ ├── MacacaGames.ViewSystem.SafePadding.PerEdgeValues.yml │ ├── MacacaGames.ViewSystem.SafePadding.yml │ ├── MacacaGames.ViewSystem.VS_EditorUtility.ViewPageItemDetailPopup.yml │ ├── MacacaGames.ViewSystem.VS_EditorUtility.ViewPageItemsBreakPointPopup.yml │ ├── MacacaGames.ViewSystem.VS_EditorUtility.yml │ ├── MacacaGames.ViewSystem.VectorConvert.yml │ ├── MacacaGames.ViewSystem.View.yml │ ├── MacacaGames.ViewSystem.ViewController.yml │ ├── MacacaGames.ViewSystem.ViewControllerBase.ViewPageEventArgs.yml │ ├── MacacaGames.ViewSystem.ViewControllerBase.ViewPageTrisitionEventArgs.yml │ ├── MacacaGames.ViewSystem.ViewControllerBase.ViewStateEventArgs.yml │ ├── MacacaGames.ViewSystem.ViewControllerBase.yml │ ├── MacacaGames.ViewSystem.ViewControllerEditor.yml │ ├── MacacaGames.ViewSystem.ViewElemenOverride.yml │ ├── MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.yml │ ├── MacacaGames.ViewSystem.ViewElement.RectTransformFlag.yml │ ├── MacacaGames.ViewSystem.ViewElement.TransitionType.yml │ ├── MacacaGames.ViewSystem.ViewElement.yml │ ├── MacacaGames.ViewSystem.ViewElementEditor.yml │ ├── MacacaGames.ViewSystem.ViewElementEventData.yml │ ├── MacacaGames.ViewSystem.ViewElementGroup.yml │ ├── MacacaGames.ViewSystem.ViewElementLifeCycle.BoolEvent.yml │ ├── MacacaGames.ViewSystem.ViewElementLifeCycle.yml │ ├── MacacaGames.ViewSystem.ViewElementNavigationData.yml │ ├── MacacaGames.ViewSystem.ViewElementNavigationDataViewState.yml │ ├── MacacaGames.ViewSystem.ViewElementNavigationTarget.yml │ ├── MacacaGames.ViewSystem.ViewElementOverrideAsset.yml │ ├── MacacaGames.ViewSystem.ViewElementOverrideHelper.yml │ ├── MacacaGames.ViewSystem.ViewElementPropertyOverrideData.yml │ ├── MacacaGames.ViewSystem.ViewElementRequestedPool.yml │ ├── MacacaGames.ViewSystem.ViewElementRuntimePool.yml │ ├── MacacaGames.ViewSystem.ViewElementRuntimePoolEditor.yml │ ├── MacacaGames.ViewSystem.ViewElementTransform.yml │ ├── MacacaGames.ViewSystem.ViewEventGroup.yml │ ├── MacacaGames.ViewSystem.ViewMarginFixer.Margin.yml │ ├── MacacaGames.ViewSystem.ViewMarginFixer.yml │ ├── MacacaGames.ViewSystem.ViewMarginFixerEditor.yml │ ├── MacacaGames.ViewSystem.ViewPage.ViewPageTransitionTimingType.yml │ ├── MacacaGames.ViewSystem.ViewPage.ViewPageType.yml │ ├── MacacaGames.ViewSystem.ViewPage.yml │ ├── MacacaGames.ViewSystem.ViewPageItem.PlatformOption.yml │ ├── MacacaGames.ViewSystem.ViewPageItem.yml │ ├── MacacaGames.ViewSystem.ViewRuntimeOverride.yml │ ├── MacacaGames.ViewSystem.ViewState.yml │ ├── MacacaGames.ViewSystem.ViewSystemComponentData.yml │ ├── MacacaGames.ViewSystem.ViewSystemEventAttribute.yml │ ├── MacacaGames.ViewSystem.ViewSystemLayoutRebuilder.yml │ ├── MacacaGames.ViewSystem.ViewSystemNodeConsole.ConsoleMsg.yml │ ├── MacacaGames.ViewSystem.ViewSystemNodeConsole.MessageType.yml │ ├── MacacaGames.ViewSystem.ViewSystemNodeConsole.yml │ ├── MacacaGames.ViewSystem.ViewSystemRectTransformData.yml │ ├── MacacaGames.ViewSystem.ViewSystemSaveData.ViewPageSaveData.yml │ ├── MacacaGames.ViewSystem.ViewSystemSaveData.ViewStateSaveData.yml │ ├── MacacaGames.ViewSystem.ViewSystemSaveData.ViewSystemBaseSetting.yml │ ├── MacacaGames.ViewSystem.ViewSystemSaveData.yml │ ├── MacacaGames.ViewSystem.ViewSystemScriptBaker.yml │ ├── MacacaGames.ViewSystem.ViewSystemUtilitys.OverlayPageStatus.Transition.yml │ ├── MacacaGames.ViewSystem.ViewSystemUtilitys.OverlayPageStatus.yml │ ├── MacacaGames.ViewSystem.ViewSystemUtilitys.PageRootWrapper.yml │ ├── MacacaGames.ViewSystem.ViewSystemUtilitys.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ComponentFixerWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.EditorPopupSetting.yml │ ├── MacacaGames.ViewSystem.VisualEditor.EventFixerWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.FixerWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.GameObjectFixerWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.OverridePopupWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.PropertyFixerWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewBreakpointWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewElementOverridesImporterWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewPageNavigationWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewPageNode.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewPageOrderWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewStateNode.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemDataReaderV2.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemGlobalSettingWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemNode.NodeType.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemNode.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemNodeInspector.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemNodeWindow.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemRectTransformEditor.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemVerifier.VerifyTarget.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemVerifier.ViewSystemGameObjectMissingData.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemVerifier.yml │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemVisualEditor.yml │ ├── MacacaGames.ViewSystem.VisualEditor.yml │ ├── MacacaGames.ViewSystem.yml │ └── toc.yml ├── Editor.meta ├── Editor ├── Attribute.meta ├── ComponentEditor.meta ├── ComponentEditor │ ├── NestedViewElementEditor.cs │ ├── NestedViewElementEditor.cs.meta │ ├── ViewControllerEditor.cs │ ├── ViewControllerEditor.cs.meta │ ├── ViewElementEditor.cs │ ├── ViewElementEditor.cs.meta │ ├── ViewElementRuntimePoolEditor.cs │ ├── ViewElementRuntimePoolEditor.cs.meta │ ├── ViewMarginFixerEditor.cs │ ├── ViewMarginFixerEditor.cs.meta │ ├── ViewSystemRectTransformEditor.cs │ └── ViewSystemRectTransformEditor.cs.meta ├── DataReader.meta ├── DataReader │ ├── IViewSystemDateReader.cs │ ├── IViewSystemDateReader.cs.meta │ ├── ViewSystemDataReaderV2.cs │ └── ViewSystemDataReaderV2.cs.meta ├── Macaca.ViewSystem.Editor.asmdef ├── Macaca.ViewSystem.Editor.asmdef.meta ├── PropertyDrawer.meta ├── PropertyDrawer │ ├── OverridePropertyDrawer.cs │ ├── OverridePropertyDrawer.cs.meta │ ├── ViewElementAnimationGroupDrawer.cs │ ├── ViewElementAnimationGroupDrawer.cs.meta │ ├── ViewSystemDropdownDrawer.cs │ └── ViewSystemDropdownDrawer.cs.meta ├── Utinity.meta ├── Utinity │ ├── EditorUtility.cs │ ├── EditorUtility.cs.meta │ ├── ViewSystemEditHelper.cs │ ├── ViewSystemEditHelper.cs.meta │ ├── ViewSystemScriptBaker.cs │ └── ViewSystemScriptBaker.cs.meta ├── VisualEditor.meta └── VisualEditor │ ├── Drawer.cs │ ├── Drawer.cs.meta │ ├── Overrides.meta │ ├── Overrides │ ├── ComponentTreeView.cs │ ├── ComponentTreeView.cs.meta │ ├── EditorExtensionMethods.cs │ ├── EditorExtensionMethods.cs.meta │ ├── HierarchyTreeView.cs │ ├── HierarchyTreeView.cs.meta │ ├── ViewElementOverridesImporterWindow.cs │ ├── ViewElementOverridesImporterWindow.cs.meta │ ├── ViewSystemVerifier.cs │ └── ViewSystemVerifier.cs.meta │ ├── Resources.meta │ ├── Resources │ ├── ViewSystemNodeEditorUIElementUss.uss │ ├── ViewSystemNodeEditorUIElementUss.uss.meta │ ├── ViewSystemNodeEditorUIElementUxml.uxml │ └── ViewSystemNodeEditorUIElementUxml.uxml.meta │ ├── ViewSystemEditorHelper.cs │ ├── ViewSystemEditorHelper.cs.meta │ ├── ViewSystemNodeConsole.cs │ ├── ViewSystemNodeConsole.cs.meta │ ├── ViewSystemNodeInspector.cs │ ├── ViewSystemNodeInspector.cs.meta │ ├── ViewSystemNodeModel.cs │ ├── ViewSystemNodeModel.cs.meta │ ├── ViewSystemVisualEditor.cs │ ├── ViewSystemVisualEditor.cs.meta │ ├── Window.meta │ └── Window │ ├── OverridePopupWindow.cs │ ├── OverridePopupWindow.cs.meta │ ├── ViewBreakpointWindow.cs │ ├── ViewBreakpointWindow.cs.meta │ ├── ViewPageNavigationWindow.cs │ ├── ViewPageNavigationWindow.cs.meta │ ├── ViewPageOrderWindow.cs │ ├── ViewPageOrderWindow.cs.meta │ ├── ViewSystemGlobalSettingWindow.cs │ ├── ViewSystemGlobalSettingWindow.cs.meta │ ├── ViewSystemNodeWindow.cs │ └── ViewSystemNodeWindow.cs.meta ├── Icons.meta ├── Icons ├── safepadding.png ├── safepadding.png.meta ├── viewelement.png ├── viewelement.png.meta ├── viewelementgroup.png └── viewelementgroup.png.meta ├── Img~ ├── AG.gif ├── MergeAndShoot.gif ├── ProjectCube.gif ├── add_viewelement.gif ├── changepage_lifecycle.jpg ├── changepage_lifecycle.jpg.meta ├── characterUpgrade.gif ├── event_demo.gif ├── how_to_1.png ├── how_to_1.png.meta ├── how_to_2.png ├── override_demo.gif ├── overridewindow_model.png ├── page_ordering.png ├── rythemGo.gif ├── safearea_global.png ├── safearea_page.png ├── skyBandit.gif ├── skySurfing.gif ├── transform_anchor.png ├── transform_anchor.png.meta ├── viewelement.png ├── viewelement.png.meta ├── viewelement_animation.png ├── viewelementgroup.png ├── viewelementgroup.png.meta ├── viewelementgroup_manual.png ├── viewelementgroup_manual.png.meta ├── viewelementlifecycle.png ├── viewelementlifecycle.png.meta ├── viewelementoverride.png ├── viewmarginfixer.png └── viewmarginfixer.png.meta ├── LICENSE ├── LICENSE.meta ├── README.md ├── README.md.meta ├── Runtime.meta ├── Runtime ├── Attribute.meta ├── Attribute │ ├── AutoOverrideAttribute.cs │ ├── AutoOverrideAttribute.cs.meta │ ├── ViewSystemAttribute.cs │ ├── ViewSystemAttribute.cs.meta │ ├── ViewSystemDropdownAttribute.cs │ └── ViewSystemDropdownAttribute.cs.meta ├── Components.meta ├── Components │ ├── NestedViewElement.cs │ ├── NestedViewElement.cs.meta │ ├── SafePadding.cs │ ├── SafePadding.cs.meta │ ├── ViewElement.cs │ ├── ViewElement.cs.meta │ ├── ViewElementAnimation.cs │ ├── ViewElementAnimation.cs.meta │ ├── ViewElementBehaviour.cs │ ├── ViewElementBehaviour.cs.meta │ ├── ViewElementGroup.cs │ ├── ViewElementGroup.cs.meta │ ├── ViewElementLifeCycle.cs │ ├── ViewElementLifeCycle.cs.meta │ ├── ViewElementOverrideHelper.cs │ ├── ViewElementOverrideHelper.cs.meta │ ├── ViewElementPool.cs │ ├── ViewElementPool.cs.meta │ ├── ViewElementRuntimePool.cs │ ├── ViewElementRuntimePool.cs.meta │ ├── ViewMarginFixer.cs │ ├── ViewMarginFixer.cs.meta │ ├── ViewRuntimeOverride.cs │ ├── ViewRuntimeOverride.cs.meta │ ├── ViewSystemLayoutRebuilder.cs │ └── ViewSystemLayoutRebuilder.cs.meta ├── HandyScripts.meta ├── HandyScripts │ ├── Button.meta │ └── Button │ │ ├── SimpleChangePageButton.cs │ │ ├── SimpleChangePageButton.cs.meta │ │ ├── SimpleLeaveOverlayPageButton.cs │ │ ├── SimpleLeaveOverlayPageButton.cs.meta │ │ ├── SimpleShowOverlayPageButton.cs │ │ └── SimpleShowOverlayPageButton.cs.meta ├── Interface.meta ├── Interface │ ├── IViewElementLifeCycle.cs │ ├── IViewElementLifeCycle.cs.meta │ ├── IViewElementOverrideListener.cs │ ├── IViewElementOverrideListener.cs.meta │ ├── IViewElementSingleton.cs │ └── IViewElementSingleton.cs.meta ├── Macaca.ViewSystem.asmdef ├── Macaca.ViewSystem.asmdef.meta ├── MicroCoroutine.cs ├── MicroCoroutine.cs.meta ├── Models.meta ├── Models │ ├── SaveData.meta │ ├── SaveData │ │ ├── ViewPageNodeSaveData.cs │ │ ├── ViewPageNodeSaveData.cs.meta │ │ ├── ViewStateNodeSaveData.cs │ │ ├── ViewStateNodeSaveData.cs.meta │ │ ├── ViewSystemSaveData.cs │ │ └── ViewSystemSaveData.cs.meta │ ├── ViewElementAnimationGroupAsset.cs │ ├── ViewElementAnimationGroupAsset.cs.meta │ ├── ViewElementAnimationModel.cs │ ├── ViewElementAnimationModel.cs.meta │ ├── ViewElementOverrideAsset.cs │ ├── ViewElementOverrideAsset.cs.meta │ ├── ViewPageModel.cs │ └── ViewPageModel.cs.meta ├── Utilities.meta ├── Utilities │ ├── PageChanger.cs │ ├── PageChanger.cs.meta │ ├── ViewElementRequestedPool.cs │ ├── ViewElementRequestedPool.cs.meta │ ├── ViewInjectDictionary.cs │ ├── ViewInjectDictionary.cs.meta │ ├── ViewStateBehaviour.cs │ ├── ViewStateBehaviour.cs.meta │ ├── ViewSystemLog.cs │ ├── ViewSystemLog.cs.meta │ ├── ViewSystemUtilitys.cs │ └── ViewSystemUtilitys.cs.meta ├── ViewController.meta └── ViewController │ ├── ViewController.cs │ ├── ViewController.cs.meta │ ├── ViewControllerBase.cs │ ├── ViewControllerBase.cs.meta │ ├── ViewControllerObsolete.cs │ └── ViewControllerObsolete.cs.meta ├── docs~ ├── Img~ │ ├── changepage_lifecycle.jpg │ ├── changepage_lifecycle.jpg.meta │ ├── how_to_1.png │ ├── how_to_1.png.meta │ ├── how_to_2.png │ ├── transform_anchor.png │ ├── transform_anchor.png.meta │ ├── viewelement.png │ ├── viewelement.png.meta │ ├── viewelementgroup.png │ ├── viewelementgroup.png.meta │ ├── viewelementgroup_manual.png │ ├── viewelementgroup_manual.png.meta │ ├── viewelementlifecycle.png │ ├── viewelementlifecycle.png.meta │ ├── viewmarginfixer.png │ └── viewmarginfixer.png.meta ├── api │ ├── MacacaGames.ReadOnlyAttribute.html │ ├── MacacaGames.ViewSystem.BreakPointViewElementTransform.html │ ├── MacacaGames.ViewSystem.ComponentTreeView._OnItemClick.html │ ├── MacacaGames.ViewSystem.ComponentTreeView.html │ ├── MacacaGames.ViewSystem.FullPageChanger.html │ ├── MacacaGames.ViewSystem.FullPageChangerExtension.html │ ├── MacacaGames.ViewSystem.IViewController.html │ ├── MacacaGames.ViewSystem.IViewElementInjectable.html │ ├── MacacaGames.ViewSystem.IViewElementLifeCycle.html │ ├── MacacaGames.ViewSystem.LayoutDropdownWindow.LayoutMode.html │ ├── MacacaGames.ViewSystem.LayoutDropdownWindow.html │ ├── MacacaGames.ViewSystem.MicroCoroutine.Coroutine.html │ ├── MacacaGames.ViewSystem.MicroCoroutine.html │ ├── MacacaGames.ViewSystem.NestedViewElement.html │ ├── MacacaGames.ViewSystem.NestedViewElementEditor.html │ ├── MacacaGames.ViewSystem.OverlayPageChanger.html │ ├── MacacaGames.ViewSystem.OverlayPageChangerExtension.html │ ├── MacacaGames.ViewSystem.OverridePropertyDrawer.OverridePopup.html │ ├── MacacaGames.ViewSystem.OverridePropertyDrawer.html │ ├── MacacaGames.ViewSystem.PageChanger.html │ ├── MacacaGames.ViewSystem.PageChangerExtension.html │ ├── MacacaGames.ViewSystem.PropertyOverride.S_Type.html │ ├── MacacaGames.ViewSystem.PropertyOverride.html │ ├── MacacaGames.ViewSystem.QueueExtension.html │ ├── MacacaGames.ViewSystem.ReadOnlyAttribute.html │ ├── MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.html │ ├── MacacaGames.ViewSystem.SafePadding.PerEdgeValues.html │ ├── MacacaGames.ViewSystem.SafePadding.html │ ├── MacacaGames.ViewSystem.VS_EditorUtility.ViewPageItemDetailPopup.html │ ├── MacacaGames.ViewSystem.VS_EditorUtility.ViewPageItemsBreakPointPopup.html │ ├── MacacaGames.ViewSystem.VS_EditorUtility.html │ ├── MacacaGames.ViewSystem.VectorConvert.html │ ├── MacacaGames.ViewSystem.View.html │ ├── MacacaGames.ViewSystem.ViewController.html │ ├── MacacaGames.ViewSystem.ViewControllerBase.ViewPageEventArgs.html │ ├── MacacaGames.ViewSystem.ViewControllerBase.ViewPageTrisitionEventArgs.html │ ├── MacacaGames.ViewSystem.ViewControllerBase.ViewStateEventArgs.html │ ├── MacacaGames.ViewSystem.ViewControllerBase.html │ ├── MacacaGames.ViewSystem.ViewControllerEditor.html │ ├── MacacaGames.ViewSystem.ViewElemenOverride.html │ ├── MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.html │ ├── MacacaGames.ViewSystem.ViewElement.RectTransformFlag.html │ ├── MacacaGames.ViewSystem.ViewElement.TransitionType.html │ ├── MacacaGames.ViewSystem.ViewElement.html │ ├── MacacaGames.ViewSystem.ViewElementEditor.html │ ├── MacacaGames.ViewSystem.ViewElementEventData.html │ ├── MacacaGames.ViewSystem.ViewElementGroup.html │ ├── MacacaGames.ViewSystem.ViewElementLifeCycle.BoolEvent.html │ ├── MacacaGames.ViewSystem.ViewElementLifeCycle.html │ ├── MacacaGames.ViewSystem.ViewElementNavigationData.html │ ├── MacacaGames.ViewSystem.ViewElementNavigationDataViewState.html │ ├── MacacaGames.ViewSystem.ViewElementNavigationTarget.html │ ├── MacacaGames.ViewSystem.ViewElementOverrideAsset.html │ ├── MacacaGames.ViewSystem.ViewElementOverrideHelper.html │ ├── MacacaGames.ViewSystem.ViewElementPropertyOverrideData.html │ ├── MacacaGames.ViewSystem.ViewElementRequestedPool.html │ ├── MacacaGames.ViewSystem.ViewElementRuntimePool.html │ ├── MacacaGames.ViewSystem.ViewElementRuntimePoolEditor.html │ ├── MacacaGames.ViewSystem.ViewElementTransform.html │ ├── MacacaGames.ViewSystem.ViewEventGroup.html │ ├── MacacaGames.ViewSystem.ViewMarginFixer.Margin.html │ ├── MacacaGames.ViewSystem.ViewMarginFixer.html │ ├── MacacaGames.ViewSystem.ViewMarginFixerEditor.html │ ├── MacacaGames.ViewSystem.ViewPage.ViewPageTransitionTimingType.html │ ├── MacacaGames.ViewSystem.ViewPage.ViewPageType.html │ ├── MacacaGames.ViewSystem.ViewPage.html │ ├── MacacaGames.ViewSystem.ViewPageItem.PlatformOption.html │ ├── MacacaGames.ViewSystem.ViewPageItem.html │ ├── MacacaGames.ViewSystem.ViewRuntimeOverride.html │ ├── MacacaGames.ViewSystem.ViewState.html │ ├── MacacaGames.ViewSystem.ViewSystemComponentData.html │ ├── MacacaGames.ViewSystem.ViewSystemEventAttribute.html │ ├── MacacaGames.ViewSystem.ViewSystemLayoutRebuilder.html │ ├── MacacaGames.ViewSystem.ViewSystemNodeConsole.ConsoleMsg.html │ ├── MacacaGames.ViewSystem.ViewSystemNodeConsole.MessageType.html │ ├── MacacaGames.ViewSystem.ViewSystemNodeConsole.html │ ├── MacacaGames.ViewSystem.ViewSystemRectTransformData.html │ ├── MacacaGames.ViewSystem.ViewSystemSaveData.ViewPageSaveData.html │ ├── MacacaGames.ViewSystem.ViewSystemSaveData.ViewStateSaveData.html │ ├── MacacaGames.ViewSystem.ViewSystemSaveData.ViewSystemBaseSetting.html │ ├── MacacaGames.ViewSystem.ViewSystemSaveData.html │ ├── MacacaGames.ViewSystem.ViewSystemScriptBaker.html │ ├── MacacaGames.ViewSystem.ViewSystemUtilitys.OverlayPageStatus.Transition.html │ ├── MacacaGames.ViewSystem.ViewSystemUtilitys.OverlayPageStatus.html │ ├── MacacaGames.ViewSystem.ViewSystemUtilitys.PageRootWrapper.html │ ├── MacacaGames.ViewSystem.ViewSystemUtilitys.html │ ├── MacacaGames.ViewSystem.VisualEditor.ComponentFixerWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.EditorPopupSetting.html │ ├── MacacaGames.ViewSystem.VisualEditor.EventFixerWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.FixerWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.GameObjectFixerWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.OverridePopupWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.PropertyFixerWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewBreakpointWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewElementOverridesImporterWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewPageNavigationWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewPageNode.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewPageOrderWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewStateNode.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemDataReaderV2.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemGlobalSettingWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemNode.NodeType.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemNode.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemNodeInspector.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemNodeWindow.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemRectTransformEditor.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemVerifier.VerifyTarget.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemVerifier.ViewSystemGameObjectMissingData.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemVerifier.html │ ├── MacacaGames.ViewSystem.VisualEditor.ViewSystemVisualEditor.html │ ├── MacacaGames.ViewSystem.VisualEditor.html │ ├── MacacaGames.ViewSystem.html │ ├── MacacaGames.html │ ├── index.html │ └── toc.html ├── favicon.ico ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── index.html ├── logo.svg ├── manifest.json ├── search-stopwords.json ├── styles │ ├── docfx.css │ ├── docfx.js │ ├── docfx.vendor.css │ ├── docfx.vendor.js │ ├── lunr.js │ ├── lunr.min.js │ ├── main.css │ ├── main.js │ └── search-worker.js ├── toc.html └── xrefmap.yml ├── package.json ├── package.json.meta ├── udg_setting.json └── udg_setting.json.meta /.docfx_project/.gitignore: -------------------------------------------------------------------------------- 1 | ############### 2 | # folder # 3 | ############### 4 | /**/DROP/ 5 | /**/TEMP/ 6 | /**/packages/ 7 | /**/bin/ 8 | /**/obj/ 9 | _site 10 | -------------------------------------------------------------------------------- /.docfx_project/api.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b65d18e786d14cfe81716b8946799fc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /.docfx_project/api/.gitignore: -------------------------------------------------------------------------------- 1 | ############### 2 | # temp file # 3 | ############### 4 | *.yml 5 | .manifest 6 | -------------------------------------------------------------------------------- /.docfx_project/api/index.md: -------------------------------------------------------------------------------- 1 | # Welcome to the Scripting Reference! 2 | Select the API to view the detail. -------------------------------------------------------------------------------- /.docfx_project/api/index.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 286310b0763504cf7acd6505a9f9cf0d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /.docfx_project/docfx.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "metadata" : [ 4 | { 5 | "src" : [ 6 | { 7 | "files" : [ 8 | "Macaca.ViewSystem.Editor.csproj", 9 | "Macaca.ViewSystem.csproj" 10 | ], 11 | "src" : "../../../" 12 | } 13 | ], 14 | "dest" : "../Documentation~/api", 15 | "disableGitFeatures" : false, 16 | "disableDefaultFilter" : false, 17 | "filter" : "" 18 | } 19 | ], 20 | "build" : { 21 | "content" : [ 22 | { 23 | "src" : "", 24 | "files" : [ 25 | "index.md", 26 | "**.yml", 27 | "api/**.yml", 28 | "api/index.md" 29 | ] 30 | }, 31 | { 32 | "src" : "../Documentation~", 33 | "files" : [ 34 | "*.md", 35 | "*.yml", 36 | "**/*.md", 37 | "**/*.yml" 38 | ] 39 | } 40 | ], 41 | "resource" : [ 42 | { 43 | "src" : "", 44 | "files" : [ 45 | "images/**", 46 | "favicon.ico", 47 | "logo.svg" 48 | ] 49 | } 50 | ], 51 | "overwrite" : [ 52 | { 53 | "files" : [ 54 | "apidoc/**.md" 55 | ], 56 | "exclude" : [ 57 | "obj/**", 58 | "_site/**" 59 | ] 60 | } 61 | ], 62 | "dest" : "../docs~", 63 | "globalMetadataFiles" : [ 64 | ], 65 | "fileMetadataFiles" : [ 66 | ], 67 | "template" : [ 68 | "default" 69 | ], 70 | "postProcessors" : [ 71 | ], 72 | "markdownEngineName" : "markdig", 73 | "noLangKeyword" : false, 74 | "keepFileLink" : false, 75 | "cleanupCacheHistory" : false, 76 | "disableGitFeatures" : false 77 | } 78 | } -------------------------------------------------------------------------------- /.docfx_project/docfx.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab8d60c5b999b49b29428b1c2697b6fa 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /.docfx_project/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/.docfx_project/favicon.ico -------------------------------------------------------------------------------- /.docfx_project/index.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6466d063b97894ffaa29b6fad3f2b5a8 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /.docfx_project/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.docfx_project/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Scripting API 2 | href: api/ 3 | homepage: api/index.md 4 | -------------------------------------------------------------------------------- /.docfx_project/toc.yml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14c9a60dc33164e56a40e4a2613a4064 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: github pages 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - master 8 | paths: 9 | - 'docs~/**' 10 | 11 | jobs: 12 | deploy: 13 | runs-on: ubuntu-18.04 14 | steps: 15 | - uses: actions/checkout@v2 16 | with: 17 | submodules: true # Fetch Hugo themes (true OR recursive) 18 | fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod 19 | - name: Deploy 20 | uses: peaceiris/actions-gh-pages@v3 21 | with: 22 | github_token: ${{ secrets.GITHUB_TOKEN }} 23 | publish_dir: ./docs~ 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.sln.docstates 8 | 9 | # Build results 10 | 11 | [Dd]ebug/ 12 | [Rr]elease/ 13 | x64/ 14 | [Bb]in/ 15 | [Oo]bj/ 16 | 17 | # MSTest test Results 18 | [Tt]est[Rr]esult*/ 19 | [Bb]uild[Ll]og.* 20 | 21 | *_i.c 22 | *_p.c 23 | *_i.h 24 | *.ilk 25 | *.obj 26 | *.pch 27 | *.pdb 28 | *.pgc 29 | *.pgd 30 | *.rsp 31 | *.sbr 32 | *.tlb 33 | *.tli 34 | *.tlh 35 | *.tmp 36 | *.tmp_proj 37 | *.log 38 | *.vspscc 39 | *.vssscc 40 | .builds 41 | *.pidb 42 | *.log 43 | *.svclog 44 | *.scc 45 | 46 | # Visual C++ cache files 47 | ipch/ 48 | *.aps 49 | *.ncb 50 | *.opensdf 51 | *.sdf 52 | *.cachefile 53 | 54 | # Visual Studio profiler 55 | *.psess 56 | *.vsp 57 | *.vspx 58 | 59 | # Guidance Automation Toolkit 60 | *.gpState 61 | 62 | # ReSharper is a .NET coding add-in 63 | _ReSharper*/ 64 | *.[Rr]e[Ss]harper 65 | *.DotSettings.user 66 | 67 | # Click-Once directory 68 | publish/ 69 | 70 | # Publish Web Output 71 | *.Publish.xml 72 | *.pubxml 73 | *.azurePubxml 74 | 75 | # NuGet Packages Directory 76 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 77 | packages/ 78 | ## TODO: If the tool you use requires repositories.config, also uncomment the next line 79 | !packages/repositories.config 80 | 81 | # Windows Azure Build Output 82 | csx/ 83 | *.build.csdef 84 | 85 | # Windows Store app package directory 86 | AppPackages/ 87 | 88 | # Others 89 | sql/ 90 | *.Cache 91 | ClientBin/ 92 | [Ss]tyle[Cc]op.* 93 | ![Ss]tyle[Cc]op.targets 94 | 95 | *.dbmdl 96 | *.[Pp]ublish.xml 97 | 98 | *.publishsettings 99 | 100 | # RIA/Silverlight projects 101 | Generated_Code/ 102 | 103 | # Backup & report files from converting an old project file to a newer 104 | # Visual Studio version. Backup files are not needed, because we have git ;-) 105 | _UpgradeReport_Files/ 106 | Backup*/ 107 | UpgradeLog*.XML 108 | UpgradeLog*.htm 109 | 110 | # SQL Server files 111 | App_Data/*.mdf 112 | App_Data/*.ldf 113 | 114 | # ========================= 115 | # Windows detritus 116 | # ========================= 117 | 118 | # Windows image file caches 119 | Thumbs.db 120 | ehthumbs.db 121 | 122 | # Folder config file 123 | Desktop.ini 124 | 125 | # Recycle Bin used on file shares 126 | $RECYCLE.BIN/ 127 | 128 | # Mac desktop service store files 129 | .DS_Store 130 | 131 | # Editors 132 | .idea 133 | 134 | 135 | _NCrunch* 136 | 137 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/.gitmodules -------------------------------------------------------------------------------- /Documentation~/api/MacacaGames.ViewSystem.ComponentTreeView._OnItemClick.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: MacacaGames.ViewSystem.ComponentTreeView._OnItemClick 4 | commentId: T:MacacaGames.ViewSystem.ComponentTreeView._OnItemClick 5 | id: ComponentTreeView._OnItemClick 6 | parent: MacacaGames.ViewSystem 7 | children: [] 8 | langs: 9 | - csharp 10 | - vb 11 | name: ComponentTreeView._OnItemClick 12 | nameWithType: ComponentTreeView._OnItemClick 13 | fullName: MacacaGames.ViewSystem.ComponentTreeView._OnItemClick 14 | type: Delegate 15 | source: 16 | remote: 17 | path: Editor/VisualEditor/Overrides/ComponentTreeView.cs 18 | branch: master 19 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 20 | id: _OnItemClick 21 | path: ../Editor/VisualEditor/Overrides/ComponentTreeView.cs 22 | startLine: 320 23 | assemblies: 24 | - Macaca.ViewSystem.Editor 25 | namespace: MacacaGames.ViewSystem 26 | syntax: 27 | content: public delegate void _OnItemClick(SerializedProperty targetProperty); 28 | parameters: 29 | - id: targetProperty 30 | type: UnityEditor.SerializedProperty 31 | content.vb: Public Delegate Sub _OnItemClick(targetProperty As SerializedProperty) 32 | modifiers.csharp: 33 | - public 34 | - delegate 35 | modifiers.vb: 36 | - Public 37 | - Delegate 38 | references: 39 | - uid: MacacaGames.ViewSystem 40 | commentId: N:MacacaGames.ViewSystem 41 | name: MacacaGames.ViewSystem 42 | nameWithType: MacacaGames.ViewSystem 43 | fullName: MacacaGames.ViewSystem 44 | - uid: UnityEditor.SerializedProperty 45 | commentId: T:UnityEditor.SerializedProperty 46 | parent: UnityEditor 47 | isExternal: true 48 | name: SerializedProperty 49 | nameWithType: SerializedProperty 50 | fullName: UnityEditor.SerializedProperty 51 | - uid: UnityEditor 52 | commentId: N:UnityEditor 53 | isExternal: true 54 | name: UnityEditor 55 | nameWithType: UnityEditor 56 | fullName: UnityEditor 57 | -------------------------------------------------------------------------------- /Documentation~/api/MacacaGames.ViewSystem.IViewElementInjectable.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: MacacaGames.ViewSystem.IViewElementInjectable 4 | commentId: T:MacacaGames.ViewSystem.IViewElementInjectable 5 | id: IViewElementInjectable 6 | parent: MacacaGames.ViewSystem 7 | children: [] 8 | langs: 9 | - csharp 10 | - vb 11 | name: IViewElementInjectable 12 | nameWithType: IViewElementInjectable 13 | fullName: MacacaGames.ViewSystem.IViewElementInjectable 14 | type: Interface 15 | source: 16 | remote: 17 | path: Runtime/Interface/IViewElementInjectalbe.cs 18 | branch: master 19 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 20 | id: IViewElementInjectable 21 | path: ../Runtime/Interface/IViewElementInjectalbe.cs 22 | startLine: 5 23 | assemblies: 24 | - Macaca.ViewSystem 25 | namespace: MacacaGames.ViewSystem 26 | syntax: 27 | content: public interface IViewElementInjectable 28 | content.vb: Public Interface IViewElementInjectable 29 | modifiers.csharp: 30 | - public 31 | - interface 32 | modifiers.vb: 33 | - Public 34 | - Interface 35 | references: 36 | - uid: MacacaGames.ViewSystem 37 | commentId: N:MacacaGames.ViewSystem 38 | name: MacacaGames.ViewSystem 39 | nameWithType: MacacaGames.ViewSystem 40 | fullName: MacacaGames.ViewSystem 41 | -------------------------------------------------------------------------------- /Documentation~/api/MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 4 | commentId: T:MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 5 | id: SafePadding.EdgeEvaluationMode 6 | parent: MacacaGames.ViewSystem 7 | children: 8 | - MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.Off 9 | - MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.On 10 | langs: 11 | - csharp 12 | - vb 13 | name: SafePadding.EdgeEvaluationMode 14 | nameWithType: SafePadding.EdgeEvaluationMode 15 | fullName: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 16 | type: Enum 17 | source: 18 | remote: 19 | path: Runtime/Components/SafePadding.cs 20 | branch: master 21 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 22 | id: EdgeEvaluationMode 23 | path: ../Runtime/Components/SafePadding.cs 24 | startLine: 284 25 | assemblies: 26 | - Macaca.ViewSystem 27 | namespace: MacacaGames.ViewSystem 28 | summary: "\nHow a component looks at a particular edge to take the edge's property.\nMeaning depends on context of that component.\n" 29 | example: [] 30 | syntax: 31 | content: public enum EdgeEvaluationMode 32 | content.vb: Public Enum EdgeEvaluationMode 33 | modifiers.csharp: 34 | - public 35 | - enum 36 | modifiers.vb: 37 | - Public 38 | - Enum 39 | - uid: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.Off 40 | commentId: F:MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.Off 41 | id: Off 42 | parent: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 43 | langs: 44 | - csharp 45 | - vb 46 | name: Off 47 | nameWithType: SafePadding.EdgeEvaluationMode.Off 48 | fullName: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.Off 49 | type: Field 50 | source: 51 | remote: 52 | path: Runtime/Components/SafePadding.cs 53 | branch: master 54 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 55 | id: Off 56 | path: ../Runtime/Components/SafePadding.cs 57 | startLine: 289 58 | assemblies: 59 | - Macaca.ViewSystem 60 | namespace: MacacaGames.ViewSystem 61 | summary: "\nDo not use a value reported from that edge.\n" 62 | example: [] 63 | syntax: 64 | content: Off = 0 65 | return: 66 | type: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 67 | modifiers.csharp: 68 | - public 69 | - const 70 | modifiers.vb: 71 | - Public 72 | - Const 73 | - uid: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.On 74 | commentId: F:MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.On 75 | id: On 76 | parent: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 77 | langs: 78 | - csharp 79 | - vb 80 | name: On 81 | nameWithType: SafePadding.EdgeEvaluationMode.On 82 | fullName: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode.On 83 | type: Field 84 | source: 85 | remote: 86 | path: Runtime/Components/SafePadding.cs 87 | branch: master 88 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 89 | id: On 90 | path: ../Runtime/Components/SafePadding.cs 91 | startLine: 294 92 | assemblies: 93 | - Macaca.ViewSystem 94 | namespace: MacacaGames.ViewSystem 95 | summary: "\nUse a value reported from that edge.\n" 96 | example: [] 97 | syntax: 98 | content: On = 1 99 | return: 100 | type: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 101 | modifiers.csharp: 102 | - public 103 | - const 104 | modifiers.vb: 105 | - Public 106 | - Const 107 | references: 108 | - uid: MacacaGames.ViewSystem 109 | commentId: N:MacacaGames.ViewSystem 110 | name: MacacaGames.ViewSystem 111 | nameWithType: MacacaGames.ViewSystem 112 | fullName: MacacaGames.ViewSystem 113 | - uid: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 114 | commentId: T:MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 115 | parent: MacacaGames.ViewSystem 116 | name: SafePadding.EdgeEvaluationMode 117 | nameWithType: SafePadding.EdgeEvaluationMode 118 | fullName: MacacaGames.ViewSystem.SafePadding.EdgeEvaluationMode 119 | -------------------------------------------------------------------------------- /Documentation~/api/MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 4 | commentId: T:MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 5 | id: ViewElement.AnimatorTransitionType 6 | parent: MacacaGames.ViewSystem 7 | children: 8 | - MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.Direct 9 | - MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.Trigger 10 | langs: 11 | - csharp 12 | - vb 13 | name: ViewElement.AnimatorTransitionType 14 | nameWithType: ViewElement.AnimatorTransitionType 15 | fullName: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 16 | type: Enum 17 | source: 18 | remote: 19 | path: Runtime/Components/ViewElement.cs 20 | branch: master 21 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 22 | id: AnimatorTransitionType 23 | path: ../Runtime/Components/ViewElement.cs 24 | startLine: 183 25 | assemblies: 26 | - Macaca.ViewSystem 27 | namespace: MacacaGames.ViewSystem 28 | syntax: 29 | content: public enum AnimatorTransitionType 30 | content.vb: Public Enum AnimatorTransitionType 31 | modifiers.csharp: 32 | - public 33 | - enum 34 | modifiers.vb: 35 | - Public 36 | - Enum 37 | - uid: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.Direct 38 | commentId: F:MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.Direct 39 | id: Direct 40 | parent: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 41 | langs: 42 | - csharp 43 | - vb 44 | name: Direct 45 | nameWithType: ViewElement.AnimatorTransitionType.Direct 46 | fullName: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.Direct 47 | type: Field 48 | source: 49 | remote: 50 | path: Runtime/Components/ViewElement.cs 51 | branch: master 52 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 53 | id: Direct 54 | path: ../Runtime/Components/ViewElement.cs 55 | startLine: 185 56 | assemblies: 57 | - Macaca.ViewSystem 58 | namespace: MacacaGames.ViewSystem 59 | syntax: 60 | content: Direct = 0 61 | return: 62 | type: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 63 | modifiers.csharp: 64 | - public 65 | - const 66 | modifiers.vb: 67 | - Public 68 | - Const 69 | - uid: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.Trigger 70 | commentId: F:MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.Trigger 71 | id: Trigger 72 | parent: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 73 | langs: 74 | - csharp 75 | - vb 76 | name: Trigger 77 | nameWithType: ViewElement.AnimatorTransitionType.Trigger 78 | fullName: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType.Trigger 79 | type: Field 80 | source: 81 | remote: 82 | path: Runtime/Components/ViewElement.cs 83 | branch: master 84 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 85 | id: Trigger 86 | path: ../Runtime/Components/ViewElement.cs 87 | startLine: 186 88 | assemblies: 89 | - Macaca.ViewSystem 90 | namespace: MacacaGames.ViewSystem 91 | syntax: 92 | content: Trigger = 1 93 | return: 94 | type: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 95 | modifiers.csharp: 96 | - public 97 | - const 98 | modifiers.vb: 99 | - Public 100 | - Const 101 | references: 102 | - uid: MacacaGames.ViewSystem 103 | commentId: N:MacacaGames.ViewSystem 104 | name: MacacaGames.ViewSystem 105 | nameWithType: MacacaGames.ViewSystem 106 | fullName: MacacaGames.ViewSystem 107 | - uid: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 108 | commentId: T:MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 109 | parent: MacacaGames.ViewSystem 110 | name: ViewElement.AnimatorTransitionType 111 | nameWithType: ViewElement.AnimatorTransitionType 112 | fullName: MacacaGames.ViewSystem.ViewElement.AnimatorTransitionType 113 | -------------------------------------------------------------------------------- /Documentation~/api/MacacaGames.ViewSystem.ViewPage.ViewPageType.yml: -------------------------------------------------------------------------------- 1 | ### YamlMime:ManagedReference 2 | items: 3 | - uid: MacacaGames.ViewSystem.ViewPage.ViewPageType 4 | commentId: T:MacacaGames.ViewSystem.ViewPage.ViewPageType 5 | id: ViewPage.ViewPageType 6 | parent: MacacaGames.ViewSystem 7 | children: 8 | - MacacaGames.ViewSystem.ViewPage.ViewPageType.FullPage 9 | - MacacaGames.ViewSystem.ViewPage.ViewPageType.Overlay 10 | langs: 11 | - csharp 12 | - vb 13 | name: ViewPage.ViewPageType 14 | nameWithType: ViewPage.ViewPageType 15 | fullName: MacacaGames.ViewSystem.ViewPage.ViewPageType 16 | type: Enum 17 | source: 18 | remote: 19 | path: Runtime/Models/ViewPageModel.cs 20 | branch: master 21 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 22 | id: ViewPageType 23 | path: ../Runtime/Models/ViewPageModel.cs 24 | startLine: 21 25 | assemblies: 26 | - Macaca.ViewSystem 27 | namespace: MacacaGames.ViewSystem 28 | syntax: 29 | content: public enum ViewPageType 30 | content.vb: Public Enum ViewPageType 31 | modifiers.csharp: 32 | - public 33 | - enum 34 | modifiers.vb: 35 | - Public 36 | - Enum 37 | - uid: MacacaGames.ViewSystem.ViewPage.ViewPageType.FullPage 38 | commentId: F:MacacaGames.ViewSystem.ViewPage.ViewPageType.FullPage 39 | id: FullPage 40 | parent: MacacaGames.ViewSystem.ViewPage.ViewPageType 41 | langs: 42 | - csharp 43 | - vb 44 | name: FullPage 45 | nameWithType: ViewPage.ViewPageType.FullPage 46 | fullName: MacacaGames.ViewSystem.ViewPage.ViewPageType.FullPage 47 | type: Field 48 | source: 49 | remote: 50 | path: Runtime/Models/ViewPageModel.cs 51 | branch: master 52 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 53 | id: FullPage 54 | path: ../Runtime/Models/ViewPageModel.cs 55 | startLine: 23 56 | assemblies: 57 | - Macaca.ViewSystem 58 | namespace: MacacaGames.ViewSystem 59 | syntax: 60 | content: FullPage = 0 61 | return: 62 | type: MacacaGames.ViewSystem.ViewPage.ViewPageType 63 | modifiers.csharp: 64 | - public 65 | - const 66 | modifiers.vb: 67 | - Public 68 | - Const 69 | - uid: MacacaGames.ViewSystem.ViewPage.ViewPageType.Overlay 70 | commentId: F:MacacaGames.ViewSystem.ViewPage.ViewPageType.Overlay 71 | id: Overlay 72 | parent: MacacaGames.ViewSystem.ViewPage.ViewPageType 73 | langs: 74 | - csharp 75 | - vb 76 | name: Overlay 77 | nameWithType: ViewPage.ViewPageType.Overlay 78 | fullName: MacacaGames.ViewSystem.ViewPage.ViewPageType.Overlay 79 | type: Field 80 | source: 81 | remote: 82 | path: Runtime/Models/ViewPageModel.cs 83 | branch: master 84 | repo: https://github.com/MacacaGames/MacacaViewSystem.git 85 | id: Overlay 86 | path: ../Runtime/Models/ViewPageModel.cs 87 | startLine: 23 88 | assemblies: 89 | - Macaca.ViewSystem 90 | namespace: MacacaGames.ViewSystem 91 | syntax: 92 | content: Overlay = 1 93 | return: 94 | type: MacacaGames.ViewSystem.ViewPage.ViewPageType 95 | modifiers.csharp: 96 | - public 97 | - const 98 | modifiers.vb: 99 | - Public 100 | - Const 101 | references: 102 | - uid: MacacaGames.ViewSystem 103 | commentId: N:MacacaGames.ViewSystem 104 | name: MacacaGames.ViewSystem 105 | nameWithType: MacacaGames.ViewSystem 106 | fullName: MacacaGames.ViewSystem 107 | - uid: MacacaGames.ViewSystem.ViewPage.ViewPageType 108 | commentId: T:MacacaGames.ViewSystem.ViewPage.ViewPageType 109 | parent: MacacaGames.ViewSystem 110 | name: ViewPage.ViewPageType 111 | nameWithType: ViewPage.ViewPageType 112 | fullName: MacacaGames.ViewSystem.ViewPage.ViewPageType 113 | -------------------------------------------------------------------------------- /Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a76b9113f135240cb87e1fbe024528e1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/Attribute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 98b66f1d68fbb4cf6946051cd31c7fc5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/ComponentEditor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e53ef6ccd58c4e8087a9c12d04f4de0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/ComponentEditor/NestedViewElementEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b2e54c56d7284af29ac7492fa5a2e58 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/ComponentEditor/ViewControllerEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEditor; 5 | using UnityEditorInternal; 6 | using MacacaGames; 7 | using UnityEditor.AnimatedValues; 8 | 9 | namespace MacacaGames.ViewSystem 10 | { 11 | [CustomEditor(typeof(ViewController))] 12 | public class ViewControllerEditor : Editor 13 | { 14 | private ViewController viewController = null; 15 | private SerializedObject so; 16 | public ReorderableList list = null; 17 | 18 | 19 | private SerializedProperty s_SaveData; 20 | private SerializedProperty s_initOnAwake; 21 | private SerializedProperty s_autoPrewarm; 22 | private SerializedProperty s_vs; 23 | private SerializedProperty s_vp; 24 | 25 | private SerializedProperty s_current_element; 26 | private SerializedProperty s_current_element_vs; 27 | private SerializedProperty s_current_element_vp; 28 | 29 | AnimBool showDebugView = new AnimBool(false); 30 | void OnEnable() 31 | { 32 | viewController = (ViewController)target; 33 | so = serializedObject; 34 | s_initOnAwake = so.FindProperty("initOnAwake"); 35 | s_autoPrewarm = so.FindProperty("autoPrewarm"); 36 | 37 | s_SaveData = so.FindProperty("viewSystemSaveData"); 38 | s_vs = so.FindProperty("viewStates"); 39 | s_vp = so.FindProperty("viewPages"); 40 | s_current_element_vs = so.FindProperty("currentLiveElementsInViewState"); 41 | s_current_element_vp = so.FindProperty("currentLiveElementsInViewPage"); 42 | //s_current_element = so.FindProperty("currentLiveElements"); 43 | showDebugView.valueChanged.AddListener(Repaint); 44 | } 45 | void OnDisable() 46 | { 47 | showDebugView.valueChanged.RemoveListener(Repaint); 48 | } 49 | public override void OnInspectorGUI() 50 | { 51 | so.Update(); 52 | 53 | using (var change = new EditorGUI.ChangeCheckScope()) 54 | { 55 | EditorGUILayout.PropertyField(s_initOnAwake); 56 | EditorGUILayout.PropertyField(s_autoPrewarm); 57 | EditorGUILayout.PropertyField(s_SaveData); 58 | 59 | if (change.changed) 60 | { 61 | EditorUtility.SetDirty(viewController); 62 | } 63 | } 64 | 65 | serializedObject.ApplyModifiedProperties(); 66 | 67 | showDebugView.target = EditorGUILayout.Foldout(showDebugView.target, "Debug"); 68 | using (var disable = new EditorGUI.DisabledGroupScope(true)) 69 | { 70 | using (var fade = new EditorGUILayout.FadeGroupScope(showDebugView.faded)) 71 | { 72 | if (fade.visible) 73 | { 74 | 75 | // EditorGUILayout.PropertyField(s_vs, true); 76 | // EditorGUILayout.PropertyField(s_vp, true); 77 | EditorGUILayout.PropertyField(s_current_element_vs, true); 78 | EditorGUILayout.PropertyField(s_current_element_vp, true); 79 | } 80 | } 81 | } 82 | } 83 | } 84 | 85 | } -------------------------------------------------------------------------------- /Editor/ComponentEditor/ViewControllerEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e76d205e3f7b549b4955a1bb5e6fbccc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/ComponentEditor/ViewElementEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ddc5a328be0274d589d41fd30f9c649c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/ComponentEditor/ViewElementRuntimePoolEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEditor; 5 | using UnityEditor.AnimatedValues; 6 | using System.Linq; 7 | namespace MacacaGames.ViewSystem 8 | { 9 | [CustomEditor(typeof(ViewElementRuntimePool))] 10 | public class ViewElementRuntimePoolEditor : Editor 11 | { 12 | private ViewElementRuntimePool runtimePool = null; 13 | 14 | void OnEnable() 15 | { 16 | runtimePool = (ViewElementRuntimePool)target; 17 | 18 | } 19 | void OnDisable() 20 | { 21 | } 22 | public override void OnInspectorGUI() 23 | { 24 | 25 | GUILayout.Label($"Pool Status"); 26 | 27 | foreach (var item in runtimePool.GetDicts()) 28 | { 29 | var queue = item.Value; 30 | if (queue == null) 31 | { 32 | continue; 33 | } 34 | GUILayout.Label($"{TryGetPoolNameByInstanceId(item.Key)} : {queue.Count}"); 35 | } 36 | GUILayout.Label($"Recovery Queue Status"); 37 | 38 | foreach (var item in runtimePool.GetRecycleQueue()) 39 | { 40 | var queue = item; 41 | if (queue == null) 42 | { 43 | continue; 44 | } 45 | if (GUILayout.Button($"{queue.name}")) 46 | { 47 | EditorGUIUtility.PingObject(queue.gameObject); 48 | } 49 | } 50 | 51 | } 52 | 53 | public string TryGetPoolNameByInstanceId(int id) 54 | { 55 | string name = ""; 56 | runtimePool.veNameDicts.TryGetValue(id, out name); 57 | if (string.IsNullOrEmpty(name)) 58 | { 59 | return "ID:" + id.ToString(); 60 | } 61 | return name; 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /Editor/ComponentEditor/ViewElementRuntimePoolEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63df47a24ce574e44b088bcd4b791cae 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/ComponentEditor/ViewMarginFixerEditor.cs: -------------------------------------------------------------------------------- 1 | 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEditor; 6 | 7 | namespace MacacaGames.ViewSystem 8 | { 9 | 10 | [CanEditMultipleObjects] 11 | 12 | [CustomEditor(typeof(ViewMarginFixer))] 13 | public class ViewMarginFixerEditor : Editor 14 | { 15 | private ViewMarginFixer m_target = null; 16 | 17 | private ViewMarginFixer Target 18 | { 19 | get 20 | { 21 | if (m_target == null) 22 | { 23 | m_target = (ViewMarginFixer)target; 24 | } 25 | return m_target; 26 | } 27 | } 28 | 29 | public override void OnInspectorGUI() 30 | { 31 | //base.OnInspectorGUI(); 32 | var marginProperty = serializedObject.FindProperty("margin"); 33 | var rebuildLayoutAfterFixProperty = serializedObject.FindProperty("RebuildLayoutAfterFix"); 34 | 35 | EditorGUILayout.PropertyField(marginProperty, true); 36 | EditorGUILayout.PropertyField(rebuildLayoutAfterFixProperty); 37 | 38 | EditorGUILayout.BeginHorizontal(); 39 | if (GUILayout.Button("Auto Guess Fix Target")) 40 | { 41 | Target.AutoGuessFixTarget(); 42 | EditorUtility.SetDirty(Target); 43 | } 44 | if (GUILayout.Button("Apply Fixer Value")) 45 | { 46 | Target.ApplyModifyValue(); 47 | EditorUtility.SetDirty(Target); 48 | } 49 | if (GUILayout.Button("Set Fixer Value From Transform")) 50 | { 51 | Target.SetModifyValueFromRectTransform(); 52 | EditorUtility.SetDirty(Target); 53 | } 54 | EditorGUILayout.EndHorizontal(); 55 | 56 | serializedObject.ApplyModifiedProperties(); 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /Editor/ComponentEditor/ViewMarginFixerEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68477f8fa9dec47108395420c539cf35 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/ComponentEditor/ViewSystemRectTransformEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eff30db43eff748af8c00ed8d680e690 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/DataReader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b2b1ab20c66d94fd4bfa9a75a9efd80b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/DataReader/IViewSystemDateReader.cs: -------------------------------------------------------------------------------- 1 | // using System.Collections; 2 | // using System.Collections.Generic; 3 | // using UnityEngine; 4 | 5 | 6 | // namespace MacacaGames.ViewSystem.VisualEditor 7 | // { 8 | // interface IViewSystemDateReader 9 | // { 10 | // bool Init(); 11 | // void OnViewPageDelete(ViewPageNode node); 12 | // void OnViewStateDelete(ViewStateNode node); 13 | // void OnViewPageAdd(ViewPageNode node); 14 | // void OnViewStateAdd(ViewStateNode node); 15 | // void Save(List viewPageNodes, List viewStateNodes); 16 | // void OnViewPagePreview(ViewPage viewPage); 17 | // void Normalized(); 18 | // } 19 | // } -------------------------------------------------------------------------------- /Editor/DataReader/IViewSystemDateReader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0174609a9a48c4b1788f53dfcdbc0269 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/DataReader/ViewSystemDataReaderV2.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e817bb4098e524e079bac7ebbf0397b1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/Macaca.ViewSystem.Editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Macaca.ViewSystem.Editor", 3 | "references": [ 4 | "UnityEngine.UI", 5 | "Macaca.Utility", 6 | "Macaca.Utility.Editor", 7 | "Macaca.ViewSystem" 8 | ], 9 | "includePlatforms": [ 10 | "Editor" 11 | ], 12 | "excludePlatforms": [], 13 | "allowUnsafeCode": false, 14 | "overrideReferences": false, 15 | "precompiledReferences": [ 16 | "DemiLib.dll", 17 | "DOTween.dll" 18 | ], 19 | "autoReferenced": true, 20 | "defineConstraints": [], 21 | "versionDefines": [], 22 | "noEngineReferences": false 23 | } -------------------------------------------------------------------------------- /Editor/Macaca.ViewSystem.Editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12f0c3c7a424041a4b28ece8c33e2712 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Editor/PropertyDrawer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13afba51fb9ae41dfb4571e643bc6ec1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/PropertyDrawer/OverridePropertyDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63f3e1bfb58bb4158a67feb3f42b5649 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/PropertyDrawer/ViewElementAnimationGroupDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2682723b27d114338acb86526ef431da 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/PropertyDrawer/ViewSystemDropdownDrawer.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using System; 4 | using System.Reflection; 5 | using System.Linq; 6 | 7 | namespace MacacaGames.ViewSystem 8 | { 9 | [CustomPropertyDrawer(typeof(ViewSystemDropdownAttribute))] 10 | public class ViewSystemDropdownDrawer : PropertyDrawer 11 | { 12 | public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) 13 | { 14 | if (property.propertyType != SerializedPropertyType.String) 15 | { 16 | EditorGUI.PropertyField(position, property, label); 17 | EditorGUILayout.HelpBox("This attribute is only valid on string properties", MessageType.Error); 18 | return; 19 | } 20 | 21 | string[] options = GetOptionsFromViewSystemScriptable(); 22 | if (options == null || options.Length == 0) 23 | { 24 | EditorGUI.PropertyField(position, property, label); 25 | EditorGUILayout.HelpBox("Cannot find ViewSystemScriptable, please bake one in [MacacaGames/ViewSystem/VisualEditor] if you want to use Popup.", MessageType.Warning); 26 | return; 27 | } 28 | 29 | int index = Array.IndexOf(options, property.stringValue); 30 | index = EditorGUI.Popup(position, label.text, index, options); 31 | EditorGUILayout.HelpBox("If you cannot find the page you want, please re-bake one in [MacacaGames/ViewSystem/VisualEditor]", MessageType.Info); 32 | 33 | if (index >= 0 && index < options.Length) 34 | { 35 | property.stringValue = options[index]; 36 | } 37 | } 38 | 39 | public static string[] GetOptionsFromViewSystemScriptable() 40 | { 41 | Type viewSystemScriptableType = 42 | MacacaGames.Utility.GetType("MacacaGames.ViewSystem.ViewSystemScriptable+ViewPages"); 43 | if (viewSystemScriptableType == null) 44 | { 45 | // The class does not exist 46 | return null; 47 | } 48 | 49 | FieldInfo[] fields = 50 | viewSystemScriptableType.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy); 51 | 52 | string[] options = fields.Select(field => field.GetValue(null).ToString()) 53 | .OrderBy(str => str, StringComparer.OrdinalIgnoreCase) 54 | .ToArray(); 55 | return options; 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /Editor/PropertyDrawer/ViewSystemDropdownDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79b5edbc4d029a74d877359ff0b237f2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/Utinity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50192d0081d7c4276847671d7e089156 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/Utinity/EditorUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c165da91bb2ef4af98668b67aa9eb100 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/Utinity/ViewSystemEditHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 908df0b9bdbe649bdafe05b353d81bed 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/Utinity/ViewSystemScriptBaker.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEditor; 5 | using System.Text; 6 | using MacacaGames.ViewSystem; 7 | namespace MacacaGames.ViewSystem 8 | { 9 | public class ViewSystemScriptBaker : Editor 10 | { 11 | public static void BakeAllViewPageName(List vps, List vss,List bp) 12 | { 13 | var sb = new StringBuilder(); 14 | sb.AppendLine("using UnityEngine;"); 15 | sb.AppendLine(); 16 | sb.AppendLine("namespace MacacaGames.ViewSystem"); 17 | sb.AppendLine("{"); 18 | sb.AppendLine(" public struct ViewSystemScriptable"); 19 | sb.AppendLine(" {"); 20 | sb.AppendLine(); 21 | BuildBreakPoints(sb, bp); 22 | BuildScriptWithViewPages(sb, vps); 23 | BuildScriptWithViewStates(sb, vss); 24 | sb.AppendLine(); 25 | sb.AppendLine(" }"); 26 | 27 | sb.AppendLine("}"); 28 | 29 | 30 | string ScriptFile = GetPathToGeneratedScriptLocalization(); 31 | 32 | var filePath = Application.dataPath + ScriptFile.Substring("Assets".Length); 33 | 34 | System.IO.File.WriteAllText(filePath, sb.ToString(), Encoding.UTF8); 35 | 36 | AssetDatabase.ImportAsset(ScriptFile); 37 | } 38 | static void BuildBreakPoints(StringBuilder sb, List bp) 39 | { 40 | if (bp == null) 41 | { 42 | return; 43 | } 44 | if (bp.Count == 0) 45 | { 46 | return; 47 | } 48 | sb.AppendLine(" public struct BreakPoints"); 49 | sb.AppendLine(" {"); 50 | foreach (var item in bp) 51 | { 52 | sb.AppendLine(" public const string " + item + " = \"" + item + "\";"); 53 | sb.AppendLine(); 54 | } 55 | sb.AppendLine(" }"); 56 | } 57 | static void BuildScriptWithViewPages(StringBuilder sb, List vps) 58 | { 59 | if (vps == null) 60 | { 61 | return; 62 | } 63 | if (vps.Count == 0) 64 | { 65 | return; 66 | } 67 | sb.AppendLine(" public struct ViewPages"); 68 | sb.AppendLine(" {"); 69 | foreach (var item in vps) 70 | { 71 | sb.AppendLine(" public const string " + item.name + " = \"" + item.name + "\";"); 72 | sb.AppendLine(); 73 | } 74 | sb.AppendLine(" }"); 75 | } 76 | static void BuildScriptWithViewStates(StringBuilder sb, List vss) 77 | { 78 | if (vss == null) 79 | { 80 | return; 81 | } 82 | if (vss.Count == 0) 83 | { 84 | return; 85 | } 86 | sb.AppendLine(" public struct ViewStates"); 87 | sb.AppendLine(" {"); 88 | foreach (var item in vss) 89 | { 90 | sb.AppendLine(" public const string " + item.name + " = \"" + item.name + "\";"); 91 | sb.AppendLine(); 92 | } 93 | sb.AppendLine(" }"); 94 | } 95 | 96 | static string GetPathToGeneratedScriptLocalization() 97 | { 98 | 99 | MacacaGames.ViewSystem.VisualEditor.ViewSystemDataReaderV2.CheckAndCreateResourceFolder(); 100 | string[] assets = AssetDatabase.FindAssets("ViewSystemScriptable"); 101 | if (assets.Length > 0) 102 | { 103 | try 104 | { 105 | string FilePath = AssetDatabase.GUIDToAssetPath(assets[0]); 106 | return FilePath; 107 | } 108 | catch (System.Exception) 109 | { } 110 | } 111 | 112 | return "Assets/ViewSystemResources/ViewSystemScriptable.cs"; 113 | } 114 | } 115 | } -------------------------------------------------------------------------------- /Editor/Utinity/ViewSystemScriptBaker.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 065dc8158f6884435b73a37789598cd3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89862d134aad14a9fb6e586325aa95ac 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Drawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d07919b89b64947d5bf9165a7c9ffc99 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Overrides.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8778c286c0b54bcdaf749bacdaf51dd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Overrides/ComponentTreeView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cb9780d11a174230a271a054292a3c3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Overrides/EditorExtensionMethods.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | using System.Collections.Generic; 4 | 5 | public static class EditorExtensionMethods 6 | { 7 | public static IEnumerable GetChildren(this SerializedProperty property) 8 | { 9 | property = property.Copy(); 10 | var nextElement = property.Copy(); 11 | bool hasNextElement = nextElement.NextVisible(false); 12 | if (!hasNextElement) 13 | { 14 | nextElement = null; 15 | } 16 | 17 | property.NextVisible(true); 18 | while (true) 19 | { 20 | if ((SerializedProperty.EqualContents(property, nextElement))) 21 | { 22 | yield break; 23 | } 24 | 25 | yield return property; 26 | 27 | bool hasNext = property.NextVisible(false); 28 | if (!hasNext) 29 | { 30 | break; 31 | } 32 | } 33 | } 34 | public static Rect Contract(this Rect rect, float left, float top, float right, float bottom) 35 | { 36 | return new Rect(rect.x + left, rect.y + top, rect.width - right - left, rect.height - bottom - top); 37 | } 38 | 39 | } 40 | 41 | 42 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Overrides/EditorExtensionMethods.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f6d4e2bc17e14dcc95dfe29916a22df 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Overrides/HierarchyTreeView.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | using UnityEditor.IMGUI.Controls; 5 | using UnityEngine; 6 | using System.Linq; 7 | public class HierarchyTreeView : TreeView 8 | { 9 | Transform root; 10 | List hierarchyData = new List(); 11 | public HierarchyTreeView(Transform root, TreeViewState treeViewState) 12 | : base(treeViewState) 13 | { 14 | this.root = root; 15 | CacheItem(root, 0); 16 | showBorder = true; 17 | showAlternatingRowBackgrounds = true; 18 | Reload(); 19 | } 20 | 21 | public void Draw() 22 | { 23 | 24 | } 25 | int id = 1; 26 | 27 | void CacheItem(Transform transform, int layer) 28 | { 29 | hierarchyData.Add(new HierarchyData(layer, transform, id)); 30 | id++; 31 | foreach (Transform item in transform) 32 | { 33 | CacheItem(item, layer + 1); 34 | } 35 | } 36 | 37 | 38 | protected override TreeViewItem BuildRoot() 39 | { 40 | var treeRoot = new TreeViewItem { id = 0, depth = -1, displayName = this.root.name, icon = Drawer.prefabIcon }; 41 | 42 | var allTreeItem = new List(); 43 | int Id = 1; 44 | foreach (var item in hierarchyData) 45 | { 46 | allTreeItem.Add(new TreeViewItem { id = item.id, depth = item.layer, displayName = item.transform.name, icon = Drawer.prefabIcon }); 47 | Id++; 48 | } 49 | SetupParentsAndChildrenFromDepths(treeRoot, allTreeItem); 50 | 51 | // Return root of the tree 52 | return treeRoot; 53 | } 54 | protected override void RowGUI(RowGUIArgs args) 55 | { 56 | base.RowGUI(args); 57 | 58 | } 59 | 60 | protected override void DoubleClickedItem(int id) 61 | { 62 | var select = hierarchyData.SingleOrDefault(x => x.id == id); 63 | if (select == null) 64 | { 65 | return; 66 | } 67 | OnItemClick?.Invoke(select.transform.gameObject); 68 | } 69 | 70 | class HierarchyData 71 | { 72 | public HierarchyData(int layer, Transform transform, int id) 73 | { 74 | this.layer = layer; 75 | this.id = id; 76 | this.transform = transform; 77 | } 78 | public int layer; 79 | public int id; 80 | public Transform transform; 81 | } 82 | public delegate void _OnItemClick(Object target); 83 | 84 | public event _OnItemClick OnItemClick; 85 | } 86 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Overrides/HierarchyTreeView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b183181162d149ff96327a69e363edb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Overrides/ViewElementOverridesImporterWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1053dd0a68bd14956b7c7d700f2c16d2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Overrides/ViewSystemVerifier.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 06402c2a28f2444c7843a391e6861c6a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e5f8a139abff4fb180b4f6cb3e68929 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Resources/ViewSystemNodeEditorUIElementUss.uss: -------------------------------------------------------------------------------- 1 | #toolbar { 2 | height: 20px; 3 | } 4 | 5 | #content { 6 | flex-grow: 1; 7 | flex-direction: row; 8 | } 9 | 10 | #inspector { 11 | flex-grow: 0; 12 | max-width: 450px; 13 | min-width: 250px; 14 | padding: 15px 5px 0 5px; 15 | background-color: rgb(144, 144, 144); 16 | } 17 | 18 | #dragger-wrapper { 19 | background-color: rgb(67, 67, 67); 20 | width: 2px; 21 | } 22 | 23 | #dragger { 24 | left: -5px; 25 | width: 10px; 26 | top: 0; 27 | bottom: 0; 28 | position: absolute; 29 | background-color: rgba(0, 0, 0, 0); 30 | cursor: resize-horizontal; 31 | } 32 | 33 | #node-view { 34 | flex-grow: 1; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Resources/ViewSystemNodeEditorUIElementUss.uss.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ceae6bbdc24c443e84519dbb8a655be 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} 11 | disableValidation: 0 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Resources/ViewSystemNodeEditorUIElementUxml.uxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Resources/ViewSystemNodeEditorUIElementUxml.uxml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 524a9ac77b7a14196a02d61793522d58 3 | ScriptedImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 2 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0} 11 | -------------------------------------------------------------------------------- /Editor/VisualEditor/ViewSystemEditorHelper.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | // Helper Rect extension methods 3 | public static class RectExtensions 4 | { 5 | public static Vector2 TopLeft(this Rect rect) 6 | { 7 | return new Vector2(rect.xMin, rect.yMin); 8 | } 9 | 10 | public static Rect ScaleSizeBy(this Rect rect, float scale) 11 | { 12 | return rect.ScaleSizeBy(scale, rect.center); 13 | } 14 | public static Rect ScaleSizeBy(this Rect rect, float scale, Vector2 pivotPoint) 15 | { 16 | Rect result = rect; 17 | result.x -= pivotPoint.x; 18 | result.y -= pivotPoint.y; 19 | result.xMin *= scale; 20 | result.xMax *= scale; 21 | result.yMin *= scale; 22 | result.yMax *= scale; 23 | result.x += pivotPoint.x; 24 | result.y += pivotPoint.y; 25 | return result; 26 | } 27 | public static Rect ScaleSizeBy(this Rect rect, Vector2 scale) 28 | { 29 | return rect.ScaleSizeBy(scale, rect.center); 30 | } 31 | public static Rect ScaleSizeBy(this Rect rect, Vector2 scale, Vector2 pivotPoint) 32 | { 33 | Rect result = rect; 34 | result.x -= pivotPoint.x; 35 | result.y -= pivotPoint.y; 36 | result.xMin *= scale.x; 37 | result.xMax *= scale.x; 38 | result.yMin *= scale.y; 39 | result.yMax *= scale.y; 40 | result.x += pivotPoint.x; 41 | result.y += pivotPoint.y; 42 | return result; 43 | } 44 | } 45 | public class EditorZoomArea 46 | { 47 | private static Matrix4x4 _prevGuiMatrix; 48 | private static Vector2 offset = new Vector2(2.0f, 19.0f); 49 | public static Vector2 Offset { get { return offset; } set { offset = value; } } 50 | 51 | public static Rect Begin(float zoomScale, Rect screenCoordsArea) 52 | { 53 | GUI.EndGroup(); // End the group Unity begins automatically for an EditorWindow to clip out the window tab. This allows us to draw outside of the size of the EditorWindow. 54 | 55 | Rect clippedArea = screenCoordsArea.ScaleSizeBy(1.0f / zoomScale, screenCoordsArea.TopLeft()); 56 | clippedArea.position += offset; 57 | GUI.BeginGroup(clippedArea); 58 | 59 | _prevGuiMatrix = GUI.matrix; 60 | 61 | Matrix4x4 translation = Matrix4x4.TRS(clippedArea.TopLeft(), Quaternion.identity, Vector3.one); 62 | Matrix4x4 scale = Matrix4x4.Scale(new Vector3(zoomScale, zoomScale, 1.0f)); 63 | GUI.matrix = translation * scale * translation.inverse * GUI.matrix; 64 | 65 | 66 | return clippedArea; 67 | } 68 | 69 | public static void End() 70 | { 71 | GUI.matrix = _prevGuiMatrix; 72 | GUI.EndGroup(); 73 | GUI.BeginGroup(new Rect(offset.x, offset.y, Screen.width, Screen.height)); 74 | } 75 | 76 | public static Rect NoGroupBegin(float zoomScale, Rect screenCoordsArea) 77 | { 78 | //GUI.EndGroup(); // End the group Unity begins automatically for an EditorWindow to clip out the window tab. This allows us to draw outside of the size of the EditorWindow. 79 | 80 | Rect clippedArea = screenCoordsArea.ScaleSizeBy(1.0f / zoomScale, screenCoordsArea.TopLeft()); 81 | clippedArea.position += offset; 82 | GUI.BeginGroup(clippedArea); 83 | 84 | _prevGuiMatrix = GUI.matrix; 85 | 86 | Matrix4x4 translation = Matrix4x4.TRS(clippedArea.TopLeft(), Quaternion.identity, Vector3.one); 87 | Matrix4x4 scale = Matrix4x4.Scale(new Vector3(zoomScale, zoomScale, 1.0f)); 88 | GUI.matrix = translation * scale * translation.inverse * GUI.matrix; 89 | 90 | 91 | return clippedArea; 92 | } 93 | 94 | public static void NoGroupEnd() 95 | { 96 | GUI.matrix = _prevGuiMatrix; 97 | GUI.EndGroup(); 98 | // GUI.BeginGroup(new Rect(offset.x, offset.y, Screen.width, Screen.height)); 99 | } 100 | } -------------------------------------------------------------------------------- /Editor/VisualEditor/ViewSystemEditorHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 62a16af71a33d4b7491aae4a3efbbcf4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/ViewSystemNodeConsole.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a3cae958e0ad4169892a68ae279960d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/ViewSystemNodeInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66ff07d7719cf478ca3978dfbe4af6a1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/ViewSystemNodeModel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d86e6c5dbd5414aeaa1f584fd62970f8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/ViewSystemVisualEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1429b8d8a0674c16b24b6f82edf2f92 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Window.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 639d2d485b64045ab853afd908fa5e6e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Window/OverridePopupWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4b65f997949a474999d5d772f2fe4a3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Window/ViewBreakpointWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3716342480f1a4bc4bdef68e04802cd3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Window/ViewPageNavigationWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce2145e244d9e4527bae418800e2fcde 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Window/ViewPageOrderWindow.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEditor; 5 | using UnityEditor.AnimatedValues; 6 | using UnityEditorInternal; 7 | using System; 8 | using System.Linq; 9 | namespace MacacaGames.ViewSystem.VisualEditor 10 | { 11 | public class ViewPageOrderWindow : ViewSystemNodeWindow 12 | { 13 | 14 | ViewSystemDataReaderV2 dataReader; 15 | 16 | static ViewSystemSaveData saveData => ViewSystemVisualEditor.saveData; 17 | public ViewPageOrderWindow(string name, ViewSystemVisualEditor editor, ViewSystemDataReaderV2 dataReader) 18 | : base(name, editor) 19 | { 20 | this.dataReader = dataReader; 21 | RebuildList(); 22 | } 23 | ReorderableList viewPageOrderList; 24 | Vector2 scrollPosition; 25 | 26 | public override void Draw(int id) 27 | { 28 | using (var scroll = new EditorGUILayout.ScrollViewScope(scrollPosition)) 29 | { 30 | viewPageOrderList.DoLayoutList(); 31 | scrollPosition = scroll.scrollPosition; 32 | } 33 | 34 | if (GUILayout.Button("Apply")) 35 | { 36 | ApplySortOrder(); 37 | } 38 | if (GUILayout.Button("Close")) 39 | { 40 | Hide(); 41 | } 42 | base.Draw(id); 43 | } 44 | 45 | void ApplySortOrder() 46 | { 47 | int order = overlayPageNames.Count + 1; 48 | var saveData = dataReader.GetSaveData(); 49 | foreach (var item in overlayPageNames) 50 | { 51 | var viewPage = saveData.GetViewPageSaveDatas().FirstOrDefault(m => m.viewPage.name == item); 52 | if (viewPage == null || viewPage.viewPage.ignoreAutoSorting) 53 | { 54 | continue; 55 | } 56 | viewPage.viewPage.canvasSortOrder = order; 57 | order--; 58 | } 59 | dataReader.Save(); 60 | } 61 | 62 | List overlayPageNames = new List(); 63 | 64 | void RebuildList() 65 | { 66 | var overlayPages = dataReader.GetSaveData().GetViewPageSaveDatas().Where(m => m.viewPage.viewPageType == ViewPage.ViewPageType.Overlay); 67 | overlayPageNames = overlayPages.Where(m => !m.viewPage.ignoreAutoSorting).OrderByDescending(m => m.viewPage.canvasSortOrder).Select(m => m.viewPage.name).ToList(); 68 | viewPageOrderList = null; 69 | viewPageOrderList = new ReorderableList(overlayPageNames, typeof(List), true, true, false, false); 70 | viewPageOrderList.drawElementCallback += DrawViewItemElement; 71 | viewPageOrderList.drawHeaderCallback += DrawHeaderCallback; 72 | viewPageOrderList.elementHeight = EditorGUIUtility.singleLineHeight; 73 | } 74 | 75 | private void DrawHeaderCallback(Rect rect) 76 | { 77 | GUI.Label(rect, "Change the sortOrder by move the item, top is greater"); 78 | } 79 | 80 | private void DrawViewItemElement(Rect rect, int index, bool isActive, bool isFocused) 81 | { 82 | GUI.Label(rect, overlayPageNames[index]); 83 | } 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Window/ViewPageOrderWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 976ae0c65a6e74d858872afc64e86e90 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Window/ViewSystemGlobalSettingWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 62656f02af8dd4b7cb123127e49bd5ae 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Editor/VisualEditor/Window/ViewSystemNodeWindow.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | using UnityEngine; 5 | namespace MacacaGames.ViewSystem.VisualEditor 6 | { 7 | public class ViewSystemNodeWindow 8 | { 9 | protected bool resizeable; 10 | protected ViewSystemVisualEditor editor; 11 | private Rect _rect; 12 | protected Rect rect 13 | { 14 | get 15 | { 16 | return _rect; 17 | } 18 | set 19 | { 20 | _rect = new Rect(value.x, value.y, GetWindowSize.x, GetWindowSize.y); 21 | } 22 | } 23 | 24 | public bool show; 25 | public string name; 26 | 27 | public bool dragable = true; 28 | public ViewSystemNodeWindow(string name, ViewSystemVisualEditor editor) 29 | { 30 | this.editor = editor; 31 | this.name = name; 32 | rect = new Rect(editor.position.width * 0.3f, 33 | editor.position.height * 0.3f, 34 | rect.width, 35 | rect.height); 36 | show = false; 37 | } 38 | 39 | public virtual void OnGUI() 40 | { 41 | if (!show) 42 | { 43 | return; 44 | } 45 | rect = GUILayout.Window(this.GetHashCode(), rect, Draw, name, GetWindowStyle()); 46 | } 47 | public void Show() 48 | { 49 | show = true; 50 | } 51 | 52 | public void Hide() 53 | { 54 | show = false; 55 | } 56 | 57 | public virtual void Draw(int id) 58 | { 59 | if (dragable) 60 | { 61 | GUI.DragWindow(new Rect(0, 0, editor.position.width, editor.position.height)); 62 | } 63 | // if (resizeable) 64 | // { 65 | // DrawResizeBtn(); 66 | // } 67 | } 68 | bool resizeBarPressed = false; 69 | void DrawResizeBtn() 70 | { 71 | GUI.depth = 100; 72 | var ResizeBarRect = new Rect(rect.width - 8, rect.height - 8, 8, 8); 73 | EditorGUIUtility.AddCursorRect(ResizeBarRect, MouseCursor.ResizeUpLeft); 74 | 75 | GUI.Box(ResizeBarRect, ""); 76 | if (ResizeBarRect.Contains(Event.current.mousePosition)) 77 | { 78 | if (Event.current.type == EventType.MouseDown) 79 | { 80 | resizeBarPressed = true; 81 | dragable = false; 82 | } 83 | } 84 | if (Event.current.type == EventType.MouseUp) 85 | { 86 | resizeBarPressed = false; 87 | dragable = true; 88 | } 89 | if (resizeBarPressed && Event.current.type == EventType.MouseDrag) 90 | { 91 | rect = new Rect(rect.x, rect.y, rect.width + Event.current.delta.x, 92 | rect.height + Event.current.delta.y); 93 | Event.current.Use(); 94 | GUI.changed = true; 95 | } 96 | } 97 | public virtual Vector2 GetWindowSize 98 | { 99 | get 100 | { 101 | return new Vector2(350, 400); 102 | } 103 | } 104 | 105 | public virtual GUIStyle GetWindowStyle() 106 | { 107 | return new GUIStyle("window"); 108 | } 109 | } 110 | } -------------------------------------------------------------------------------- /Editor/VisualEditor/Window/ViewSystemNodeWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b14d753c4c155434f9c6c9868d1040e4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Icons.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbb72d41a11f04110b5ffc50b33cc72c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Icons/safepadding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Icons/safepadding.png -------------------------------------------------------------------------------- /Icons/safepadding.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb6915bcf8889408ba4eaf907e5d3913 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 0 47 | spriteMeshType: 0 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 0 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 1024 71 | resizeAlgorithm: 1 72 | textureFormat: 4 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 2048 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 1 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Server 94 | maxTextureSize: 2048 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 1 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | - serializedVersion: 3 105 | buildTarget: Android 106 | maxTextureSize: 2048 107 | resizeAlgorithm: 0 108 | textureFormat: -1 109 | textureCompression: 1 110 | compressionQuality: 50 111 | crunchedCompression: 0 112 | allowsAlphaSplitting: 0 113 | overridden: 0 114 | androidETC2FallbackOverride: 0 115 | forceMaximumCompressionQuality_BC6H_BC7: 0 116 | - serializedVersion: 3 117 | buildTarget: iPhone 118 | maxTextureSize: 2048 119 | resizeAlgorithm: 0 120 | textureFormat: -1 121 | textureCompression: 1 122 | compressionQuality: 50 123 | crunchedCompression: 0 124 | allowsAlphaSplitting: 0 125 | overridden: 0 126 | androidETC2FallbackOverride: 0 127 | forceMaximumCompressionQuality_BC6H_BC7: 0 128 | spriteSheet: 129 | serializedVersion: 2 130 | sprites: [] 131 | outline: [] 132 | physicsShape: [] 133 | bones: [] 134 | spriteID: 5e97eb03825dee720800000000000000 135 | internalID: 0 136 | vertices: [] 137 | indices: 138 | edges: [] 139 | weights: [] 140 | secondaryTextures: [] 141 | nameFileIdTable: {} 142 | spritePackingTag: 143 | pSDRemoveMatte: 0 144 | pSDShowRemoveMatteOption: 0 145 | userData: 146 | assetBundleName: 147 | assetBundleVariant: 148 | -------------------------------------------------------------------------------- /Icons/viewelement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Icons/viewelement.png -------------------------------------------------------------------------------- /Icons/viewelement.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ebbb3f3f2cc24da3af2e651b565fef0 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 0 47 | spriteMeshType: 0 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 0 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 1024 71 | resizeAlgorithm: 1 72 | textureFormat: 4 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 2048 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 1 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Server 94 | maxTextureSize: 2048 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 1 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | - serializedVersion: 3 105 | buildTarget: Android 106 | maxTextureSize: 2048 107 | resizeAlgorithm: 0 108 | textureFormat: -1 109 | textureCompression: 1 110 | compressionQuality: 50 111 | crunchedCompression: 0 112 | allowsAlphaSplitting: 0 113 | overridden: 0 114 | androidETC2FallbackOverride: 0 115 | forceMaximumCompressionQuality_BC6H_BC7: 0 116 | - serializedVersion: 3 117 | buildTarget: iPhone 118 | maxTextureSize: 2048 119 | resizeAlgorithm: 0 120 | textureFormat: -1 121 | textureCompression: 1 122 | compressionQuality: 50 123 | crunchedCompression: 0 124 | allowsAlphaSplitting: 0 125 | overridden: 0 126 | androidETC2FallbackOverride: 0 127 | forceMaximumCompressionQuality_BC6H_BC7: 0 128 | spriteSheet: 129 | serializedVersion: 2 130 | sprites: [] 131 | outline: [] 132 | physicsShape: [] 133 | bones: [] 134 | spriteID: 5e97eb03825dee720800000000000000 135 | internalID: 0 136 | vertices: [] 137 | indices: 138 | edges: [] 139 | weights: [] 140 | secondaryTextures: [] 141 | nameFileIdTable: {} 142 | spritePackingTag: 143 | pSDRemoveMatte: 0 144 | pSDShowRemoveMatteOption: 0 145 | userData: 146 | assetBundleName: 147 | assetBundleVariant: 148 | -------------------------------------------------------------------------------- /Icons/viewelementgroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Icons/viewelementgroup.png -------------------------------------------------------------------------------- /Icons/viewelementgroup.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d082db33647ca4452844735117862045 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 1 40 | wrapV: 1 41 | wrapW: 1 42 | nPOTScale: 0 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 1 46 | spriteExtrude: 0 47 | spriteMeshType: 0 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 0 53 | alphaUsage: 1 54 | alphaIsTransparency: 1 55 | spriteTessellationDetail: -1 56 | textureType: 8 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | cookieLightType: 1 67 | platformSettings: 68 | - serializedVersion: 3 69 | buildTarget: DefaultTexturePlatform 70 | maxTextureSize: 1024 71 | resizeAlgorithm: 1 72 | textureFormat: 4 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | forceMaximumCompressionQuality_BC6H_BC7: 0 80 | - serializedVersion: 3 81 | buildTarget: Standalone 82 | maxTextureSize: 2048 83 | resizeAlgorithm: 0 84 | textureFormat: -1 85 | textureCompression: 1 86 | compressionQuality: 50 87 | crunchedCompression: 0 88 | allowsAlphaSplitting: 0 89 | overridden: 0 90 | androidETC2FallbackOverride: 0 91 | forceMaximumCompressionQuality_BC6H_BC7: 0 92 | - serializedVersion: 3 93 | buildTarget: Server 94 | maxTextureSize: 2048 95 | resizeAlgorithm: 0 96 | textureFormat: -1 97 | textureCompression: 1 98 | compressionQuality: 50 99 | crunchedCompression: 0 100 | allowsAlphaSplitting: 0 101 | overridden: 0 102 | androidETC2FallbackOverride: 0 103 | forceMaximumCompressionQuality_BC6H_BC7: 0 104 | - serializedVersion: 3 105 | buildTarget: Android 106 | maxTextureSize: 2048 107 | resizeAlgorithm: 0 108 | textureFormat: -1 109 | textureCompression: 1 110 | compressionQuality: 50 111 | crunchedCompression: 0 112 | allowsAlphaSplitting: 0 113 | overridden: 0 114 | androidETC2FallbackOverride: 0 115 | forceMaximumCompressionQuality_BC6H_BC7: 0 116 | - serializedVersion: 3 117 | buildTarget: iPhone 118 | maxTextureSize: 2048 119 | resizeAlgorithm: 0 120 | textureFormat: -1 121 | textureCompression: 1 122 | compressionQuality: 50 123 | crunchedCompression: 0 124 | allowsAlphaSplitting: 0 125 | overridden: 0 126 | androidETC2FallbackOverride: 0 127 | forceMaximumCompressionQuality_BC6H_BC7: 0 128 | spriteSheet: 129 | serializedVersion: 2 130 | sprites: [] 131 | outline: [] 132 | physicsShape: [] 133 | bones: [] 134 | spriteID: 5e97eb03825dee720800000000000000 135 | internalID: 0 136 | vertices: [] 137 | indices: 138 | edges: [] 139 | weights: [] 140 | secondaryTextures: [] 141 | nameFileIdTable: {} 142 | spritePackingTag: 143 | pSDRemoveMatte: 0 144 | pSDShowRemoveMatteOption: 0 145 | userData: 146 | assetBundleName: 147 | assetBundleVariant: 148 | -------------------------------------------------------------------------------- /Img~/AG.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/AG.gif -------------------------------------------------------------------------------- /Img~/MergeAndShoot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/MergeAndShoot.gif -------------------------------------------------------------------------------- /Img~/ProjectCube.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/ProjectCube.gif -------------------------------------------------------------------------------- /Img~/add_viewelement.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/add_viewelement.gif -------------------------------------------------------------------------------- /Img~/changepage_lifecycle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/changepage_lifecycle.jpg -------------------------------------------------------------------------------- /Img~/changepage_lifecycle.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 738ff52fb5ef54344928cdbca7c57cb9 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /Img~/characterUpgrade.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/characterUpgrade.gif -------------------------------------------------------------------------------- /Img~/event_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/event_demo.gif -------------------------------------------------------------------------------- /Img~/how_to_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/how_to_1.png -------------------------------------------------------------------------------- /Img~/how_to_1.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2849dab7679404583b857a8515877e48 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Img~/how_to_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/how_to_2.png -------------------------------------------------------------------------------- /Img~/override_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/override_demo.gif -------------------------------------------------------------------------------- /Img~/overridewindow_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/overridewindow_model.png -------------------------------------------------------------------------------- /Img~/page_ordering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/page_ordering.png -------------------------------------------------------------------------------- /Img~/rythemGo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/rythemGo.gif -------------------------------------------------------------------------------- /Img~/safearea_global.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/safearea_global.png -------------------------------------------------------------------------------- /Img~/safearea_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/safearea_page.png -------------------------------------------------------------------------------- /Img~/skyBandit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/skyBandit.gif -------------------------------------------------------------------------------- /Img~/skySurfing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/skySurfing.gif -------------------------------------------------------------------------------- /Img~/transform_anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/transform_anchor.png -------------------------------------------------------------------------------- /Img~/transform_anchor.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05a1d8c344ae24f6a9018bf1c9256e09 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /Img~/viewelement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/viewelement.png -------------------------------------------------------------------------------- /Img~/viewelement.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a349a0235d2c489cac4f79449fe438b 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /Img~/viewelement_animation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/viewelement_animation.png -------------------------------------------------------------------------------- /Img~/viewelementgroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/viewelementgroup.png -------------------------------------------------------------------------------- /Img~/viewelementgroup.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9663ed9386bd149a6be73e72389f3751 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /Img~/viewelementgroup_manual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/viewelementgroup_manual.png -------------------------------------------------------------------------------- /Img~/viewelementgroup_manual.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 17988f7d22bfc4d36b9e46b1cb8c622e 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /Img~/viewelementlifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/viewelementlifecycle.png -------------------------------------------------------------------------------- /Img~/viewelementlifecycle.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0ad5e2f4afc741868f846c435df6998 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /Img~/viewelementoverride.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/viewelementoverride.png -------------------------------------------------------------------------------- /Img~/viewmarginfixer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/Img~/viewmarginfixer.png -------------------------------------------------------------------------------- /Img~/viewmarginfixer.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2bfad4380bfb478181285a0bdf497e9 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Macaca Games 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 941f0030ff81744f792e4c4d562a4053 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | ## Use case 3 | 4 | 5 | 6 | 7 | ## Introduction 8 | **ViewSystem** is a element based UI management system based on Unity GUI. It is developed and used by Macaca Games. 9 | UI management in Unity3D is always a hard work, the goal of **ViewSystem** is to make UI management more easier and flexable. 10 | 11 | ### Feature 12 | - Element based UI manager system 13 | - UI Element pooling system 14 | - Property and Event override in runtime 15 | - Node based editor 16 | 17 | ## How It Works 18 | ### ViewElement 19 | ViewElement is the base unit in ViewSystem, any item shows on an UI page can be a ViewElement, such as a button, a icon or anything else. 20 | 21 | For example, the red square part in the screenshot is a ViewElement. 22 | 23 | 24 | 25 | And the most important thing, ViewElement only focus how it will show or leave and **doesn't** care where it will be placed. 26 | 27 | Currently, there are 5 methods to show or leave a ViewElement: `Animator`, `Canvas Group Alpha`, `Active Switch`, `ViewElement Animation`, `Custom`. For more details, check [ViewElement Transition](/docs/Fundamentals.md#viewelement-trasition). 28 | 29 | 30 | ### ViewPage 31 | ViewPage compose with one or more ViewElements and define where the ViewElements should be placed. Base on it's default behaviour there is two kind of ViewPage : FullPage, OverlayPage. 32 | 33 | - FullPage 34 | 35 | The basic type of ViewPage, the system only allow one FullPage shows on the screen at the same time. 36 | When the ChangePage action is fire, system will leave all ViewElements defined in last FullPage and then show the ViewElements defined in next FullPage. 37 | 38 | - OverlayPage 39 | 40 | Sometimes we may wants an UI page shows and covered current screen, the OverlayPage can helps to implement the feature. 41 | This is very useful when making Dialog, LoadingView ect. 42 | 43 | OverlayPage allow to shows more than one page in the same time, each OverlayPage maintain it's own lifecycle. 44 | 45 | > Currently, different OverlayPage can be show in the same time, but the same OverlayPage still has only one instance the duplicate call to shows an OverlayPage which is already on the screen is not allowed and the call will be ignore, but if you wish to replay the show animation in the ViewElement you can set the parameter **ReShowWhileSamePage** to True while calling the ShowOverlayPage API. 46 | 47 | ### ViewState 48 | ViewState is similar as ViewPage, ViewState can define the duplicate part in two or more ViewPage. 49 | 50 | Each ViewPage can setup at most one ViewState. 51 | 52 | And also the ViewElements define in ViewState will not be update until the ViewState is changed. 53 | 54 | ### ViewController 55 | ViewController is the core component of ViewSystem, all control of the UI is base on this component. 56 | 57 | 58 | 59 | 60 | 61 | ## Links 62 | 63 | ### [Document](https://macacagames.github.io/MacacaViewSystemDocs/). 64 | 65 | ### [Demo Unity project](https://github.com/MacacaGames/ViewSystemExample) 66 | 67 | ### [Script API](https://macacagames.github.io/MacacaViewSystem/api/MacacaGames.ViewSystem.html) 68 | -------------------------------------------------------------------------------- /README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 533a2571d823b48e091ee4162aa11720 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 230d1b7c9ab2142b4b5c18b466682515 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/Attribute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a565da42aa1148c6923605807501ae4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/Attribute/AutoOverrideAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8f047df44cca4bb782afd02de0632a8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Attribute/ViewSystemAttribute.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | #if UNITY_EDITOR 3 | using UnityEditor; 4 | #endif 5 | 6 | namespace MacacaGames.ViewSystem 7 | { 8 | public class ReadOnlyAttribute : PropertyAttribute { } 9 | #if UNITY_EDITOR 10 | [CustomPropertyDrawer(typeof(ReadOnlyAttribute))] 11 | public class ReadOnlyDrawer : PropertyDrawer 12 | { 13 | public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) 14 | { 15 | GUI.enabled = false; 16 | EditorGUI.PropertyField(position, property, label, true); 17 | GUI.enabled = true; 18 | } 19 | 20 | public override float GetPropertyHeight(SerializedProperty property, GUIContent label) 21 | { 22 | return EditorGUI.GetPropertyHeight(property, label, true); 23 | } 24 | } 25 | #endif 26 | [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple = true)] 27 | [System.Obsolete("ViewEventGroup is change to ViewSystemEvent", true)] 28 | public class ViewEventGroup : System.Attribute 29 | { 30 | string groupName; 31 | public ViewEventGroup(string groupName) 32 | { 33 | this.groupName = groupName; 34 | } 35 | 36 | public string GetGroupName() 37 | { 38 | return groupName; 39 | } 40 | } 41 | 42 | [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple = true)] 43 | public class ViewSystemEventAttribute : System.Attribute 44 | { 45 | string groupName; 46 | public ViewSystemEventAttribute() 47 | { 48 | this.groupName = "Default"; 49 | } 50 | public ViewSystemEventAttribute(string groupName) 51 | { 52 | this.groupName = groupName; 53 | } 54 | public string GetGroupName() 55 | { 56 | return groupName; 57 | } 58 | } 59 | 60 | 61 | /// 62 | /// Mark a property or field in ViewElementBehaviour that can be inject value which is managed by ViewSystem. 63 | /// 64 | /// Use the injectScope the control where the value will be search 65 | /// 66 | /// PageModel, the page model is send when you call the ChangePage API. 67 | /// SharedModel, the system shareed model, use the ViewController.Instance.RegisteSharedViewElementModel() the registe the system model. 68 | /// 69 | /// InjectScope.PageFirst : Search the value from the PageModel first and then SharedModel 70 | /// InjectScope.PageOnly : Search the value from the PageModel only. 71 | /// InjectScope.SharedFirst : Search the value from the SharedModel first, and then PageModel, 72 | /// InjectScope.SharedOnly : Search the value from the SharedModel only. 73 | /// 74 | /// Default is InjectScope.PageFirst 75 | /// 76 | /// 77 | [System.AttributeUsage(System.AttributeTargets.Property | System.AttributeTargets.Field, AllowMultiple = true)] 78 | public class ViewElementInjectAttribute : System.Attribute 79 | { 80 | internal InjectScope injectScope = InjectScope.PageFirst; 81 | public ViewElementInjectAttribute(InjectScope injectScope) 82 | { 83 | this.injectScope = injectScope; 84 | } 85 | 86 | public ViewElementInjectAttribute() 87 | { 88 | injectScope = InjectScope.PageFirst; 89 | } 90 | } 91 | public enum InjectScope 92 | { 93 | PageFirst, 94 | SharedFirst, 95 | PageOnly, 96 | SharedOnly, 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Runtime/Attribute/ViewSystemAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 099cf445c852b487dbab8f1bf90dc1d9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Attribute/ViewSystemDropdownAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace MacacaGames.ViewSystem 5 | { 6 | [AttributeUsage(AttributeTargets.Field, Inherited = true, AllowMultiple = false)] 7 | public class ViewSystemDropdownAttribute : PropertyAttribute 8 | { 9 | // This is a marker attribute, so it's empty 10 | } 11 | } -------------------------------------------------------------------------------- /Runtime/Attribute/ViewSystemDropdownAttribute.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5ee97b637401824f97b282e6dc0fb87 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: efd574a56dce6468e89768db116acc6d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/Components/NestedViewElement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f2bb546ae68a47c4ac2b8525040f653 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/SafePadding.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31b60c96705464af6befc9105759e6c5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: cb6915bcf8889408ba4eaf907e5d3913, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c3d0e97d20ea454ab7ba9babe7c84fa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: 4ebbb3f3f2cc24da3af2e651b565fef0, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElementAnimation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | namespace MacacaGames.ViewSystem 6 | { 7 | [RequireComponent(typeof(ViewElement))] 8 | public class ViewElementAnimation : MonoBehaviour 9 | { 10 | [SerializeField] 11 | [Header("By defalut the system use the ViewElement itself as the target, but you can override here.")] 12 | RectTransform overrideTarget; 13 | 14 | [SerializeField] 15 | ViewElementAnimationGroup inAnimation; 16 | [SerializeField] 17 | ViewElementAnimationGroup outAnimation; 18 | 19 | public RectTransform targetObject 20 | { 21 | get 22 | { 23 | if (overrideTarget != null) 24 | { 25 | return overrideTarget; 26 | } 27 | return viewElement.rectTransform; 28 | } 29 | } 30 | 31 | ViewElement _viewElement; 32 | 33 | internal ViewElement viewElement 34 | { 35 | get 36 | { 37 | if (_viewElement == null) 38 | { 39 | _viewElement = GetComponent(); 40 | } 41 | return _viewElement; 42 | } 43 | } 44 | 45 | public bool IsOverrideTarget 46 | { 47 | get 48 | { 49 | return overrideTarget != null && overrideTarget != viewElement.rectTransform; 50 | } 51 | } 52 | 53 | public float GetInDuration() 54 | { 55 | return inAnimation.GetDuration(); 56 | } 57 | 58 | public float GetOutDuration() 59 | { 60 | return outAnimation.GetDuration(); 61 | } 62 | 63 | public IEnumerator PlayIn(Action value) 64 | { 65 | return inAnimation.Play(targetObject, value); 66 | } 67 | 68 | public IEnumerator PlayOut(Action value) 69 | { 70 | return outAnimation.Play(targetObject, value); 71 | } 72 | 73 | #if UNITY_EDITOR 74 | // void OnValidate() 75 | // { 76 | // if (overrideTarget == viewElement.rectTransform) 77 | // { 78 | // overrideTarget = null; 79 | // } 80 | 81 | // } 82 | #endif 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElementAnimation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b9e9c3ea7df1f4d9da2d8dd4ea696a89 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElementBehaviour.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace MacacaGames.ViewSystem 6 | { 7 | public class ViewElementBehaviour : MonoBehaviour, IViewElementLifeCycle 8 | { 9 | [SerializeField] 10 | public UnityEngine.Events.UnityEvent OnBeforeLeaveHandler; 11 | [SerializeField] 12 | public UnityEngine.Events.UnityEvent OnBeforeShowHandler; 13 | [SerializeField] 14 | public UnityEngine.Events.UnityEvent OnStartLeaveHandler; 15 | [SerializeField] 16 | public UnityEngine.Events.UnityEvent OnStartShowHandler; 17 | [SerializeField] 18 | public UnityEngine.Events.UnityEvent OnChangedPageHandler; 19 | [SerializeField] 20 | public BoolEvent OnChangePageHandler; 21 | 22 | [System.Serializable] 23 | public class BoolEvent : UnityEngine.Events.UnityEvent { } 24 | 25 | /// 26 | /// Invoke Before the ViewElement is Leave, but after OnLeave delay 27 | /// 28 | public virtual void OnBeforeLeave() 29 | { 30 | OnBeforeLeaveHandler?.Invoke(); 31 | } 32 | /// 33 | /// Invoke Before the ViewElement is Show, but after OnShow delay 34 | /// 35 | public virtual void OnBeforeShow() 36 | { 37 | OnBeforeShowHandler?.Invoke(); 38 | } 39 | 40 | public virtual void OnChangePage(bool show) 41 | { 42 | OnChangePageHandler?.Invoke(show); 43 | } 44 | 45 | public virtual void OnStartLeave() 46 | { 47 | //throw new System.NotImplementedException(); 48 | OnStartLeaveHandler?.Invoke(); 49 | } 50 | 51 | public virtual void OnStartShow() 52 | { 53 | //throw new System.NotImplementedException(); 54 | OnStartShowHandler?.Invoke(); 55 | } 56 | /// 57 | /// Invoke Before the ViewElement is Leave, but after OnLeave delay 58 | /// 59 | public virtual void OnChangedPage() 60 | { 61 | OnChangedPageHandler?.Invoke(); 62 | } 63 | 64 | /// 65 | /// Invoke while the ViewController.Instance.RefreshAll(); is call; 66 | /// 67 | public virtual void RefreshView() 68 | { 69 | 70 | } 71 | 72 | ViewElement viewElement; 73 | protected virtual void Awake() 74 | { 75 | viewElement = GetComponent(); 76 | if (viewElement == null) 77 | { 78 | viewElement = GetComponentInParent(); 79 | if (viewElement) 80 | { 81 | viewElement.RegisterLifeCycleObject(this); 82 | } 83 | } 84 | } 85 | 86 | protected virtual void OnDestroy() 87 | { 88 | if (viewElement) 89 | viewElement.UnRegisterLifeCycleObject(this); 90 | } 91 | 92 | } 93 | } -------------------------------------------------------------------------------- /Runtime/Components/ViewElementBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d70b80b53e8394fdaa03e04b476a2097 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElementGroup.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using UnityEngine; 5 | namespace MacacaGames.ViewSystem 6 | { 7 | [DisallowMultipleComponent] 8 | public class ViewElementGroup : MonoBehaviour 9 | { 10 | [HideInInspector] 11 | public ViewElement viewElement; 12 | List childViewElements = new List(); 13 | void Awake() 14 | { 15 | SetupChild(); 16 | } 17 | 18 | public IEnumerable GetChildElement() 19 | { 20 | return childViewElements; 21 | } 22 | public bool OnlyManualMode = false; 23 | public void SetupChild() 24 | { 25 | viewElement = GetComponent(); 26 | 27 | var childViewElementGroups = GetComponentsInChildren() 28 | .Where(m => m != this); 29 | 30 | foreach (var item in childViewElementGroups) 31 | { 32 | item.SetupChild(); 33 | } 34 | 35 | childViewElements = GetComponentsInChildren() 36 | .Where(m => m != viewElement) 37 | .ToList(); 38 | 39 | //Remove the item which is a child of Other ViewElementGroup 40 | var viewElementsInChildGroup = childViewElementGroups.Select(m => m.childViewElements); 41 | foreach (var item in viewElementsInChildGroup) 42 | { 43 | foreach (var ve in item) 44 | { 45 | childViewElements.RemoveAll(m => m == ve); 46 | } 47 | } 48 | 49 | } 50 | 51 | public void OnShowChild() 52 | { 53 | childViewElements.RemoveAll(m => m == null); 54 | // childViewElementGroups.RemoveAll(m => m == null); 55 | 56 | if (childViewElements.Count == 0) 57 | { 58 | //ViewSystemLog.LogWarning("Target ViewElementGroup doesn't contain child ViewElement, Nothing will happend"); 59 | return; 60 | } 61 | foreach (var item in childViewElements) 62 | { 63 | item.OnShow(); 64 | } 65 | 66 | } 67 | 68 | public void OnLeaveChild(bool ignoreTransition = false) 69 | { 70 | childViewElements.RemoveAll(m => m == null); 71 | if (childViewElements.Count == 0) 72 | { 73 | //ViewSystemLog.LogWarning("Target ViewElementGroup doesn't contain child ViewElement, Nothing will happend"); 74 | return; 75 | } 76 | foreach (var item in childViewElements) 77 | { 78 | item.OnLeave(false, ignoreTransition); 79 | } 80 | } 81 | 82 | public float GetOutDuration() 83 | { 84 | if (childViewElements.Count == 0) 85 | { 86 | return 0; 87 | } 88 | return childViewElements.Max(m => m.GetOutDuration()); 89 | } 90 | //GetOutAnimationLength in NestedViewElement is the longest animation length in child 91 | public float GetInDuration() 92 | { 93 | if (childViewElements.Count == 0) 94 | { 95 | return 0; 96 | } 97 | return childViewElements.Max(m => m.GetInDuration()); 98 | } 99 | } 100 | } -------------------------------------------------------------------------------- /Runtime/Components/ViewElementGroup.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c160cdbd05713425ea73b20814d124df 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {fileID: 2800000, guid: d082db33647ca4452844735117862045, type: 3} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElementLifeCycle.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | 6 | namespace MacacaGames.ViewSystem 7 | { 8 | [System.Obsolete("ViewElementLifeCycle is obsolete, use ViewElementBehaviour instead")] 9 | public class ViewElementLifeCycle : ViewElementBehaviour { } 10 | } -------------------------------------------------------------------------------- /Runtime/Components/ViewElementLifeCycle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89f76deb61c9c445680a9a981012eff6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElementOverrideHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using MacacaGames.ViewSystem; 4 | using UnityEngine; 5 | using System.Linq; 6 | namespace MacacaGames.ViewSystem 7 | { 8 | 9 | public class ViewElementOverrideHelper : MonoBehaviour 10 | { 11 | public ViewElementOverride overrideData; 12 | } 13 | 14 | } -------------------------------------------------------------------------------- /Runtime/Components/ViewElementOverrideHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3edf588130b8b4f17bf3e7f4bec38b5d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElementPool.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | [ExecuteInEditMode] 5 | public class ViewElementPool : TransformCacheBase 6 | { 7 | public bool EnableWidthAndHeightSyneInEditorMode = false; 8 | Canvas _canvas; 9 | Canvas canvas 10 | { 11 | get 12 | { 13 | if (_canvas == null) 14 | { 15 | _canvas = (Canvas)FindObjectOfType(typeof(Canvas)); 16 | } 17 | return _canvas; 18 | } 19 | } 20 | RectTransform _canvasRectTransform; 21 | RectTransform canvasRectTransform 22 | { 23 | get 24 | { 25 | if (_canvasRectTransform == null) 26 | { 27 | _canvasRectTransform = canvas.GetComponent(); 28 | } 29 | return _canvasRectTransform; 30 | } 31 | } 32 | RectTransform _rectTransform; 33 | public RectTransform rectTransform 34 | { 35 | get 36 | { 37 | if (_rectTransform == null) 38 | { 39 | _rectTransform = GetComponent(); 40 | } 41 | return _rectTransform; 42 | } 43 | } 44 | // Use this for initialization 45 | 46 | float oriX; 47 | float oriY; 48 | 49 | void Start() 50 | { 51 | oriX = canvasRectTransform.sizeDelta.x; 52 | oriY = canvasRectTransform.sizeDelta.y; 53 | // canvasRectTransform.ObserveEveryValueChanged(m => m.sizeDelta).Subscribe( 54 | // (s) => 55 | // { 56 | // rectTransform.sizeDelta = new Vector2(s.x, s.y); 57 | // } 58 | // ); 59 | } 60 | 61 | void Update() 62 | { 63 | if (oriX != canvasRectTransform.sizeDelta.x || 64 | oriY != canvasRectTransform.sizeDelta.y) 65 | { 66 | rectTransform.sizeDelta = new Vector2(canvasRectTransform.sizeDelta.x, canvasRectTransform.sizeDelta.y); 67 | oriX = canvasRectTransform.sizeDelta.x; 68 | oriY = canvasRectTransform.sizeDelta.y; 69 | } 70 | } 71 | #if UNITY_EDITOR 72 | void OnGUI() 73 | { 74 | if (EnableWidthAndHeightSyneInEditorMode == true) 75 | rectTransform.sizeDelta = new Vector2(canvasRectTransform.sizeDelta.x, canvasRectTransform.sizeDelta.y); 76 | } 77 | 78 | #endif 79 | } 80 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElementPool.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 51c76a197f3e248ee955a4f1b8b34a02 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewElementRuntimePool.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dcac48cf784184654b6820c6db403264 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewMarginFixer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03b7a7388fe1690469f03cc7e12cfbf7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewRuntimeOverride.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ede83f85a21245409d22b25cc07f4ed 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Components/ViewSystemLayoutRebuilder.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using MacacaGames; 5 | using UnityEngine.UI; 6 | 7 | namespace MacacaGames.ViewSystem 8 | { 9 | [ExecuteInEditMode] 10 | public class ViewSystemLayoutRebuilder : MonoBehaviour, IViewElementLifeCycle 11 | { 12 | 13 | RectTransform rectTransform 14 | { 15 | get 16 | { 17 | if (_rectTransform == null) 18 | { 19 | _rectTransform = GetComponent(); 20 | } 21 | return _rectTransform; 22 | } 23 | } 24 | RectTransform _rectTransform; 25 | 26 | // Use this for initialization 27 | public void OnBeforeShow() 28 | { 29 | } 30 | 31 | public void OnBeforeLeave() 32 | { 33 | } 34 | 35 | public void OnStartShow() 36 | { 37 | StartCoroutine(RebuildLayout()); 38 | } 39 | 40 | IEnumerator RebuildLayout() 41 | { 42 | yield return null; 43 | LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform); 44 | } 45 | 46 | public void OnStartLeave() 47 | { 48 | } 49 | 50 | public void OnChangePage(bool show) 51 | { 52 | } 53 | 54 | public void OnChangedPage() 55 | { 56 | } 57 | public void RefreshView() { } 58 | } 59 | } -------------------------------------------------------------------------------- /Runtime/Components/ViewSystemLayoutRebuilder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 47af51e49326e7045996040a8d74654a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/HandyScripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 999bcce242ca6be459cfb8550adbc993 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/HandyScripts/Button.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d3f46c6e6d376f448b235dccd304cf5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/HandyScripts/Button/SimpleChangePageButton.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | namespace MacacaGames.ViewSystem 5 | { 6 | [RequireComponent(typeof(Button))] 7 | public class SimpleChangePageButton : MonoBehaviour 8 | { 9 | [SerializeField, ViewSystemDropdown] private string pageName; 10 | Button _button; 11 | 12 | Button button 13 | { 14 | get 15 | { 16 | if (_button == null) 17 | { 18 | _button = GetComponent(); 19 | } 20 | 21 | return _button; 22 | } 23 | } 24 | 25 | void Awake() 26 | { 27 | button.onClick.AddListener(() => { ChangePage(); }); 28 | } 29 | 30 | void ChangePage() 31 | { 32 | ViewController.Instance.ChangePage(pageName); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Runtime/HandyScripts/Button/SimpleChangePageButton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 303ff0cd030931e49a98b66dcc3e2292 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/HandyScripts/Button/SimpleLeaveOverlayPageButton.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | namespace MacacaGames.ViewSystem 5 | { 6 | [RequireComponent(typeof(Button))] 7 | public class SimpleLeaveOverlayPageButton : MonoBehaviour 8 | { 9 | [SerializeField, ViewSystemDropdown] private string pageName; 10 | 11 | Button _button; 12 | 13 | Button button 14 | { 15 | get 16 | { 17 | if (_button == null) 18 | { 19 | _button = GetComponent(); 20 | } 21 | 22 | return _button; 23 | } 24 | } 25 | 26 | void Awake() 27 | { 28 | button.onClick.AddListener(() => { LeaveOverlayPage(); }); 29 | } 30 | 31 | void LeaveOverlayPage() 32 | { 33 | ViewController.Instance.LeaveOverlayViewPage(pageName); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Runtime/HandyScripts/Button/SimpleLeaveOverlayPageButton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b498fa9789281d48be1ed8c8f91bab3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/HandyScripts/Button/SimpleShowOverlayPageButton.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | 4 | namespace MacacaGames.ViewSystem 5 | { 6 | [RequireComponent(typeof(Button))] 7 | public class SimpleShowOverlayPageButton : MonoBehaviour 8 | { 9 | [SerializeField, ViewSystemDropdown] private string pageName; 10 | Button _button; 11 | 12 | Button button 13 | { 14 | get 15 | { 16 | if (_button == null) 17 | { 18 | _button = GetComponent(); 19 | } 20 | 21 | return _button; 22 | } 23 | } 24 | 25 | void Awake() 26 | { 27 | button.onClick.AddListener(() => { OpenOverlayPage(); }); 28 | } 29 | 30 | void OpenOverlayPage() 31 | { 32 | ViewController.Instance.ShowOverlayViewPage(pageName); 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Runtime/HandyScripts/Button/SimpleShowOverlayPageButton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f92dffa0ab066a458b2a385d0022fb7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Interface.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4eeb04fea5304d0783870b4910e63b6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/Interface/IViewElementLifeCycle.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | namespace MacacaGames.ViewSystem 5 | { 6 | public interface IViewElementLifeCycle 7 | { 8 | /// 9 | /// While the ViewElement prepare to Show 10 | /// 11 | void OnBeforeShow(); 12 | /// 13 | /// While the ViewElement prepare to Leave 14 | /// 15 | void OnBeforeLeave(); 16 | /// 17 | /// While the ViewElement start to Show 18 | /// 19 | void OnStartShow(); 20 | /// 21 | /// While the ViewElement start to Leave 22 | /// 23 | void OnStartLeave(); 24 | /// 25 | /// While the ChangePage method on ViewElement has been called. 26 | /// 27 | void OnChangePage(bool show); 28 | /// 29 | /// While the ViewPage is Changed on ViewController. 30 | /// 31 | void OnChangedPage(); 32 | 33 | void RefreshView(); 34 | } 35 | } -------------------------------------------------------------------------------- /Runtime/Interface/IViewElementLifeCycle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6adffe62043534a0da3cc30a14b4ecd3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Interface/IViewElementOverrideListener.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | namespace MacacaGames.ViewSystem 5 | { 6 | public interface IViewElementOverrideListener 7 | { 8 | void OnApplyOverride(); 9 | } 10 | } -------------------------------------------------------------------------------- /Runtime/Interface/IViewElementOverrideListener.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7c29d95b2d164973bcdf292ecc86050 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Interface/IViewElementSingleton.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | namespace MacacaGames.ViewSystem 5 | { 6 | public interface IViewElementSingleton 7 | { } 8 | [System.Obsolete("IViewElementInjectable is obsolete, use IViewElementSingleton instead")] 9 | public interface IViewElementInjectable : IViewElementSingleton 10 | { } 11 | } -------------------------------------------------------------------------------- /Runtime/Interface/IViewElementSingleton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd04edee38fc1487c849bc38167bf11d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Macaca.ViewSystem.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Macaca.ViewSystem", 3 | "references": [ 4 | "UnityEngine.UI", 5 | "Macaca.Utility" 6 | ], 7 | "includePlatforms": [], 8 | "excludePlatforms": [], 9 | "allowUnsafeCode": false, 10 | "overrideReferences": false, 11 | "precompiledReferences": [ 12 | "DemiLib.dll", 13 | "DOTween.dll" 14 | ], 15 | "autoReferenced": true, 16 | "defineConstraints": [], 17 | "versionDefines": [], 18 | "noEngineReferences": false 19 | } -------------------------------------------------------------------------------- /Runtime/Macaca.ViewSystem.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e60f9431aa00b48e9b10c7f919222758 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Runtime/MicroCoroutine.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | 5 | namespace MacacaGames.ViewSystem 6 | { 7 | /// 8 | /// Simple supports(only yield return null) lightweight, threadsafe coroutine dispatcher. 9 | /// 10 | public class MicroCoroutine 11 | { 12 | public class Coroutine : IDisposable 13 | { 14 | public Coroutine(IEnumerator ie) 15 | { 16 | this.ie = ie; 17 | } 18 | public IEnumerator ie; 19 | 20 | public void Dispose() 21 | { 22 | // throw new NotImplementedException(); 23 | } 24 | } 25 | List coroutines = new List(); 26 | readonly Action unhandledExceptionCallback; 27 | bool running = false; 28 | public Coroutine AddCoroutine(IEnumerator enumerator) 29 | { 30 | // Move Next first, if false means the coroutine is complete or empty, so we don't need to add to MicroCoroutine 31 | if (enumerator.MoveNext()) 32 | { 33 | var c = new Coroutine(enumerator); 34 | coroutines.Add(c); 35 | return c; 36 | } 37 | return null; 38 | } 39 | Queue removeQueue = new Queue(); 40 | 41 | public bool IsEmpty 42 | { 43 | get 44 | { 45 | return coroutines == null || coroutines.Count == 0; 46 | } 47 | } 48 | 49 | public void RemoveCoroutine(Coroutine enumerator) 50 | { 51 | if (running) 52 | { 53 | removeQueue.Enqueue(enumerator); 54 | } 55 | else 56 | { 57 | coroutines.Remove(enumerator); 58 | } 59 | } 60 | public MicroCoroutine(Action unhandledExceptionCallback) 61 | { 62 | this.unhandledExceptionCallback = unhandledExceptionCallback; 63 | } 64 | public void Update() 65 | { 66 | running = true; 67 | for (int i = 0; i < coroutines.Count; i++) 68 | { 69 | var coroutine = coroutines[i]; 70 | if (coroutine != null && coroutine.ie != null) 71 | { 72 | try 73 | { 74 | if (!coroutine.ie.MoveNext()) 75 | { 76 | coroutines[i] = null; 77 | } 78 | else 79 | { 80 | #if UNITY_EDITOR 81 | // validation only on Editor. 82 | if (coroutine.ie.Current != null) 83 | { 84 | UnityEngine.Debug.LogWarning("MicroCoroutine supports only yield return null. return value = " + coroutine.ie.Current); 85 | } 86 | #endif 87 | continue; // next i 88 | } 89 | } 90 | catch (Exception ex) 91 | { 92 | coroutines[i] = null; 93 | try 94 | { 95 | unhandledExceptionCallback(ex); 96 | } 97 | catch { } 98 | } 99 | } 100 | } 101 | running = false; 102 | while (removeQueue.Count > 0) 103 | { 104 | var e = removeQueue.Dequeue(); 105 | coroutines.Remove(e); 106 | e = null; 107 | } 108 | coroutines.RemoveAll(match => match == null); 109 | } 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /Runtime/MicroCoroutine.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 45afdf3de17244812b9ed62836ceac43 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Models.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8eed07bcb75e14f4ca2cd36f2665e2b0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/Models/SaveData.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 397fdc5ad68bb4d6794c25f7f0229043 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/Models/SaveData/ViewPageNodeSaveData.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | namespace MacacaGames.ViewSystem 5 | { 6 | public class ViewPageNodeSaveData : ScriptableObject 7 | { 8 | public ViewPageSaveData data; 9 | } 10 | } -------------------------------------------------------------------------------- /Runtime/Models/SaveData/ViewPageNodeSaveData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bfc96180cc9464cce899301591c0e0ba 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Models/SaveData/ViewStateNodeSaveData.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | namespace MacacaGames.ViewSystem 5 | { 6 | public class ViewStateNodeSaveData : ScriptableObject 7 | { 8 | public ViewStateSaveData data; 9 | 10 | 11 | } 12 | } -------------------------------------------------------------------------------- /Runtime/Models/SaveData/ViewStateNodeSaveData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0831a4d40a9254b1e9c5902659896d75 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Models/SaveData/ViewSystemSaveData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ce455f0829d84882be7046fe9359add 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Models/ViewElementAnimationGroupAsset.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | namespace MacacaGames.ViewSystem 5 | { 6 | public class ViewElementAnimationGroupAsset : ScriptableObject 7 | { 8 | public ViewElement targetViewElement; 9 | [SerializeField] 10 | public ViewElementAnimationGroup viewElementAnimationGroup; 11 | } 12 | 13 | } -------------------------------------------------------------------------------- /Runtime/Models/ViewElementAnimationGroupAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: de28de762de6a442ead967a7cbb3f864 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Models/ViewElementAnimationModel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 902ef822b0168448581f84888838b35d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Models/ViewElementOverrideAsset.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | namespace MacacaGames.ViewSystem 5 | { 6 | public class ViewElementOverrideAsset : ScriptableObject 7 | { 8 | public ViewElement targetViewElement; 9 | public List viewElementOverride; 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /Runtime/Models/ViewElementOverrideAsset.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 684c0668542274c9bb49a9c7ec0a4e60 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Models/ViewPageModel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4c76309070804f3c8c05177decfa7ef 3 | timeCreated: 1522140307 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Runtime/Utilities.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1bb0b9b563d494e49b454e0f9c207a0f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/Utilities/PageChanger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21027d47ca4a54f7986baeab45f7b5e3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Utilities/ViewElementRequestedPool.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99d96e30bd9e6eb4da5c077f6ea8cab4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Utilities/ViewInjectDictionary.cs: -------------------------------------------------------------------------------- 1 | 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | 5 | 6 | public abstract class ViewInjectDictionary 7 | { 8 | public abstract object GetValue(string key); 9 | public abstract void TryAdd(string key, object value); 10 | public abstract bool ContainsKey(string key); 11 | } 12 | 13 | /// 14 | /// A official custom wrapper for ViewSystem model binding when there are multiple instance of a type whould like to sent to a ViewElementBehaviour. 15 | /// 16 | /// For instance, the ViewElementBehaviour is defined like this 17 | /// public class MyViewBehaviour: ViewElementBehaviour{ 18 | /// 19 | /// [ViewElementInject] 20 | /// string testStringInject1; 21 | /// [ViewElementInject] 22 | /// string testStringInject2; 23 | /// 24 | /// } 25 | /// 26 | /// This cause runtime error! Due you set one kind type (stirng) twice 27 | /// ViewController.FullPageChanger() 28 | /// .SetPage("MyPage") 29 | /// .SetPageModel("value1", "value2"); 30 | /// 31 | /// Use this way instead! 32 | /// var datas = new ViewInjectDictionary(); 33 | /// datas.TryAdd("testStringInject1", "value1"); // The Key is the field/property name, the value is the value to set 34 | /// datas.TryAdd("testStringInject2", "value2"); // The Key is the field/property name, the value is the value to set 35 | /// ViewController.FullPageChanger() 36 | /// .SetPage("MyPage") 37 | /// .SetPageModel(datas); 38 | /// 39 | /// /// /// 40 | /// The target type 41 | public class ViewInjectDictionary : ViewInjectDictionary 42 | { 43 | Dictionary dictionary = new Dictionary(); 44 | 45 | public override bool ContainsKey(string key) 46 | { 47 | return dictionary.ContainsKey(key); 48 | } 49 | 50 | public override object GetValue(string key) 51 | { 52 | if (dictionary.TryGetValue(key, out T result)) 53 | { 54 | return result; 55 | } 56 | return null; 57 | } 58 | 59 | public override void TryAdd(string key, object value) 60 | { 61 | dictionary.TryAdd(key, (T)value); 62 | } 63 | } -------------------------------------------------------------------------------- /Runtime/Utilities/ViewInjectDictionary.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: efe797c6bdc69423e96f1cdf535f581c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Utilities/ViewStateBehaviour.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using MacacaGames.ViewSystem; 5 | public class ViewStateBehaviour : StateMachineBehaviour 6 | { 7 | static Dictionary veDict = new Dictionary(); 8 | override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) 9 | { 10 | if(animator.IsInTransition(0) || !stateInfo.IsName("Disable")) 11 | return; 12 | 13 | ViewElement viewElement; 14 | if (!veDict.TryGetValue(animator.gameObject.GetInstanceID(), out viewElement)) 15 | { 16 | viewElement = animator.GetComponentInParent(); 17 | veDict.Add(animator.gameObject.GetInstanceID(),viewElement); 18 | } 19 | 20 | //viewElement.OnLeaveAnimationFinish(); 21 | } 22 | // override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) 23 | // { 24 | // } 25 | // override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) 26 | // { 27 | // } 28 | // override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) 29 | // { 30 | // } 31 | // override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) 32 | // { 33 | // } 34 | } 35 | -------------------------------------------------------------------------------- /Runtime/Utilities/ViewStateBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 843906b9ef6224b02bb44541c89b31b8 3 | timeCreated: 1524037853 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Runtime/Utilities/ViewSystemLog.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class ViewSystemLog 6 | { 7 | const string viewsystemloghead = "[View System] "; 8 | public static void Log(object msg, Object context) 9 | { 10 | Debug.Log(viewsystemloghead + msg, context); 11 | } 12 | public static void LogWarning(object msg, Object context) 13 | { 14 | Debug.LogWarning(viewsystemloghead + msg, context); 15 | } 16 | public static void LogError(object msg, Object context) 17 | { 18 | Debug.LogError(viewsystemloghead + msg, context); 19 | } 20 | public static void Log(object msg) 21 | { 22 | Log(msg, null); 23 | } 24 | public static void LogWarning(object msg) 25 | { 26 | LogWarning(msg, null); 27 | } 28 | public static void LogError(object msg) 29 | { 30 | LogError(msg, null); 31 | } 32 | #if UNITY_EDITOR 33 | public static void ShowNotification(UnityEditor.EditorWindow editor, GUIContent content, float time = 2) 34 | { 35 | #if UNITY_2019_1_OR_NEWER 36 | editor.ShowNotification(content, time); 37 | #else 38 | editor.ShowNotification(content); 39 | #endif 40 | } 41 | #endif 42 | 43 | 44 | } 45 | -------------------------------------------------------------------------------- /Runtime/Utilities/ViewSystemLog.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c90e4867062d4a7b90f74e6f3923c21 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/Utilities/ViewSystemUtilitys.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6cefd472abdf64689813d2f2c41b97d2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/ViewController.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c8e72060ec2f4960bdebfe5e804c3fb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Runtime/ViewController/ViewController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26f486bbf079242c99f9d0a6d9d951a3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: -5000 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/ViewController/ViewControllerBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd37d6a287843475ba687f4fb7e4687e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Runtime/ViewController/ViewControllerObsolete.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94872c4e7d71c474a8ff9df9fce34715 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /docs~/Img~/changepage_lifecycle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/Img~/changepage_lifecycle.jpg -------------------------------------------------------------------------------- /docs~/Img~/changepage_lifecycle.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 738ff52fb5ef54344928cdbca7c57cb9 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /docs~/Img~/how_to_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/Img~/how_to_1.png -------------------------------------------------------------------------------- /docs~/Img~/how_to_1.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2849dab7679404583b857a8515877e48 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /docs~/Img~/how_to_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/Img~/how_to_2.png -------------------------------------------------------------------------------- /docs~/Img~/transform_anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/Img~/transform_anchor.png -------------------------------------------------------------------------------- /docs~/Img~/transform_anchor.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05a1d8c344ae24f6a9018bf1c9256e09 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /docs~/Img~/viewelement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/Img~/viewelement.png -------------------------------------------------------------------------------- /docs~/Img~/viewelement.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a349a0235d2c489cac4f79449fe438b 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /docs~/Img~/viewelementgroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/Img~/viewelementgroup.png -------------------------------------------------------------------------------- /docs~/Img~/viewelementgroup.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9663ed9386bd149a6be73e72389f3751 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /docs~/Img~/viewelementgroup_manual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/Img~/viewelementgroup_manual.png -------------------------------------------------------------------------------- /docs~/Img~/viewelementgroup_manual.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 17988f7d22bfc4d36b9e46b1cb8c622e 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /docs~/Img~/viewelementlifecycle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/Img~/viewelementlifecycle.png -------------------------------------------------------------------------------- /docs~/Img~/viewelementlifecycle.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0ad5e2f4afc741868f846c435df6998 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /docs~/Img~/viewmarginfixer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/Img~/viewmarginfixer.png -------------------------------------------------------------------------------- /docs~/Img~/viewmarginfixer.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2bfad4380bfb478181285a0bdf497e9 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /docs~/api/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Welcome to the Scripting Reference! 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | Toggle navigation 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | Show / Hide Table of Contents 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | Welcome to the Scripting Reference! 71 | 72 | Select the API to view the detail. 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | Improve this Doc 82 | 83 | 84 | 85 | 86 | In This Article 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /docs~/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/favicon.ico -------------------------------------------------------------------------------- /docs~/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /docs~/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /docs~/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /docs~/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /docs~/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /docs~/search-stopwords.json: -------------------------------------------------------------------------------- 1 | [ 2 | "a", 3 | "able", 4 | "about", 5 | "across", 6 | "after", 7 | "all", 8 | "almost", 9 | "also", 10 | "am", 11 | "among", 12 | "an", 13 | "and", 14 | "any", 15 | "are", 16 | "as", 17 | "at", 18 | "be", 19 | "because", 20 | "been", 21 | "but", 22 | "by", 23 | "can", 24 | "cannot", 25 | "could", 26 | "dear", 27 | "did", 28 | "do", 29 | "does", 30 | "either", 31 | "else", 32 | "ever", 33 | "every", 34 | "for", 35 | "from", 36 | "get", 37 | "got", 38 | "had", 39 | "has", 40 | "have", 41 | "he", 42 | "her", 43 | "hers", 44 | "him", 45 | "his", 46 | "how", 47 | "however", 48 | "i", 49 | "if", 50 | "in", 51 | "into", 52 | "is", 53 | "it", 54 | "its", 55 | "just", 56 | "least", 57 | "let", 58 | "like", 59 | "likely", 60 | "may", 61 | "me", 62 | "might", 63 | "most", 64 | "must", 65 | "my", 66 | "neither", 67 | "no", 68 | "nor", 69 | "not", 70 | "of", 71 | "off", 72 | "often", 73 | "on", 74 | "only", 75 | "or", 76 | "other", 77 | "our", 78 | "own", 79 | "rather", 80 | "said", 81 | "say", 82 | "says", 83 | "she", 84 | "should", 85 | "since", 86 | "so", 87 | "some", 88 | "than", 89 | "that", 90 | "the", 91 | "their", 92 | "them", 93 | "then", 94 | "there", 95 | "these", 96 | "they", 97 | "this", 98 | "tis", 99 | "to", 100 | "too", 101 | "twas", 102 | "us", 103 | "wants", 104 | "was", 105 | "we", 106 | "were", 107 | "what", 108 | "when", 109 | "where", 110 | "which", 111 | "while", 112 | "who", 113 | "whom", 114 | "why", 115 | "will", 116 | "with", 117 | "would", 118 | "yet", 119 | "you", 120 | "your" 121 | ] 122 | -------------------------------------------------------------------------------- /docs~/styles/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MacacaGames/MacacaViewSystem/eee9ccd6c7bc1c866b033eb18a826e8e4f859e49/docs~/styles/main.css -------------------------------------------------------------------------------- /docs~/styles/main.js: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information. 2 | -------------------------------------------------------------------------------- /docs~/styles/search-worker.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | importScripts('lunr.min.js'); 3 | 4 | var lunrIndex; 5 | 6 | var stopWords = null; 7 | var searchData = {}; 8 | 9 | lunr.tokenizer.separator = /[\s\-\.\(\)]+/; 10 | 11 | var stopWordsRequest = new XMLHttpRequest(); 12 | stopWordsRequest.open('GET', '../search-stopwords.json'); 13 | stopWordsRequest.onload = function () { 14 | if (this.status != 200) { 15 | return; 16 | } 17 | stopWords = JSON.parse(this.responseText); 18 | buildIndex(); 19 | } 20 | stopWordsRequest.send(); 21 | 22 | var searchDataRequest = new XMLHttpRequest(); 23 | 24 | searchDataRequest.open('GET', '../index.json'); 25 | searchDataRequest.onload = function () { 26 | if (this.status != 200) { 27 | return; 28 | } 29 | searchData = JSON.parse(this.responseText); 30 | 31 | buildIndex(); 32 | 33 | postMessage({ e: 'index-ready' }); 34 | } 35 | searchDataRequest.send(); 36 | 37 | onmessage = function (oEvent) { 38 | var q = oEvent.data.q; 39 | var hits = lunrIndex.search(q); 40 | var results = []; 41 | hits.forEach(function (hit) { 42 | var item = searchData[hit.ref]; 43 | results.push({ 'href': item.href, 'title': item.title, 'keywords': item.keywords }); 44 | }); 45 | postMessage({ e: 'query-ready', q: q, d: results }); 46 | } 47 | 48 | function buildIndex() { 49 | if (stopWords !== null && !isEmpty(searchData)) { 50 | lunrIndex = lunr(function () { 51 | this.pipeline.remove(lunr.stopWordFilter); 52 | this.ref('href'); 53 | this.field('title', { boost: 50 }); 54 | this.field('keywords', { boost: 20 }); 55 | 56 | for (var prop in searchData) { 57 | if (searchData.hasOwnProperty(prop)) { 58 | this.add(searchData[prop]); 59 | } 60 | } 61 | 62 | var docfxStopWordFilter = lunr.generateStopWordFilter(stopWords); 63 | lunr.Pipeline.registerFunction(docfxStopWordFilter, 'docfxStopWordFilter'); 64 | this.pipeline.add(docfxStopWordFilter); 65 | this.searchPipeline.add(docfxStopWordFilter); 66 | }); 67 | } 68 | } 69 | 70 | function isEmpty(obj) { 71 | if(!obj) return true; 72 | 73 | for (var prop in obj) { 74 | if (obj.hasOwnProperty(prop)) 75 | return false; 76 | } 77 | 78 | return true; 79 | } 80 | })(); 81 | -------------------------------------------------------------------------------- /docs~/toc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | Scripting API 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.macacagames.viewsystem", 3 | "version": "1.1.4", 4 | "displayName": "Macaca View System", 5 | "description": "ViewSystem is a element based UI management system based on Unity GUI. It is developed and used by Macaca Games. UI management in Unity3D is always a hard work, the goal of ViewSystem is to make UI management more easier and flexable.", 6 | "unity": "2019.4", 7 | "dependencies": { 8 | "com.macacagames.utility": "1.2.37" 9 | }, 10 | "keywords": [], 11 | "author": { 12 | "name": "Macaca Games", 13 | "email": "contact@macaca.games", 14 | "url": "https://macaca.games" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c4cba9d5d1e540e9a538f323c676091 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /udg_setting.json: -------------------------------------------------------------------------------- 1 | {"copyReadmeToDocfxIndex":true,"disableDefaultFilter":false,"disableGitFeatures":false,"copyFolderToDocument":["/Img~"]} -------------------------------------------------------------------------------- /udg_setting.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e6e089108822499196ea3bd6cdae9da 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | --------------------------------------------------------------------------------
Select the API to view the detail.