summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Erika/Assets/Art/Vfx/GrabSquaresEffect/Scripts.meta8
-rw-r--r--Erika/Assets/Art/Vfx/GrabSquaresEffect/Shaders.meta8
-rw-r--r--Erika/Assets/Bundle/Materials/Unit/Effect.meta8
-rw-r--r--Erika/Assets/Bundle/Scenes/Demo/UMotionExampleScene.unity (renamed from Erika/Assets/UMotionExampleScene.unity)0
-rw-r--r--Erika/Assets/Bundle/Scenes/Demo/UMotionExampleScene.unity.meta (renamed from Erika/Assets/UMotionExampleScene.unity.meta)0
-rw-r--r--Erika/Assets/Bundle/Shaders/Include.meta8
-rw-r--r--Erika/Assets/Bundle/Shaders/Unit/Effect.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/Monster/Robots_Prowler/ActionData.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/Monster/Robots_Prowler/UnitData.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/NPC.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/Erika/ActionData/ErikaActionData.asset2
-rw-r--r--Erika/Assets/Bundle/Unit/PC/Erika/Materials/Normal.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/Erika/Models.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/Erika/UnitData.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/ErikaCyborg/ActionData.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationClip.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationData.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/AfterImage.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/Normal.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Models.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/ErikaCyborg/RootMotion.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/ErikaCyborg/UnitData.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Weapons.meta8
-rw-r--r--Erika/Assets/Bundle/Unit/Prop.meta8
-rw-r--r--Erika/Assets/New Animation.anim53
-rw-r--r--Erika/Assets/New Animation.anim.meta8
-rw-r--r--Erika/Assets/New Animator Controller.controller124
-rw-r--r--Erika/Assets/New Animator Controller.controller.meta8
-rw-r--r--Erika/Assets/ProBuilder Data.meta (renamed from Erika/Assets/Art/Models/Characters/Default.meta)2
-rw-r--r--Erika/Assets/Scripts/Curve3D.meta8
-rw-r--r--Erika/Assets/Scripts/Drone.meta8
-rw-r--r--Erika/Assets/Scripts/Managers/Physics.meta8
-rw-r--r--Erika/Assets/Scripts/Props.meta8
-rw-r--r--Erika/Assets/Scripts/Robot.meta8
-rw-r--r--Erika/Assets/Scripts/Unit/AI/Actions.meta8
-rw-r--r--Erika/Assets/Scripts/Unit/AI/Conditionals.meta8
-rw-r--r--Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAction.cs9
-rw-r--r--Erika/Assets/ThirdParty/UMotion/UMotionExamples/Example Scene.meta (renamed from Erika/Assets/Art/Models/Characters/Erika2.meta)2
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIHelper.cs22
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIHelper.cs.meta11
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIScaleUtility.cs262
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIScaleUtility.cs.meta11
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/Node.cs50
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/SingleOutNode.cs1
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/SingleOutNode.cs.meta11
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowEditor.cs224
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowEditor.cs.meta11
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowGraph.cs19
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowGraph.cs.meta11
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowResources.cs34
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowResources.cs.meta11
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer.meta2
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Circle.pngbin0 -> 612 bytes
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Circle.png.meta204
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Grid.pngbin0 -> 810 bytes
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Grid.png.meta76
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Square.pngbin0 -> 175 bytes
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Square.png.meta76
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Workflow.asmdef12
-rw-r--r--Erika/Assets/Tools/WorkflowVisualizer/Workflow.asmdef.meta (renamed from Erika/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts.meta)5
-rw-r--r--Erika/Assets/WorkflowGraphs.meta (renamed from Erika/Assets/Tools/WorkflowGraphs.meta)0
-rw-r--r--Erika/Assets/WorkflowGraphs/README.txt (renamed from Erika/Assets/Tools/WorkflowGraphs/README.txt)0
-rw-r--r--Erika/Assets/WorkflowGraphs/README.txt.meta (renamed from Erika/Assets/Tools/WorkflowGraphs/README.txt.meta)0
63 files changed, 1031 insertions, 454 deletions
diff --git a/Erika/Assets/Art/Vfx/GrabSquaresEffect/Scripts.meta b/Erika/Assets/Art/Vfx/GrabSquaresEffect/Scripts.meta
deleted file mode 100644
index 41200932..00000000
--- a/Erika/Assets/Art/Vfx/GrabSquaresEffect/Scripts.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: abff7cb61c760094f8ab9437379e0f2c
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Art/Vfx/GrabSquaresEffect/Shaders.meta b/Erika/Assets/Art/Vfx/GrabSquaresEffect/Shaders.meta
deleted file mode 100644
index fa9e76cd..00000000
--- a/Erika/Assets/Art/Vfx/GrabSquaresEffect/Shaders.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: e38cb65072bb4a64cbe162792de9bec2
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Materials/Unit/Effect.meta b/Erika/Assets/Bundle/Materials/Unit/Effect.meta
deleted file mode 100644
index fdf8c1db..00000000
--- a/Erika/Assets/Bundle/Materials/Unit/Effect.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 0525fec1eb7cc94458170e9e106955d5
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/UMotionExampleScene.unity b/Erika/Assets/Bundle/Scenes/Demo/UMotionExampleScene.unity
index 19dfdcad..19dfdcad 100644
--- a/Erika/Assets/UMotionExampleScene.unity
+++ b/Erika/Assets/Bundle/Scenes/Demo/UMotionExampleScene.unity
diff --git a/Erika/Assets/UMotionExampleScene.unity.meta b/Erika/Assets/Bundle/Scenes/Demo/UMotionExampleScene.unity.meta
index 2fe0b3a0..2fe0b3a0 100644
--- a/Erika/Assets/UMotionExampleScene.unity.meta
+++ b/Erika/Assets/Bundle/Scenes/Demo/UMotionExampleScene.unity.meta
diff --git a/Erika/Assets/Bundle/Shaders/Include.meta b/Erika/Assets/Bundle/Shaders/Include.meta
deleted file mode 100644
index 2666365a..00000000
--- a/Erika/Assets/Bundle/Shaders/Include.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: dc32af12c5122994d8791378227adeb6
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Shaders/Unit/Effect.meta b/Erika/Assets/Bundle/Shaders/Unit/Effect.meta
deleted file mode 100644
index 7df9a033..00000000
--- a/Erika/Assets/Bundle/Shaders/Unit/Effect.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 9cc4684b9f432f149b16a51f148c9490
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/Monster/Robots_Prowler/ActionData.meta b/Erika/Assets/Bundle/Unit/Monster/Robots_Prowler/ActionData.meta
deleted file mode 100644
index ca7266b0..00000000
--- a/Erika/Assets/Bundle/Unit/Monster/Robots_Prowler/ActionData.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: a1d7b6e0d8fb1a642a65011fb6cd7d89
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/Monster/Robots_Prowler/UnitData.meta b/Erika/Assets/Bundle/Unit/Monster/Robots_Prowler/UnitData.meta
deleted file mode 100644
index 142f5872..00000000
--- a/Erika/Assets/Bundle/Unit/Monster/Robots_Prowler/UnitData.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 6ad7401709700f34db2b795830937d76
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/NPC.meta b/Erika/Assets/Bundle/Unit/NPC.meta
deleted file mode 100644
index eeea13e1..00000000
--- a/Erika/Assets/Bundle/Unit/NPC.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 8ced034d375cdfa488814663ea17a79b
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/Erika/ActionData/ErikaActionData.asset b/Erika/Assets/Bundle/Unit/PC/Erika/ActionData/ErikaActionData.asset
index 88fe1511..bc5561a9 100644
--- a/Erika/Assets/Bundle/Unit/PC/Erika/ActionData/ErikaActionData.asset
+++ b/Erika/Assets/Bundle/Unit/PC/Erika/ActionData/ErikaActionData.asset
@@ -57,4 +57,4 @@ MonoBehaviour:
- transition: Move->Idle
enabled: 1
type: 1
- duration: 0.6
+ duration: 1
diff --git a/Erika/Assets/Bundle/Unit/PC/Erika/Materials/Normal.meta b/Erika/Assets/Bundle/Unit/PC/Erika/Materials/Normal.meta
deleted file mode 100644
index 8c41a6b2..00000000
--- a/Erika/Assets/Bundle/Unit/PC/Erika/Materials/Normal.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 5dc1b71affc68b54594096a1b96a5c00
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/Erika/Models.meta b/Erika/Assets/Bundle/Unit/PC/Erika/Models.meta
deleted file mode 100644
index 11148d17..00000000
--- a/Erika/Assets/Bundle/Unit/PC/Erika/Models.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 0d712421d808a43438a43d8a5d34effe
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/Erika/UnitData.meta b/Erika/Assets/Bundle/Unit/PC/Erika/UnitData.meta
deleted file mode 100644
index 7d4b13eb..00000000
--- a/Erika/Assets/Bundle/Unit/PC/Erika/UnitData.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 922befa8a94692845b88500a23229d7f
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/ActionData.meta b/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/ActionData.meta
deleted file mode 100644
index f5434a00..00000000
--- a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/ActionData.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 07c3b2bf6cb8cc2498422bbb105cbad8
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationClip.meta b/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationClip.meta
deleted file mode 100644
index 4ed2c938..00000000
--- a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationClip.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 827d77abe87680a47ae2d71a9e953a18
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationData.meta b/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationData.meta
deleted file mode 100644
index 43a52cd1..00000000
--- a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationData.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 7a2b72fbb41383047ac45e6c22ea9663
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/AfterImage.meta b/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/AfterImage.meta
deleted file mode 100644
index 85d58a8c..00000000
--- a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/AfterImage.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: b2b0838fb0603964e99904eefe81ad7f
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/Normal.meta b/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/Normal.meta
deleted file mode 100644
index dd867045..00000000
--- a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/Normal.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 1c8a678ea9e801f439a1003d04f33cf5
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Models.meta b/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Models.meta
deleted file mode 100644
index dc530723..00000000
--- a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Models.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: ebf636c7cf7b1934b885298ce1f5f42e
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/RootMotion.meta b/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/RootMotion.meta
deleted file mode 100644
index b28b6f04..00000000
--- a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/RootMotion.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 2022e8298d3a8624992143eb57c0f8ac
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/UnitData.meta b/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/UnitData.meta
deleted file mode 100644
index eeca0d3b..00000000
--- a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/UnitData.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: f6aa859c834c51f498ef0b3c3b83a0f5
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Weapons.meta b/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Weapons.meta
deleted file mode 100644
index 7f91da28..00000000
--- a/Erika/Assets/Bundle/Unit/PC/ErikaCyborg/Weapons.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: df69962f5b01e444a8bea87e31c7d0a4
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Bundle/Unit/Prop.meta b/Erika/Assets/Bundle/Unit/Prop.meta
deleted file mode 100644
index affd6eed..00000000
--- a/Erika/Assets/Bundle/Unit/Prop.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: dafc173db1ebeab4c80641cc3d4fa528
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/New Animation.anim b/Erika/Assets/New Animation.anim
deleted file mode 100644
index bb5fc5ba..00000000
--- a/Erika/Assets/New Animation.anim
+++ /dev/null
@@ -1,53 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!74 &7400000
-AnimationClip:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: New Animation
- serializedVersion: 6
- m_Legacy: 0
- m_Compressed: 0
- m_UseHighQualityCurve: 1
- m_RotationCurves: []
- m_CompressedRotationCurves: []
- m_EulerCurves: []
- m_PositionCurves: []
- m_ScaleCurves: []
- m_FloatCurves: []
- m_PPtrCurves: []
- m_SampleRate: 60
- m_WrapMode: 0
- m_Bounds:
- m_Center: {x: 0, y: 0, z: 0}
- m_Extent: {x: 0, y: 0, z: 0}
- m_ClipBindingConstant:
- genericBindings: []
- pptrCurveMapping: []
- m_AnimationClipSettings:
- serializedVersion: 2
- m_AdditiveReferencePoseClip: {fileID: 0}
- m_AdditiveReferencePoseTime: 0
- m_StartTime: 0
- m_StopTime: 1
- m_OrientationOffsetY: 0
- m_Level: 0
- m_CycleOffset: 0
- m_HasAdditiveReferencePose: 0
- m_LoopTime: 0
- m_LoopBlend: 0
- m_LoopBlendOrientation: 0
- m_LoopBlendPositionY: 0
- m_LoopBlendPositionXZ: 0
- m_KeepOriginalOrientation: 0
- m_KeepOriginalPositionY: 1
- m_KeepOriginalPositionXZ: 0
- m_HeightFromFeet: 0
- m_Mirror: 0
- m_EditorCurves: []
- m_EulerEditorCurves: []
- m_HasGenericRootTransform: 0
- m_HasMotionFloatCurves: 0
- m_Events: []
diff --git a/Erika/Assets/New Animation.anim.meta b/Erika/Assets/New Animation.anim.meta
deleted file mode 100644
index 9e417d3f..00000000
--- a/Erika/Assets/New Animation.anim.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 51d7ca8073bde094fa005f03199f3321
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 7400000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/New Animator Controller.controller b/Erika/Assets/New Animator Controller.controller
deleted file mode 100644
index d5573572..00000000
--- a/Erika/Assets/New Animator Controller.controller
+++ /dev/null
@@ -1,124 +0,0 @@
-%YAML 1.1
-%TAG !u! tag:unity3d.com,2011:
---- !u!91 &9100000
-AnimatorController:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: New Animator Controller
- serializedVersion: 5
- m_AnimatorParameters: []
- m_AnimatorLayers:
- - serializedVersion: 5
- m_Name: Base Layer
- m_StateMachine: {fileID: 1107791648939769294}
- m_Mask: {fileID: 0}
- m_Motions: []
- m_Behaviours: []
- m_BlendingMode: 0
- m_SyncedLayerIndex: -1
- m_DefaultWeight: 0
- m_IKPass: 0
- m_SyncedLayerAffectsTiming: 0
- m_Controller: {fileID: 9100000}
---- !u!1101 &1101699584335445592
-AnimatorStateTransition:
- m_ObjectHideFlags: 1
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name:
- m_Conditions: []
- m_DstStateMachine: {fileID: 0}
- m_DstState: {fileID: 1102801727367317354}
- m_Solo: 0
- m_Mute: 0
- m_IsExit: 0
- serializedVersion: 3
- m_TransitionDuration: 0.11761314
- m_TransitionOffset: 0.21120915
- m_ExitTime: 0.76584524
- m_HasExitTime: 0
- m_HasFixedDuration: 0
- m_InterruptionSource: 0
- m_OrderedInterruption: 1
- m_CanTransitionToSelf: 1
---- !u!1102 &1102189551070412168
-AnimatorState:
- serializedVersion: 5
- m_ObjectHideFlags: 1
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: New State
- m_Speed: 1
- m_CycleOffset: 0
- m_Transitions:
- - {fileID: 1101699584335445592}
- m_StateMachineBehaviours: []
- m_Position: {x: 50, y: 50, z: 0}
- m_IKOnFeet: 0
- m_WriteDefaultValues: 1
- m_Mirror: 0
- m_SpeedParameterActive: 0
- m_MirrorParameterActive: 0
- m_CycleOffsetParameterActive: 0
- m_TimeParameterActive: 0
- m_Motion: {fileID: 7400000, guid: 51d7ca8073bde094fa005f03199f3321, type: 2}
- m_Tag:
- m_SpeedParameter:
- m_MirrorParameter:
- m_CycleOffsetParameter:
- m_TimeParameter:
---- !u!1102 &1102801727367317354
-AnimatorState:
- serializedVersion: 5
- m_ObjectHideFlags: 1
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: New State 0
- m_Speed: 1
- m_CycleOffset: 0
- m_Transitions: []
- m_StateMachineBehaviours: []
- m_Position: {x: 50, y: 50, z: 0}
- m_IKOnFeet: 0
- m_WriteDefaultValues: 1
- m_Mirror: 0
- m_SpeedParameterActive: 0
- m_MirrorParameterActive: 0
- m_CycleOffsetParameterActive: 0
- m_TimeParameterActive: 0
- m_Motion: {fileID: 7400000, guid: 51d7ca8073bde094fa005f03199f3321, type: 2}
- m_Tag:
- m_SpeedParameter:
- m_MirrorParameter:
- m_CycleOffsetParameter:
- m_TimeParameter:
---- !u!1107 &1107791648939769294
-AnimatorStateMachine:
- serializedVersion: 5
- m_ObjectHideFlags: 1
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_Name: Base Layer
- m_ChildStates:
- - serializedVersion: 1
- m_State: {fileID: 1102189551070412168}
- m_Position: {x: 267.00195, y: 100.01747, z: 0}
- - serializedVersion: 1
- m_State: {fileID: 1102801727367317354}
- m_Position: {x: 264, y: 180, z: 0}
- m_ChildStateMachines: []
- m_AnyStateTransitions: []
- m_EntryTransitions: []
- m_StateMachineTransitions: {}
- m_StateMachineBehaviours: []
- m_AnyStatePosition: {x: 50, y: 20, z: 0}
- m_EntryPosition: {x: 50, y: 120, z: 0}
- m_ExitPosition: {x: 800, y: 120, z: 0}
- m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
- m_DefaultState: {fileID: 1102189551070412168}
diff --git a/Erika/Assets/New Animator Controller.controller.meta b/Erika/Assets/New Animator Controller.controller.meta
deleted file mode 100644
index 71f0e43b..00000000
--- a/Erika/Assets/New Animator Controller.controller.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: a03a8cfdad910b842946352143824fd7
-NativeFormatImporter:
- externalObjects: {}
- mainObjectFileID: 9100000
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Art/Models/Characters/Default.meta b/Erika/Assets/ProBuilder Data.meta
index 43499fc7..8424bd32 100644
--- a/Erika/Assets/Art/Models/Characters/Default.meta
+++ b/Erika/Assets/ProBuilder Data.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: e8a40298dd4efd14c9f90a63734ca39b
+guid: 62b452114e207404bacccba32c7da124
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Erika/Assets/Scripts/Curve3D.meta b/Erika/Assets/Scripts/Curve3D.meta
deleted file mode 100644
index fef1c5e7..00000000
--- a/Erika/Assets/Scripts/Curve3D.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: ad8b718b6b700d8419838dad07158567
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Scripts/Drone.meta b/Erika/Assets/Scripts/Drone.meta
deleted file mode 100644
index 694cff70..00000000
--- a/Erika/Assets/Scripts/Drone.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: ec3412151f8a72a41b2ed21316763399
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Scripts/Managers/Physics.meta b/Erika/Assets/Scripts/Managers/Physics.meta
deleted file mode 100644
index 2296b3f8..00000000
--- a/Erika/Assets/Scripts/Managers/Physics.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 603d4624aaedd794cb89497954a83f4a
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Scripts/Props.meta b/Erika/Assets/Scripts/Props.meta
deleted file mode 100644
index bb96602e..00000000
--- a/Erika/Assets/Scripts/Props.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: f299520ed9fcf4a45858ad4ef5a8d5d1
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Scripts/Robot.meta b/Erika/Assets/Scripts/Robot.meta
deleted file mode 100644
index 0b5a087e..00000000
--- a/Erika/Assets/Scripts/Robot.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 7c09ca1609552d24bbe697d1516f8aa9
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Scripts/Unit/AI/Actions.meta b/Erika/Assets/Scripts/Unit/AI/Actions.meta
deleted file mode 100644
index 9b4ad463..00000000
--- a/Erika/Assets/Scripts/Unit/AI/Actions.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 971e9d55b8bc0894eb6a110fb962000b
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Scripts/Unit/AI/Conditionals.meta b/Erika/Assets/Scripts/Unit/AI/Conditionals.meta
deleted file mode 100644
index 70a86da5..00000000
--- a/Erika/Assets/Scripts/Unit/AI/Conditionals.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 85b7e0c7ed1d12f42a5178bfbf3d934c
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAction.cs b/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAction.cs
index b865f439..decac690 100644
--- a/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAction.cs
+++ b/Erika/Assets/Scripts/Unit/Components/UnitAnimation/UnitAction.cs
@@ -219,4 +219,13 @@ public class UnitAction : UnitComponent
}
}
+ /// <summary>
+ /// 切换动作
+ /// </summary>
+ /// <param name="targetAction"></param>
+ public void ChangeAction(string targetAction)
+ {
+
+ }
+
}
diff --git a/Erika/Assets/Art/Models/Characters/Erika2.meta b/Erika/Assets/ThirdParty/UMotion/UMotionExamples/Example Scene.meta
index fd7369d9..7c152025 100644
--- a/Erika/Assets/Art/Models/Characters/Erika2.meta
+++ b/Erika/Assets/ThirdParty/UMotion/UMotionExamples/Example Scene.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 077f81003f9fc564791cce182048c2b0
+guid: 13ba4d2ee6e74bf4b9aea7f330df39c2
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIHelper.cs b/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIHelper.cs
new file mode 100644
index 00000000..2b3c3449
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIHelper.cs
@@ -0,0 +1,22 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+
+namespace Workflow
+{
+
+ public static class GUIHelper
+ {
+
+ static GUIHelper()
+ {
+ }
+
+ public static bool DropdownButton(string name, float width)
+ {
+ return GUILayout.Button(name, EditorStyles.toolbarDropDown, GUILayout.Width(width));
+ }
+
+ }
+}
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIHelper.cs.meta b/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIHelper.cs.meta
new file mode 100644
index 00000000..8cebb78f
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIHelper.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1e22254b156236945beac4eb5fadf36f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIScaleUtility.cs b/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIScaleUtility.cs
new file mode 100644
index 00000000..f960bbea
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIScaleUtility.cs
@@ -0,0 +1,262 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using System;
+using System.Reflection;
+
+namespace Workflow
+{
+
+ public static class GUIScaleUtility
+ {
+ // General
+ private static bool compabilityMode;
+ private static bool initiated;
+
+ // Delegates to the reflected methods
+ private static Func<Rect> GetTopRectDelegate;
+ private static Func<Rect> topmostRectDelegate;
+
+ // Delegate accessors
+ public static Rect getTopRect { get { return (Rect)GetTopRectDelegate.Invoke(); } }
+
+ // Rect stack for manipulating groups
+ public static List<Rect> currentRectStack { get; private set; }
+ private static List<List<Rect>> rectStackGroups;
+
+ // Matrices stack
+ private static List<Matrix4x4> GUIMatrices;
+ private static List<bool> adjustedGUILayout;
+
+ #region Init
+
+ public static void CheckInit()
+ {
+ if (!initiated)
+ Init();
+ }
+
+ public static void Init()
+ {
+ // Fetch rect acessors using Reflection
+ Assembly UnityEngine = Assembly.GetAssembly(typeof(UnityEngine.GUI));
+ Type GUIClipType = UnityEngine.GetType("UnityEngine.GUIClip", true);
+
+ PropertyInfo topmostRect = GUIClipType.GetProperty("topmostRect", BindingFlags.Static | BindingFlags.Public);
+ MethodInfo GetTopRect = GUIClipType.GetMethod("GetTopRect", BindingFlags.Static | BindingFlags.NonPublic);
+ MethodInfo ClipRect = GUIClipType.GetMethod("Clip", BindingFlags.Static | BindingFlags.Public, Type.DefaultBinder, new Type[] { typeof(Rect) }, new ParameterModifier[] { });
+
+ if (GUIClipType == null || topmostRect == null || GetTopRect == null || ClipRect == null)
+ {
+ Debug.LogWarning("GUIScaleUtility cannot run on this system! Compability mode enabled. For you that means you're not able to use the Node Editor inside more than one group:( Please PM me (Seneral @UnityForums) so I can figure out what causes this! Thanks!");
+ Debug.LogWarning((GUIClipType == null ? "GUIClipType is Null, " : "") + (topmostRect == null ? "topmostRect is Null, " : "") + (GetTopRect == null ? "GetTopRect is Null, " : "") + (ClipRect == null ? "ClipRect is Null, " : ""));
+ compabilityMode = true;
+ initiated = true;
+ return;
+ }
+
+ // Create simple acessor delegates
+ GetTopRectDelegate = (Func<Rect>)Delegate.CreateDelegate(typeof(Func<Rect>), GetTopRect);
+ topmostRectDelegate = (Func<Rect>)Delegate.CreateDelegate(typeof(Func<Rect>), topmostRect.GetGetMethod());
+
+ if (GetTopRectDelegate == null || topmostRectDelegate == null)
+ {
+ Debug.LogWarning("GUIScaleUtility cannot run on this system! Compability mode enabled. For you that means you're not able to use the Node Editor inside more than one group:( Please PM me (Seneral @UnityForums) so I can figure out what causes this! Thanks!");
+ Debug.LogWarning((GUIClipType == null ? "GUIClipType is Null, " : "") + (topmostRect == null ? "topmostRect is Null, " : "") + (GetTopRect == null ? "GetTopRect is Null, " : "") + (ClipRect == null ? "ClipRect is Null, " : ""));
+ compabilityMode = true;
+ initiated = true;
+ return;
+ }
+
+ // As we can call Begin/Ends inside another, we need to save their states hierarchial in Lists (not Stack, as we need to iterate over them!):
+ currentRectStack = new List<Rect>();
+ rectStackGroups = new List<List<Rect>>();
+ GUIMatrices = new List<Matrix4x4>();
+ adjustedGUILayout = new List<bool>();
+
+ initiated = true;
+ }
+
+ #endregion
+
+ #region Scale Area
+
+ /// <summary>
+ /// Begins a scaled local area.
+ /// Returns vector to offset GUI controls with to account for zooming to the pivot.
+ /// Using adjustGUILayout does that automatically for GUILayout rects. Theoretically can be nested!
+ /// </summary>
+ public static Vector2 BeginScale(ref Rect rect, Vector2 zoomPivot, float zoom, bool adjustGUILayout)
+ {
+ Rect screenRect;
+ if (compabilityMode)
+ {
+
+ // In compability mode, we will assume only one top group and do everything manually, not using reflected calls (-> practically blind)
+ GUI.EndGroup();
+ screenRect = rect;
+ }
+
+ else
+ {
+
+ // If it's supported, we take the completely generic way using reflected calls
+ GUIScaleUtility.BeginNoClip();
+ screenRect = GUIScaleUtility.GUIToScaledSpace(rect);
+ }
+
+ rect = Scale(screenRect, screenRect.position + zoomPivot, new Vector2(zoom, zoom));
+
+ // Now continue drawing using the new clipping group
+ GUI.BeginGroup(rect);
+ rect.position = Vector2.zero; // Adjust because we entered the new group
+
+ // Because I currently found no way to actually scale to a custom pivot rather than (0, 0),
+ // we'll make use of a cheat and just offset it accordingly to let it appear as if it would scroll to the center
+ // Note, due to that, controls not adjusted are still scaled to (0, 0)
+ Vector2 zoomPosAdjust = rect.center - screenRect.size / 2 + zoomPivot;
+
+ // For GUILayout, we can make this adjustment here if desired
+ adjustedGUILayout.Add(adjustGUILayout);
+ if (adjustGUILayout)
+ {
+ GUILayout.BeginHorizontal();
+ GUILayout.Space(rect.center.x - screenRect.size.x + zoomPivot.x);
+ GUILayout.BeginVertical();
+ GUILayout.Space(rect.center.y - screenRect.size.y + zoomPivot.y);
+ }
+
+ // Take a matrix backup to restore back later on
+ GUIMatrices.Add(GUI.matrix);
+
+ // Scale GUI.matrix. After that we have the correct clipping group again.
+ GUIUtility.ScaleAroundPivot(new Vector2(1 / zoom, 1 / zoom), zoomPosAdjust);
+
+ return zoomPosAdjust;
+ }
+
+ /// <summary>
+ /// Ends a scale region previously opened with BeginScale
+ /// </summary>
+ public static void EndScale()
+ {
+ // Set last matrix and clipping group
+ if (GUIMatrices.Count == 0 || adjustedGUILayout.Count == 0)
+ throw new UnityException("GUIScaleUtility: You are ending more scale regions than you are beginning!");
+
+ GUI.matrix = GUIMatrices[GUIMatrices.Count - 1];
+ GUIMatrices.RemoveAt(GUIMatrices.Count - 1);
+
+ // End GUILayout zoomPosAdjustment
+ if (adjustedGUILayout[adjustedGUILayout.Count - 1])
+ {
+
+ GUILayout.EndVertical();
+ GUILayout.EndHorizontal();
+ }
+ adjustedGUILayout.RemoveAt(adjustedGUILayout.Count - 1);
+
+ // End the scaled group
+ GUI.EndGroup();
+
+ if (compabilityMode)
+ {
+
+ // In compability mode, we don't know the previous group rect, but as we cannot use top groups there either way, we restore the screen group
+ GUI.BeginClip(new Rect(0, 23, Screen.width, Screen.height - 23));
+ }
+
+ else
+ {
+
+ // Else, restore the clips (groups)
+ GUIScaleUtility.RestoreClips();
+ }
+ }
+
+ #endregion
+
+ #region Clips Hierarchy
+
+ /// <summary>
+ /// Begins a field without groups. They should be restored using RestoreClips. Can be nested!
+ /// </summary>
+ public static void BeginNoClip()
+ {
+ // Record and close all clips one by one, from bottom to top, until we hit the 'origin'
+ List<Rect> rectStackGroup = new List<Rect>();
+ Rect topMostClip = getTopRect;
+ while (topMostClip != new Rect(-10000, -10000, 40000, 40000))
+ {
+ rectStackGroup.Add(topMostClip);
+ GUI.EndClip();
+ topMostClip = getTopRect;
+ }
+ // Store the clips appropriately
+ rectStackGroup.Reverse();
+ rectStackGroups.Add(rectStackGroup);
+ currentRectStack.AddRange(rectStackGroup);
+ }
+
+ /// <summary>
+ /// Restores the clips removed in BeginNoClip or MoveClipsUp
+ /// </summary>
+ public static void RestoreClips()
+ {
+ if (rectStackGroups.Count == 0)
+ {
+ Debug.LogError("GUIClipHierarchy: BeginNoClip/MoveClipsUp - RestoreClips count not balanced!");
+ return;
+ }
+
+ // Read and restore clips one by one, from top to bottom
+ List<Rect> rectStackGroup = rectStackGroups[rectStackGroups.Count - 1];
+ for (int clipCnt = 0; clipCnt < rectStackGroup.Count; clipCnt++)
+ {
+ GUI.BeginClip(rectStackGroup[clipCnt]);
+ currentRectStack.RemoveAt(currentRectStack.Count - 1);
+ }
+ rectStackGroups.RemoveAt(rectStackGroups.Count - 1);
+ }
+
+ #endregion
+
+ #region Space Transformations
+
+ /// <summary>
+ /// Scales the rect around the pivot with scale
+ /// </summary>
+ public static Rect Scale(Rect rect, Vector2 pivot, Vector2 scale)
+ {
+ rect.position = Vector2.Scale(rect.position - pivot, scale) + pivot;
+ rect.size = Vector2.Scale(rect.size, scale);
+ return rect;
+ }
+
+ public static Vector2 GUIToScaledSpace(Vector2 guiPosition)
+ {
+ if (rectStackGroups == null || rectStackGroups.Count == 0)
+ return guiPosition;
+ // Iterate through the clips and add positions ontop
+ List<Rect> rectStackGroup = rectStackGroups[rectStackGroups.Count - 1];
+ for (int clipCnt = 0; clipCnt < rectStackGroup.Count; clipCnt++)
+ guiPosition += rectStackGroup[clipCnt].position;
+ return guiPosition;
+ }
+
+ /// <summary>
+ /// Transforms the rect to the new space aquired with BeginNoClip or MoveClipsUp.
+ /// DOES NOT scale the rect, only offsets it!
+ /// It's way faster to call GUIToScreenSpace before modifying the space though!
+ /// </summary>
+ public static Rect GUIToScaledSpace(Rect guiRect)
+ {
+ if (rectStackGroups == null || rectStackGroups.Count == 0)
+ return guiRect;
+ guiRect.position = GUIToScaledSpace(guiRect.position);
+ return guiRect;
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIScaleUtility.cs.meta b/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIScaleUtility.cs.meta
new file mode 100644
index 00000000..b1140efd
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/GUIScaleUtility.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c26a02a8efc38bc49aaba1525555dac0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/Node.cs b/Erika/Assets/Tools/WorkflowVisualizer/Editor/Node.cs
index d7f9fa74..ab27e02e 100644
--- a/Erika/Assets/Tools/WorkflowVisualizer/Editor/Node.cs
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/Node.cs
@@ -2,41 +2,31 @@
using System.Collections.Generic;
using UnityEngine;
-public struct NodePosition
+namespace Workflow
{
- public Vector2 position;
- public Vector2 size;
-}
-
-/// <summary>
-/// 节点
-/// </summary>
-public class Node
-{
- // 节点名(包括路径,如Animation/RootMotion)
- public virtual string name { get { return "<node>"; } }
-
- // 图标路径,相对Resources目录
- public virtual string iconPath { get { return null; } }
- // 注解
- public virtual string note { get { return null; } }
+ public struct NodePosition
+ {
+ public Vector2 position;
+ public Vector2 size;
+ }
- public List<Node> children;
+ /// <summary>
+ /// 节点
+ /// </summary>
+ public class Node : ScriptableObject
+ {
+ // 节点名(包括路径,如Animation/RootMotion)
+ public virtual string name { get { return "<node>"; } }
- public virtual void OnSerialize()
- {
+ // 图标路径,相对Resources目录
+ public virtual string iconPath { get { return null; } }
- }
+ // 注解
+ public virtual string note { get { return null; } }
- public virtual void OnDeserialize()
- {
+ public List<Node> children;
- }
+ }
- public virtual void OnCustomGUI()
- {
-
- }
-
-} \ No newline at end of file
+}
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/SingleOutNode.cs b/Erika/Assets/Tools/WorkflowVisualizer/Editor/SingleOutNode.cs
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/SingleOutNode.cs
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/SingleOutNode.cs.meta b/Erika/Assets/Tools/WorkflowVisualizer/Editor/SingleOutNode.cs.meta
new file mode 100644
index 00000000..76262c25
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/SingleOutNode.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d2d9b579e0562b2418478a1b97b77e13
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowEditor.cs b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowEditor.cs
new file mode 100644
index 00000000..03034b53
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowEditor.cs
@@ -0,0 +1,224 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+
+namespace Workflow
+{
+ public class WorkflowEditor : EditorWindow
+ {
+ [MenuItem("Erika/Workflow")]
+ static void OpenWorkflow()
+ {
+ var w = EditorWindow.CreateInstance<WorkflowEditor>();
+ w.titleContent = new GUIContent("Workflow");
+ w.Show();
+ }
+
+ public const float kToolbarButtonWidth = 50f;
+ public const float kToolbarHeight = 20f;
+ public static float minZoom = 1f;
+ public static float maxZoom = 4f;
+ public static float panSpeed = 1.2f;
+ public static float zoomDelta = 0.1f;
+
+ private Vector2 m_ZoomAdjustment;
+
+ /// <summary>
+ /// The size of the window.
+ /// </summary>
+ public Rect Size
+ {
+ get { return new Rect(Vector2.zero, position.size); }
+ }
+
+ public Vector2 panOffset = Vector2.zero;
+
+ private Vector2 m_Zoom = Vector2.one;
+ public float zoomScale
+ {
+ get { return m_Zoom.x; }
+ set
+ {
+ float z = Mathf.Clamp(value, minZoom, maxZoom);
+ m_Zoom.Set(z, z);
+ }
+ }
+
+
+ private void OnGUI()
+ {
+ DrawNodeArea();
+
+ EditorGUILayout.BeginHorizontal("Toolbar");
+
+ if(GUIHelper.DropdownButton("File", kToolbarButtonWidth))
+ {
+ CreateFileMenu();
+ }
+
+ if (GUIHelper.DropdownButton("Edit", kToolbarButtonWidth))
+ {
+ CreateEditMenu();
+ }
+
+ if (GUIHelper.DropdownButton("View", kToolbarButtonWidth))
+ {
+ CreateViewMenu();
+ }
+
+ if (GUIHelper.DropdownButton("Settings", kToolbarButtonWidth + 10f))
+ {
+ CreateSettingsMenu();
+ }
+
+ if (GUIHelper.DropdownButton("Tools", kToolbarButtonWidth))
+ {
+ CreateToolsMenu();
+ }
+
+ // Make the toolbar extend all throughout the window extension.
+ GUILayout.FlexibleSpace();
+
+ EditorGUILayout.EndHorizontal();
+
+ if(Event.current.type == EventType.MouseDrag && Event.current.button == 2)
+ {
+ this.Pan(Event.current.delta);
+ this.Repaint();
+ }
+
+ if(Event.current.type == EventType.ScrollWheel && Event.current.button == 2)
+ {
+ this.Zoom(Event.current.delta.y);
+ this.Repaint();
+ }
+ }
+
+ private void CreateFileMenu()
+ {
+ var menu = new GenericMenu();
+
+ menu.AddItem(new GUIContent("Create New"), false, null);
+ menu.AddItem(new GUIContent("Load"), false, null);
+
+ menu.AddSeparator("");
+ menu.AddItem(new GUIContent("Save"), false, null);
+ menu.AddItem(new GUIContent("Save As"), false, null);
+
+ menu.DropDown(new Rect(5f, kToolbarHeight, 0f, 0f));
+ }
+
+
+ private void CreateEditMenu()
+ {
+ var menu = new GenericMenu();
+
+ menu.AddItem(new GUIContent("Undo"), false, null);
+ menu.AddItem(new GUIContent("Redo"), false, null);
+
+ menu.DropDown(new Rect(55f, kToolbarHeight, 0f, 0f));
+ }
+
+ private void CreateViewMenu()
+ {
+ var menu = new GenericMenu();
+
+ menu.AddItem(new GUIContent("Home"), false, null);
+ //menu.AddItem(new GUIContent("Zoom In"), false, () => { editor.Zoom(-1); });
+ //menu.AddItem(new GUIContent("Zoom Out"), false, () => { editor.Zoom(1); });
+
+ menu.DropDown(new Rect(105f, kToolbarHeight, 0f, 0f));
+ }
+
+ private void CreateSettingsMenu()
+ {
+ var menu = new GenericMenu();
+
+ //menu.AddItem(new GUIContent("Show Guide"), editor.bDrawGuide, editor.ToggleDrawGuide);
+
+ menu.DropDown(new Rect(155f, kToolbarHeight, 0f, 0f));
+ }
+
+ private void CreateToolsMenu()
+ {
+ var menu = new GenericMenu();
+
+ //menu.AddItem(new GUIContent("Add Test Nodes"), false, addTestNodes);
+ //menu.AddItem(new GUIContent("Clear Nodes"), false, clearNodes);
+
+ menu.DropDown(new Rect(215f, kToolbarHeight, 0f, 0f));
+ }
+
+ public void Pan(Vector2 delta)
+ {
+ panOffset += delta * zoomScale * panSpeed;
+ }
+
+
+ public void Zoom(float zoomDirection)
+ {
+ float scale = (zoomDirection < 0f) ? (1f - zoomDelta) : (1f + zoomDelta);
+
+ m_Zoom *= scale;
+
+ float cap = Mathf.Clamp(m_Zoom.x, minZoom, maxZoom);
+ m_Zoom.Set(cap, cap);
+ }
+
+ //-------------------------------------------------------------------------------
+ // Node area
+ //-------------------------------------------------------------------------------
+
+ void DrawNodeArea()
+ {
+ if (Event.current.type == EventType.Repaint)
+ {
+ DrawGrid();
+ }
+ }
+
+ void DrawGrid()
+ {
+ var size = this.Size.size;
+ var center = size / 2f;
+
+ float zoom = zoomScale;
+
+ // Offset from origin in tile units
+ float xOffset = -(center.x * zoom + panOffset.x) / Res.gridTex.width;
+ float yOffset = ((center.y - size.y) * zoom + panOffset.y) / Res.gridTex.height;
+
+ Vector2 tileOffset = new Vector2(xOffset, yOffset);
+
+ // Amount of tiles
+ float tileAmountX = Mathf.Round(size.x * zoom) / Res.gridTex.width;
+ float tileAmountY = Mathf.Round(size.y * zoom) / Res.gridTex.height;
+
+ Vector2 tileAmount = new Vector2(tileAmountX, tileAmountY);
+
+ // Draw tiled background
+ GUI.DrawTextureWithTexCoords(Size, Res.gridTex, new Rect(tileOffset, tileAmount));
+ }
+
+
+ private void DrawGraphContents()
+ {
+ Rect graphRect = Size;
+ var center = graphRect.size / 2f;
+
+ m_ZoomAdjustment = GUIScaleUtility.BeginScale(ref graphRect, center, zoomScale, false);
+
+ //drawGridOverlay();
+ //drawConnectionPreview();
+ //drawConnections();
+ //drawNodes();
+
+ GUIScaleUtility.EndScale();
+ }
+
+
+ }
+
+}
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowEditor.cs.meta b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowEditor.cs.meta
new file mode 100644
index 00000000..61e8f2ac
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5e6a9c7b5a66f8a4c823aba68e915031
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowGraph.cs b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowGraph.cs
new file mode 100644
index 00000000..bb50bff2
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowGraph.cs
@@ -0,0 +1,19 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEditor;
+
+namespace Workflow
+{
+
+ /// <summary>
+ /// 流程图
+ /// </summary>
+ public class WorkflowGraph : ScriptableObject
+ {
+
+
+
+ }
+
+}
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowGraph.cs.meta b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowGraph.cs.meta
new file mode 100644
index 00000000..7f449997
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowGraph.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8d15234d39bd47e4d93a5d48161055be
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowResources.cs b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowResources.cs
new file mode 100644
index 00000000..faae1246
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowResources.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace Workflow
+{
+
+ public static class Res
+ {
+
+ public static Texture2D gridTex;
+
+ public static bool loaded = false;
+
+ static Res()
+ {
+ }
+
+ [UnityEditor.Callbacks.DidReloadScripts]
+ static void LoadAllResources()
+ {
+ if (loaded)
+ return ;
+
+ gridTex = UnityEngine.Resources.Load<Texture2D>("WorkflowVisualizer/Grid");
+
+ loaded = true;
+ }
+
+
+ }
+
+} \ No newline at end of file
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowResources.cs.meta b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowResources.cs.meta
new file mode 100644
index 00000000..766c4386
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Editor/WorkflowResources.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2b7cb6867f9cf974182376aa9ed2a1e2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer.meta b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer.meta
index 30e9833d..82720962 100644
--- a/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer.meta
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 0abc9282fc89bcc409424811cadd601d
+guid: 08d94066543c19548af4b63226062040
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Circle.png b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Circle.png
new file mode 100644
index 00000000..d91689af
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Circle.png
Binary files differ
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Circle.png.meta b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Circle.png.meta
new file mode 100644
index 00000000..fd909015
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Circle.png.meta
@@ -0,0 +1,204 @@
+fileFormatVersion: 2
+guid: 7351ad259fd2ebb4e92d45d99d89ca33
+timeCreated: 1502521939
+licenseType: Free
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: 0
+ aniso: 16
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 3
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 4
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 2
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 32
+ textureFormat: 4
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ - buildTarget: Standalone
+ maxTextureSize: 32
+ textureFormat: 4
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline:
+ - - {x: 0, y: 2}
+ - {x: -0.09813535, y: 1.9975909}
+ - {x: -0.19603428, y: 1.9903694}
+ - {x: -0.29346094, y: 1.978353}
+ - {x: -0.39018065, y: 1.9615705}
+ - {x: -0.4859604, y: 1.9400625}
+ - {x: -0.5805693, y: 1.9138807}
+ - {x: -0.67377967, y: 1.8830881}
+ - {x: -0.76536685, y: 1.8477591}
+ - {x: -0.8551101, y: 1.8079786}
+ - {x: -0.9427934, y: 1.7638426}
+ - {x: -1.0282055, y: 1.7154572}
+ - {x: -1.1111405, y: 1.6629392}
+ - {x: -1.1913986, y: 1.606415}
+ - {x: -1.2687867, y: 1.5460209}
+ - {x: -1.343118, y: 1.4819021}
+ - {x: -1.4142137, y: 1.4142134}
+ - {x: -1.4819024, y: 1.3431177}
+ - {x: -1.5460211, y: 1.2687864}
+ - {x: -1.6064153, y: 1.1913984}
+ - {x: -1.6629394, y: 1.1111403}
+ - {x: -1.7154574, y: 1.0282052}
+ - {x: -1.7638427, y: 0.94279313}
+ - {x: -1.8079787, y: 0.8551098}
+ - {x: -1.8477592, y: 0.76536644}
+ - {x: -1.8830884, y: 0.6737792}
+ - {x: -1.9138808, y: 0.5805688}
+ - {x: -1.9400626, y: 0.48595977}
+ - {x: -1.9615707, y: 0.39018002}
+ - {x: -1.9783531, y: 0.29346028}
+ - {x: -1.9903696, y: 0.19603357}
+ - {x: -1.9975909, y: 0.098134585}
+ - {x: -2, y: -0.0000008026785}
+ - {x: -1.9975909, y: -0.09813619}
+ - {x: -1.9903693, y: -0.19603516}
+ - {x: -1.9783529, y: -0.29346186}
+ - {x: -1.9615704, y: -0.3901816}
+ - {x: -1.9400623, y: -0.48596132}
+ - {x: -1.9138803, y: -0.58057034}
+ - {x: -1.8830878, y: -0.67378074}
+ - {x: -1.8477587, y: -0.7653679}
+ - {x: -1.8079782, y: -0.855111}
+ - {x: -1.7638422, y: -0.9427941}
+ - {x: -1.715457, y: -1.028206}
+ - {x: -1.6629391, y: -1.1111407}
+ - {x: -1.606415, y: -1.1913987}
+ - {x: -1.546021, y: -1.2687865}
+ - {x: -1.4819025, y: -1.3431177}
+ - {x: -1.4142139, y: -1.4142132}
+ - {x: -1.3431184, y: -1.4819018}
+ - {x: -1.2687873, y: -1.5460204}
+ - {x: -1.1913995, y: -1.6064144}
+ - {x: -1.1111416, y: -1.6629385}
+ - {x: -1.0282067, y: -1.7154565}
+ - {x: -0.9427949, y: -1.7638417}
+ - {x: -0.85511184, y: -1.8079778}
+ - {x: -0.76536876, y: -1.8477583}
+ - {x: -0.6737818, y: -1.8830874}
+ - {x: -0.5805717, y: -1.91388}
+ - {x: -0.48596293, y: -1.9400618}
+ - {x: -0.39018345, y: -1.96157}
+ - {x: -0.29346398, y: -1.9783525}
+ - {x: -0.1960375, y: -1.9903691}
+ - {x: -0.09813879, y: -1.9975908}
+ - {x: -0.0000036398517, y: -2}
+ - {x: 0.098131515, y: -1.9975911}
+ - {x: 0.19603026, y: -1.9903698}
+ - {x: 0.29345676, y: -1.9783536}
+ - {x: 0.3901763, y: -1.9615715}
+ - {x: 0.48595586, y: -1.9400636}
+ - {x: 0.58056474, y: -1.913882}
+ - {x: 0.67377496, y: -1.8830898}
+ - {x: 0.765362, y: -1.847761}
+ - {x: 0.8551053, y: -1.8079809}
+ - {x: 0.94278854, y: -1.7638452}
+ - {x: 1.0282005, y: -1.7154602}
+ - {x: 1.1111355, y: -1.6629425}
+ - {x: 1.1913936, y: -1.6064187}
+ - {x: 1.2687817, y: -1.5460249}
+ - {x: 1.3431131, y: -1.4819067}
+ - {x: 1.4142088, y: -1.4142184}
+ - {x: 1.4818976, y: -1.3431231}
+ - {x: 1.5460167, y: -1.2687918}
+ - {x: 1.6064112, y: -1.1914037}
+ - {x: 1.6629357, y: -1.1111456}
+ - {x: 1.7154542, y: -1.0282105}
+ - {x: 1.7638398, y: -0.94279844}
+ - {x: 1.8079762, y: -0.855115}
+ - {x: 1.8477571, y: -0.76537156}
+ - {x: 1.8830866, y: -0.6737842}
+ - {x: 1.9138794, y: -0.5805737}
+ - {x: 1.9400615, y: -0.48596448}
+ - {x: 1.9615698, y: -0.39018452}
+ - {x: 1.9783524, y: -0.29346457}
+ - {x: 1.9903691, y: -0.19603767}
+ - {x: 1.9975908, y: -0.09813846}
+ - {x: 2, y: -0.0000028371733}
+ - {x: 1.997591, y: 0.0981328}
+ - {x: 1.9903697, y: 0.19603202}
+ - {x: 1.9783533, y: 0.29345897}
+ - {x: 1.9615709, y: 0.39017895}
+ - {x: 1.9400629, y: 0.48595896}
+ - {x: 1.9138811, y: 0.58056825}
+ - {x: 1.8830885, y: 0.6737789}
+ - {x: 1.8477592, y: 0.7653663}
+ - {x: 1.8079787, y: 0.8551099}
+ - {x: 1.7638426, y: 0.9427934}
+ - {x: 1.7154571, y: 1.0282056}
+ - {x: 1.662939, y: 1.1111408}
+ - {x: 1.6064146, y: 1.1913992}
+ - {x: 1.5460203, y: 1.2687874}
+ - {x: 1.4819014, y: 1.3431189}
+ - {x: 1.4142125, y: 1.4142147}
+ - {x: 1.3431165, y: 1.4819036}
+ - {x: 1.2687849, y: 1.5460223}
+ - {x: 1.1913966, y: 1.6064166}
+ - {x: 1.1111382, y: 1.6629407}
+ - {x: 1.0282029, y: 1.7154588}
+ - {x: 0.94279057, y: 1.7638441}
+ - {x: 0.85510695, y: 1.8079801}
+ - {x: 0.76536334, y: 1.8477606}
+ - {x: 0.67377585, y: 1.8830895}
+ - {x: 0.58056515, y: 1.9138819}
+ - {x: 0.48595583, y: 1.9400636}
+ - {x: 0.3901758, y: 1.9615716}
+ - {x: 0.29345578, y: 1.9783537}
+ - {x: 0.1960288, y: 1.99037}
+ - {x: 0.09812956, y: 1.9975911}
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Grid.png b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Grid.png
new file mode 100644
index 00000000..1c4457e0
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Grid.png
Binary files differ
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Grid.png.meta b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Grid.png.meta
new file mode 100644
index 00000000..7affb106
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Grid.png.meta
@@ -0,0 +1,76 @@
+fileFormatVersion: 2
+guid: 4ab4e605fe422164da65569c46a161d2
+timeCreated: 1493143660
+licenseType: Free
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 1
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: 2
+ aniso: 1
+ mipBias: -1
+ wrapMode: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 0
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 64
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ - buildTarget: Standalone
+ maxTextureSize: 64
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Square.png b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Square.png
new file mode 100644
index 00000000..c8bbb357
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Square.png
Binary files differ
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Square.png.meta b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Square.png.meta
new file mode 100644
index 00000000..9f830579
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Resources/WorkflowVisualizer/Square.png.meta
@@ -0,0 +1,76 @@
+fileFormatVersion: 2
+guid: 2753fd6aa74e4ae48b498cb00649f41c
+timeCreated: 1502670092
+licenseType: Free
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: 0
+ aniso: -1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 2
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 32
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ - buildTarget: Standalone
+ maxTextureSize: 32
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Erika/Assets/Tools/WorkflowVisualizer/Workflow.asmdef b/Erika/Assets/Tools/WorkflowVisualizer/Workflow.asmdef
new file mode 100644
index 00000000..59e6e7cb
--- /dev/null
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Workflow.asmdef
@@ -0,0 +1,12 @@
+{
+ "name": "Workflow",
+ "references": [],
+ "optionalUnityReferences": [],
+ "includePlatforms": [],
+ "excludePlatforms": [],
+ "allowUnsafeCode": true,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": []
+} \ No newline at end of file
diff --git a/Erika/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts.meta b/Erika/Assets/Tools/WorkflowVisualizer/Workflow.asmdef.meta
index b76e98a5..537b339d 100644
--- a/Erika/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts.meta
+++ b/Erika/Assets/Tools/WorkflowVisualizer/Workflow.asmdef.meta
@@ -1,7 +1,6 @@
fileFormatVersion: 2
-guid: 20381b3eecfbfe34a9d9222868969d29
-folderAsset: yes
-DefaultImporter:
+guid: a1cffa46f496fd84d9c54dba1c31bf8f
+AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
diff --git a/Erika/Assets/Tools/WorkflowGraphs.meta b/Erika/Assets/WorkflowGraphs.meta
index cbc53a9e..cbc53a9e 100644
--- a/Erika/Assets/Tools/WorkflowGraphs.meta
+++ b/Erika/Assets/WorkflowGraphs.meta
diff --git a/Erika/Assets/Tools/WorkflowGraphs/README.txt b/Erika/Assets/WorkflowGraphs/README.txt
index af287d96..af287d96 100644
--- a/Erika/Assets/Tools/WorkflowGraphs/README.txt
+++ b/Erika/Assets/WorkflowGraphs/README.txt
diff --git a/Erika/Assets/Tools/WorkflowGraphs/README.txt.meta b/Erika/Assets/WorkflowGraphs/README.txt.meta
index 4bab09de..4bab09de 100644
--- a/Erika/Assets/Tools/WorkflowGraphs/README.txt.meta
+++ b/Erika/Assets/WorkflowGraphs/README.txt.meta