├── .gitattributes ├── .gitignore ├── Assets ├── FlatNode.meta ├── FlatNode │ ├── Editor.meta │ ├── Editor │ │ ├── Flat.meta │ │ ├── Flat │ │ │ ├── client_generate.bat │ │ │ ├── client_generate.bat.meta │ │ │ ├── flat.meta │ │ │ ├── flat │ │ │ │ ├── FlatNodeConfig.fbs │ │ │ │ └── FlatNodeConfig.fbs.meta │ │ │ ├── flatc.exe │ │ │ └── flatc.exe.meta │ │ ├── GraphSavedConfig.meta │ │ ├── GraphSavedConfig │ │ │ ├── 0.json │ │ │ ├── 0.json.meta │ │ │ ├── 1.json │ │ │ ├── 1.json.meta │ │ │ ├── GraphsRecord.json │ │ │ └── GraphsRecord.json.meta │ │ ├── Scripts.meta │ │ ├── Scripts │ │ │ ├── AddNodePopupWindow.cs │ │ │ ├── AddNodePopupWindow.cs.meta │ │ │ ├── CommentBoxView.cs │ │ │ ├── CommentBoxView.cs.meta │ │ │ ├── ConnectionLineView.cs │ │ │ ├── ConnectionLineView.cs.meta │ │ │ ├── DeleteGraphPopupWindow.cs │ │ │ ├── DeleteGraphPopupWindow.cs.meta │ │ │ ├── DisplayAllNodeDescriptionWindow.cs │ │ │ ├── DisplayAllNodeDescriptionWindow.cs.meta │ │ │ ├── DrawHelper.cs │ │ │ ├── DrawHelper.cs.meta │ │ │ ├── FlowInPortEditorView.cs │ │ │ ├── FlowInPortEditorView.cs.meta │ │ │ ├── FlowOutPortEditorView.cs │ │ │ ├── FlowOutPortEditorView.cs.meta │ │ │ ├── GraphCodeGenerator.cs │ │ │ ├── GraphCodeGenerator.cs.meta │ │ │ ├── GraphEditorData.cs │ │ │ ├── GraphEditorData.cs.meta │ │ │ ├── GraphEditorWindow.cs │ │ │ ├── GraphEditorWindow.cs.meta │ │ │ ├── GraphVariableEditorWindow.cs │ │ │ ├── GraphVariableEditorWindow.cs.meta │ │ │ ├── InputPortEditorView.cs │ │ │ ├── InputPortEditorView.cs.meta │ │ │ ├── InputPortReflectionInfo.cs │ │ │ ├── InputPortReflectionInfo.cs.meta │ │ │ ├── ListIntEditorWindow.cs │ │ │ ├── ListIntEditorWindow.cs.meta │ │ │ ├── LoadGraphPopupWindow.cs │ │ │ ├── LoadGraphPopupWindow.cs.meta │ │ │ ├── NodeEditorView.cs │ │ │ ├── NodeEditorView.cs.meta │ │ │ ├── NodeReflectionInfo.cs │ │ │ ├── NodeReflectionInfo.cs.meta │ │ │ ├── OutputPortEditorView.cs │ │ │ ├── OutputPortEditorView.cs.meta │ │ │ ├── OutputPortReflectionInfo.cs │ │ │ ├── OutputPortReflectionInfo.cs.meta │ │ │ ├── PersistenceTool.cs │ │ │ ├── PersistenceTool.cs.meta │ │ │ ├── PortEditorView.cs │ │ │ ├── PortEditorView.cs.meta │ │ │ ├── PortLayoutHelper.cs │ │ │ ├── PortLayoutHelper.cs.meta │ │ │ ├── SaveGraphPopupWindow.cs │ │ │ ├── SaveGraphPopupWindow.cs.meta │ │ │ ├── SelectGraphVariablePopupWindow.cs │ │ │ ├── SelectGraphVariablePopupWindow.cs.meta │ │ │ ├── StringEditPopupWindow.cs │ │ │ ├── StringEditPopupWindow.cs.meta │ │ │ ├── Utility.cs │ │ │ └── Utility.cs.meta │ │ ├── Skin.meta │ │ └── Skin │ │ │ ├── Burning Orange.jpg │ │ │ ├── Burning Orange.jpg.meta │ │ │ ├── Clear Sky.jpg │ │ │ ├── Clear Sky.jpg.meta │ │ │ ├── Endless River.jpg │ │ │ ├── Endless River.jpg.meta │ │ │ ├── Flickr.jpg │ │ │ ├── Flickr.jpg.meta │ │ │ ├── Green to dark.jpg │ │ │ ├── Green to dark.jpg.meta │ │ │ ├── Koko Caramel.jpg │ │ │ ├── Koko Caramel.jpg.meta │ │ │ ├── Line.png │ │ │ ├── Line.png.meta │ │ │ ├── Passion.jpg │ │ │ ├── Passion.jpg.meta │ │ │ ├── Sin City Red.jpg │ │ │ ├── Sin City Red.jpg.meta │ │ │ ├── SkillEditorSkin.guiskin │ │ │ ├── SkillEditorSkin.guiskin.meta │ │ │ ├── Turquoise flow.jpg │ │ │ ├── Turquoise flow.jpg.meta │ │ │ ├── Twitch.jpg │ │ │ ├── Twitch.jpg.meta │ │ │ ├── Vine.jpg │ │ │ ├── Vine.jpg.meta │ │ │ ├── Virgin America.jpg │ │ │ ├── Virgin America.jpg.meta │ │ │ ├── Yellow.png │ │ │ ├── Yellow.png.meta │ │ │ ├── add-green.png │ │ │ ├── add-green.png.meta │ │ │ ├── circle-shape-outline.png │ │ │ ├── circle-shape-outline.png.meta │ │ │ ├── circular-shape-silhouette.png │ │ │ ├── circular-shape-silhouette.png.meta │ │ │ ├── commentbox.png │ │ │ ├── commentbox.png.meta │ │ │ ├── error.png │ │ │ ├── error.png.meta │ │ │ ├── failure-icon.png │ │ │ ├── failure-icon.png.meta │ │ │ ├── flow-arrow.png │ │ │ ├── flow-arrow.png.meta │ │ │ ├── play-button-filled.png │ │ │ ├── play-button-filled.png.meta │ │ │ ├── play-button.png │ │ │ ├── play-button.png.meta │ │ │ ├── rounded-rectangle-blue.png │ │ │ ├── rounded-rectangle-blue.png.meta │ │ │ ├── rounded-rectangle-green.png │ │ │ ├── rounded-rectangle-green.png.meta │ │ │ ├── rounded-rectangle-purple.png │ │ │ ├── rounded-rectangle-purple.png.meta │ │ │ ├── rounded-rectangle-red.png │ │ │ ├── rounded-rectangle-red.png.meta │ │ │ ├── rounded-rectangle-white.png │ │ │ ├── rounded-rectangle-white.png.meta │ │ │ ├── rounded-rectangle-yellow.png │ │ │ ├── rounded-rectangle-yellow.png.meta │ │ │ ├── rounded-rectangle.png │ │ │ ├── rounded-rectangle.png.meta │ │ │ ├── running-icon.png │ │ │ ├── running-icon.png.meta │ │ │ ├── sleep-icon.png │ │ │ ├── sleep-icon.png.meta │ │ │ ├── statenode-blue.png │ │ │ ├── statenode-blue.png.meta │ │ │ ├── statenode-cyan.png │ │ │ ├── statenode-cyan.png.meta │ │ │ ├── statenode-darkred.png │ │ │ ├── statenode-darkred.png.meta │ │ │ ├── statenode-green.png │ │ │ ├── statenode-green.png.meta │ │ │ ├── statenode-orange.png │ │ │ ├── statenode-orange.png.meta │ │ │ ├── statenode-purple.png │ │ │ ├── statenode-purple.png.meta │ │ │ ├── success-icon.png │ │ │ ├── success-icon.png.meta │ │ │ ├── xnode_node.png │ │ │ ├── xnode_node.png.meta │ │ │ ├── xnode_node_highlight.png │ │ │ └── xnode_node_highlight.png.meta │ ├── Runtime.meta │ ├── Runtime │ │ ├── FlatGenerate.meta │ │ ├── FlatGenerate │ │ │ ├── FlatNodeConfig.cs │ │ │ └── FlatNodeConfig.cs.meta │ │ ├── FlatNodeUtility.cs │ │ ├── FlatNodeUtility.cs.meta │ │ ├── GenerateCode.meta │ │ ├── GenerateCode │ │ │ ├── NodeGenerateCode.cs │ │ │ └── NodeGenerateCode.cs.meta │ │ ├── GraphBehaviour.cs │ │ ├── GraphBehaviour.cs.meta │ │ ├── LayerMaskWrapper.cs │ │ ├── LayerMaskWrapper.cs.meta │ │ ├── Node.meta │ │ ├── Node │ │ │ ├── CreateSequenceNode.cs │ │ │ ├── CreateSequenceNode.cs.meta │ │ │ ├── DebugNode.meta │ │ │ ├── DebugNode │ │ │ │ ├── LogNode.cs │ │ │ │ └── LogNode.cs.meta │ │ │ ├── EntranceNode.meta │ │ │ ├── EntranceNode │ │ │ │ ├── EntranceNodeBase.cs │ │ │ │ ├── EntranceNodeBase.cs.meta │ │ │ │ ├── OnClickNode.cs │ │ │ │ ├── OnClickNode.cs.meta │ │ │ │ ├── OnJoyStickDownNode.cs │ │ │ │ ├── OnJoyStickDownNode.cs.meta │ │ │ │ ├── OnJoyStickDragNode.cs │ │ │ │ ├── OnJoyStickDragNode.cs.meta │ │ │ │ ├── OnJoyStickUpNode.cs │ │ │ │ └── OnJoyStickUpNode.cs.meta │ │ │ ├── FlowControl.meta │ │ │ ├── FlowControl │ │ │ │ ├── IfNode.cs │ │ │ │ ├── IfNode.cs.meta │ │ │ │ ├── RepeatNode.cs │ │ │ │ ├── RepeatNode.cs.meta │ │ │ │ ├── StopRunningNode.cs │ │ │ │ ├── StopRunningNode.cs.meta │ │ │ │ ├── UpdateNode.cs │ │ │ │ ├── UpdateNode.cs.meta │ │ │ │ ├── WaitNode.cs │ │ │ │ └── WaitNode.cs.meta │ │ │ ├── Input.meta │ │ │ ├── Input │ │ │ │ ├── CheckKeyPressNode.cs │ │ │ │ └── CheckKeyPressNode.cs.meta │ │ │ ├── MathNode.meta │ │ │ ├── MathNode │ │ │ │ ├── IntComparerNode.cs │ │ │ │ ├── IntComparerNode.cs.meta │ │ │ │ ├── InverseDirectionNode.cs │ │ │ │ ├── InverseDirectionNode.cs.meta │ │ │ │ ├── JoyStickInputConvertNode.cs │ │ │ │ ├── JoyStickInputConvertNode.cs.meta │ │ │ │ ├── NormalizeVectorNode.cs │ │ │ │ ├── NormalizeVectorNode.cs.meta │ │ │ │ ├── QuadraticBezierPathNode.cs │ │ │ │ ├── QuadraticBezierPathNode.cs.meta │ │ │ │ ├── RandomFloatNode.cs │ │ │ │ ├── RandomFloatNode.cs.meta │ │ │ │ ├── VectorAddNode.cs │ │ │ │ ├── VectorAddNode.cs.meta │ │ │ │ ├── VectorScalarNode.cs │ │ │ │ └── VectorScalarNode.cs.meta │ │ │ ├── NodeBase.cs │ │ │ ├── NodeBase.cs.meta │ │ │ ├── SetNode.meta │ │ │ ├── SetNode │ │ │ │ ├── SetVector3ComponentNode.cs │ │ │ │ └── SetVector3ComponentNode.cs.meta │ │ │ ├── TestNode.cs │ │ │ ├── TestNode.cs.meta │ │ │ ├── Variable.meta │ │ │ └── Variable │ │ │ │ ├── GraphVariableNodeBase.cs │ │ │ │ └── GraphVariableNodeBase.cs.meta │ │ ├── NodeAttributes.cs │ │ ├── NodeAttributes.cs.meta │ │ ├── NodeSequence.cs │ │ ├── NodeSequence.cs.meta │ │ ├── NodeVariable.cs │ │ └── NodeVariable.cs.meta │ ├── SampleScene.meta │ └── SampleScene │ │ ├── SampleScene_Base.unity │ │ ├── SampleScene_Base.unity.meta │ │ ├── SampleScene_CreateSequence.unity │ │ ├── SampleScene_CreateSequence.unity.meta │ │ ├── TestBase.cs │ │ ├── TestBase.cs.meta │ │ ├── TestCreateSequence.cs │ │ └── TestCreateSequence.cs.meta ├── Plugins.meta ├── Plugins │ ├── FlatBuffers.dll │ └── FlatBuffers.dll.meta ├── Resources.meta └── Resources │ ├── GraphRuntime.meta │ └── GraphRuntime │ ├── 0.bytes │ ├── 0.bytes.meta │ ├── 1.bytes │ └── 1.bytes.meta ├── LICENSE ├── README.md └── images └── Intro.png /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Library/ 2 | Packages/ 3 | ProjectSettings/ 4 | Temp/ -------------------------------------------------------------------------------- /Assets/FlatNode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2299903772217854abba087a14b357c6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f3e7b09a2a122440890fd7bd1e6ca79 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Flat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0c8ba70089b6334faf42b082a2d101a 3 | folderAsset: yes 4 | timeCreated: 1541385197 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Flat/client_generate.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | cd /d D:\UnityProjects\FlatNode\FlatNode\Assets\FlatNode\Editor\Flat\ 3 | 4 | set flatdirectory=D:\UnityProjects\FlatNode\FlatNode\Assets\FlatNode\Editor\Flat\flat\ 5 | set csharpoutputdirectory=D:\UnityProjects\FlatNode\FlatNode\Assets\FlatNode\Runtime\FlatGenerate\ 6 | 7 | flatc -n -o %csharpoutputdirectory%^ 8 | %flatdirectory%FlatNodeConfig.fbs^ 9 | --gen-onefile 10 | 11 | echo "Done!" 12 | 13 | @pause -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Flat/client_generate.bat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 746a6a176fe7f9f4d9651b3f438a61d4 3 | timeCreated: 1541385777 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Flat/flat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c8640c0ca95e2c4b8e9b45d4b44e9e6 3 | folderAsset: yes 4 | timeCreated: 1541385777 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Flat/flat/FlatNodeConfig.fbs: -------------------------------------------------------------------------------- 1 | namespace FlatNode.Runtime.Flat; 2 | 3 | table NodeInputFieldInfo{ 4 | fieldName:string; 5 | targetNodeId:int; 6 | targetPortId:int; 7 | valueTypeName:string; 8 | valueString:string; 9 | } 10 | 11 | table NodeFlowOutPortInfo{ 12 | targetNodeIds:[int]; 13 | } 14 | 15 | table NodeInfo{ 16 | nodeId:int; 17 | nodeClassTypeName:string; 18 | 19 | inputPortInfos:[NodeInputFieldInfo]; 20 | flowOutPortInfos:[NodeFlowOutPortInfo]; 21 | 22 | //入口节点和create sequence节点独有 23 | rightSideNodeIds:[int]; 24 | } 25 | 26 | table GraphVariableInfo{ 27 | id:int; 28 | typeName:string; 29 | valueString:string; 30 | } 31 | 32 | table GraphInfo{ 33 | graphId:int; 34 | //所有节点 35 | nodes:[NodeInfo]; 36 | //通用节点id 37 | commonNodeIds:[int]; 38 | //入口节点id 39 | entranceNodeIds:[int]; 40 | 41 | //技能变量信息 42 | graphVariableInfos:[GraphVariableInfo]; 43 | } 44 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Flat/flat/FlatNodeConfig.fbs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0509b41d0b94b74aa83303cd546a139 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Flat/flatc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Flat/flatc.exe -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Flat/flatc.exe.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ac0cc7842b94d942870ee5c7d047cf9 3 | timeCreated: 1541385777 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/GraphSavedConfig.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4d413b2c31570e4aa45f91d7a7f997e 3 | folderAsset: yes 4 | timeCreated: 1539676237 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/GraphSavedConfig/0.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ae865e6a81dd2b45a402ba08fe43293 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/GraphSavedConfig/1.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ff56589cbd34774da8ce045f2c45292 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/GraphSavedConfig/GraphsRecord.json: -------------------------------------------------------------------------------- 1 | { 2 | "nextGraphId": 2, 3 | "graphBaseInfoList": [ 4 | { 5 | "graphId": 0, 6 | "graphName": "基础演示", 7 | "graphDescription": "演示基础行为图编辑及运行" 8 | }, 9 | { 10 | "graphId": 1, 11 | "graphName": "测试CreateSequence", 12 | "graphDescription": "测试CreateSequence" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/GraphSavedConfig/GraphsRecord.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 132810e692937f04faa0985ab91f23bd 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab95374ce85bbd144bb5f1f2c72a83c4 3 | folderAsset: yes 4 | timeCreated: 1539676222 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/AddNodePopupWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9cf47f4a1f44400da6f009193e866516 3 | timeCreated: 1540007552 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/CommentBoxView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f5b9942b3ef4d489801b47a74ecccb5 3 | timeCreated: 1543759154 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/ConnectionLineView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 561b7800de38e60449c9f8cf5c3e5a3c 3 | timeCreated: 1540804474 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/DeleteGraphPopupWindow.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Editor 6 | { 7 | public class DeleteGraphPopupWindow : PopupWindowContent 8 | { 9 | public delegate void OnConfirmDelete(int id); 10 | 11 | private OnConfirmDelete deleteCallback; 12 | 13 | private Vector2 scrollPosition; 14 | 15 | public DeleteGraphPopupWindow(OnConfirmDelete deleteCallback) 16 | { 17 | this.deleteCallback = deleteCallback; 18 | } 19 | 20 | public override void OnGUI(Rect rect) 21 | { 22 | GUILayout.Label("删除行为图", Utility.GetGuiStyle("DeleteFileTitle")); 23 | GUILayout.Space(10); 24 | 25 | List graphBaseInfoList = PersistenceTool.LoadGraphBaseInfoList(); 26 | if (graphBaseInfoList == null) 27 | { 28 | GUILayout.Label("没有图可以删除", Utility.GetGuiStyle("LoadSkillHint")); 29 | return; 30 | } 31 | 32 | scrollPosition = GUILayout.BeginScrollView(scrollPosition); 33 | for (int i = 0; i < graphBaseInfoList.Count; i++) 34 | { 35 | GraphBaseInfo graphBaseInfo = graphBaseInfoList[i]; 36 | if (GUILayout.Button(string.Format("删除 {0}.{1} {2}", graphBaseInfo.graphId, graphBaseInfo.graphName, 37 | graphBaseInfo.graphDescription))) 38 | { 39 | if (EditorUtility.DisplayDialog("删除行为图", 40 | string.Format("是否删除行为图 {0}:{1} \n 描述:{2}", graphBaseInfo.graphId, graphBaseInfo.graphName, 41 | graphBaseInfo.graphDescription), "ok")) 42 | { 43 | if (deleteCallback != null) 44 | { 45 | deleteCallback(graphBaseInfo.graphId); 46 | 47 | if (EditorWindow.focusedWindow != null) 48 | { 49 | editorWindow.Close(); 50 | } 51 | 52 | break; 53 | } 54 | } 55 | } 56 | } 57 | 58 | GUILayout.EndScrollView(); 59 | } 60 | 61 | public override Vector2 GetWindowSize() 62 | { 63 | return new Vector2(500, 300); 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/DeleteGraphPopupWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7c3decebe274994eb8fb067d2c4c54b 3 | timeCreated: 1541422574 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/DisplayAllNodeDescriptionWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7e8709376e57d34085e54e1307375c5 3 | timeCreated: 1542343367 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/DrawHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEditor; 5 | 6 | namespace FlatNode.Editor 7 | { 8 | public static class DrawHelper 9 | { 10 | public static void DrawGrid(float gridSize,float opacity,Rect gridRect,Vector2 offset,float zoom) 11 | { 12 | Handles.BeginGUI(); 13 | Color originColor = Handles.color; 14 | Handles.color = Color.white * opacity; 15 | 16 | Vector2 gridOffset = new Vector2(offset.x % gridSize, offset.y % gridSize); 17 | 18 | Vector2 offsetCenter = gridRect.center + gridOffset; 19 | 20 | //draw to right 21 | int index = 0; 22 | while (true) 23 | { 24 | float xPos = offsetCenter.x + index * gridSize; 25 | xPos = gridRect.center.x + (xPos - gridRect.center.x) * zoom; 26 | if (xPos < gridRect.xMin || xPos > gridRect.xMax) 27 | { 28 | break; 29 | } 30 | 31 | Handles.DrawLine(new Vector3(xPos, gridRect.yMin, 0), new Vector3(xPos, gridRect.yMax, 0)); 32 | index++; 33 | } 34 | 35 | //draw to left 36 | index = 1; 37 | while (true) 38 | { 39 | float xPos = offsetCenter.x - index * gridSize; 40 | xPos = gridRect.center.x + (xPos - gridRect.center.x) * zoom; 41 | if (xPos < gridRect.xMin || xPos > gridRect.xMax) 42 | { 43 | break; 44 | } 45 | 46 | Handles.DrawLine(new Vector3(xPos, gridRect.yMin, 0), new Vector3(xPos, gridRect.yMax, 0)); 47 | index++; 48 | } 49 | 50 | //draw to up 51 | index = 0; 52 | while (true) 53 | { 54 | float yPos = offsetCenter.y - index * gridSize; 55 | yPos = gridRect.center.y + (yPos - gridRect.center.y) * zoom; 56 | if (yPos < gridRect.yMin || yPos > gridRect.yMax) 57 | { 58 | break; 59 | } 60 | 61 | Handles.DrawLine(new Vector3(gridRect.xMin, yPos, 0), new Vector3(gridRect.xMax, yPos, 0)); 62 | index++; 63 | } 64 | 65 | //draw to down 66 | index = 1; 67 | while (true) 68 | { 69 | float yPos = offsetCenter.y + index * gridSize; 70 | yPos = gridRect.center.y + (yPos - gridRect.center.y) * zoom; 71 | if (yPos < gridRect.yMin || yPos > gridRect.yMax) 72 | { 73 | break; 74 | } 75 | 76 | Handles.DrawLine(new Vector3(gridRect.xMin, yPos, 0), new Vector3(gridRect.xMax, yPos, 0)); 77 | index++; 78 | } 79 | 80 | Handles.color = originColor; 81 | Handles.EndGUI(); 82 | } 83 | 84 | public static void DrawLine(Vector2 startPosition, Vector2 endPosition) 85 | { 86 | DrawLine(startPosition,endPosition,Color.white); 87 | } 88 | 89 | public static void DrawLine(Vector2 startPosition, Vector2 endPosition, Color color) 90 | { 91 | Handles.BeginGUI(); 92 | 93 | Color originColor = Handles.color; 94 | Handles.color = color; 95 | 96 | Handles.DrawLine(startPosition,endPosition); 97 | 98 | Handles.color = originColor; 99 | 100 | Handles.EndGUI(); 101 | } 102 | 103 | } 104 | } 105 | 106 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/DrawHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd9ccbf72c8bcce4e9a95f426823c544 3 | timeCreated: 1539676786 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/FlowInPortEditorView.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace FlatNode.Editor 4 | { 5 | public class FlowInPortEditorView : PortEditorView 6 | { 7 | public int flowInFromNodeId; 8 | 9 | public FlowInPortEditorView(NodeEditorView nodeView) : base(nodeView) 10 | { 11 | this.FlowType = FlowType.In; 12 | flowInFromNodeId = -1; 13 | } 14 | 15 | public override void Draw() 16 | { 17 | base.Draw(); 18 | 19 | //流入箭头 20 | Rect flowArrowRect = new Rect(portViewRect); 21 | flowArrowRect.size = new Vector2(20f,20f); 22 | flowArrowRect.center = portViewRect.center; 23 | flowArrowRect.x = portViewRect.x + 10f; 24 | 25 | GUI.Box(flowArrowRect,string.Empty,Utility.GetGuiStyle("FlowArrow")); 26 | } 27 | 28 | public override float GetNameWidth() 29 | { 30 | return 20f; 31 | } 32 | 33 | public override void DisconnectAllConnections() 34 | { 35 | 36 | } 37 | 38 | public override string PortDescription 39 | { 40 | get { return "节点入口"; } 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/FlowInPortEditorView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4bac860585ba4b678b556b98b69207c1 3 | timeCreated: 1539757502 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/FlowOutPortEditorView.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using FlatNode.Runtime; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Editor 6 | { 7 | public class FlowOutPortEditorView : PortEditorView 8 | { 9 | public NodeFlowOutPortDefineAttribute flowoutPortAttribute; 10 | 11 | public FlowOutPortEditorView(NodeEditorView nodeView, NodeFlowOutPortDefineAttribute flowoutPortAttribute) : 12 | base(nodeView) 13 | { 14 | FlowType = FlowType.Out; 15 | this.flowoutPortAttribute = flowoutPortAttribute; 16 | } 17 | 18 | public override void Draw() 19 | { 20 | //流出连接箭头小标 21 | connectionCircleRect = new Rect(portViewRect.xMax + ConnectionCirclePadding, portViewRect.center.y - ConnectionCircleSize / 2f, 22 | ConnectionCircleSize, ConnectionCircleSize); 23 | 24 | if (IsConnected) 25 | { 26 | GUI.Box(connectionCircleRect, string.Empty, Utility.GetGuiStyle("PortArrowFilled")); 27 | } 28 | else 29 | { 30 | GUI.Box(connectionCircleRect, string.Empty, Utility.GetGuiStyle("PortArrow")); 31 | } 32 | 33 | Rect nameRect = new Rect(portViewRect); 34 | nameRect.width = nameRect.width - 5f; 35 | 36 | GUI.Label(nameRect, string.Format("({0}){1}", flowoutPortAttribute.portId, flowoutPortAttribute.portName), 37 | Utility.GetGuiStyle("PortNameRight")); 38 | } 39 | 40 | public override float GetNameWidth() 41 | { 42 | float fontSize = Utility.GetGuiStyle("PortNameRight").fontSize; 43 | return Utility.GetStringGuiWidth(flowoutPortAttribute.portName, fontSize) + 30f; //30代表的是(n)前缀的长度 44 | } 45 | 46 | public override void DisconnectAllConnections() 47 | { 48 | } 49 | 50 | public override string PortDescription 51 | { 52 | get { return flowoutPortAttribute.description; } 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/FlowOutPortEditorView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0fc0c0c087624c30a9509e3ad7fdbc8a 3 | timeCreated: 1539845573 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/GraphCodeGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 523819ae07104a1cad78d0d23a67e740 3 | timeCreated: 1544437592 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/GraphEditorData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07e065bfd9d08f1428e2ccb810d46377 3 | timeCreated: 1539676325 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/GraphEditorWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dda7e4a8ff5c20b428e6b50e40a55541 3 | timeCreated: 1539675922 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/GraphVariableEditorWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ada7fae8892640a7a39dbaa08afce3d0 3 | timeCreated: 1543908931 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/InputPortEditorView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9eca9e4ea7a24353a227c0f7de170045 3 | timeCreated: 1539771612 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/InputPortReflectionInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Reflection; 4 | using FlatNode.Runtime; 5 | using UnityEngine; 6 | 7 | namespace FlatNode.Editor 8 | { 9 | public class InputPortReflectionInfo 10 | { 11 | public NodeInputPortAttribute inputPortAttribute; 12 | 13 | private FieldInfo targetNodeIdFieldInfo; 14 | private FieldInfo targetPortIdFieldInfo; 15 | public FieldInfo nodeInputVariableFieldInfo; 16 | private FieldInfo inputVariableValueFieldInfo; 17 | 18 | public Type inputValueType; 19 | public object nodeInstance; 20 | 21 | /// 22 | /// 在节点中标记有的field的类的实例,类型是 23 | /// 24 | public object nodeInputVariableInstance; 25 | 26 | public object GetInputNodeVariableValue() 27 | { 28 | return inputVariableValueFieldInfo.GetValue(nodeInputVariableInstance); 29 | } 30 | 31 | public void SetInputNodeVariableValue(object o) 32 | { 33 | inputVariableValueFieldInfo.SetValue(nodeInputVariableInstance, o); 34 | } 35 | 36 | public string GetNodeVariableValueString() 37 | { 38 | object returnValue = inputVariableValueFieldInfo.GetValue(nodeInputVariableInstance); 39 | if (returnValue == null) 40 | { 41 | return ""; 42 | } 43 | 44 | if (inputValueType == typeof(List)) 45 | { 46 | List targetList = returnValue as List; 47 | if (targetList.Count == 0) 48 | { 49 | return ""; 50 | } 51 | 52 | string returnListString = string.Empty; 53 | for (int i = 0; i < targetList.Count; i++) 54 | { 55 | returnListString += targetList[i]; 56 | if (i != targetList.Count - 1) 57 | { 58 | returnListString += "|"; 59 | } 60 | } 61 | 62 | return returnListString; 63 | } 64 | 65 | return returnValue.ToString(); 66 | } 67 | 68 | public InputPortReflectionInfo(NodeInputPortAttribute inputPortAttribute, FieldInfo nodeInputVariableFieldInfo, object nodeInstance) 69 | { 70 | this.inputPortAttribute = inputPortAttribute; 71 | this.nodeInputVariableFieldInfo = nodeInputVariableFieldInfo; 72 | this.nodeInstance = nodeInstance; 73 | 74 | InitInputValueType(); 75 | InitInputVariable(); 76 | } 77 | 78 | void InitInputValueType() 79 | { 80 | if (nodeInputVariableFieldInfo == null) 81 | { 82 | return; 83 | } 84 | 85 | inputValueType = nodeInputVariableFieldInfo.FieldType.GetGenericArguments()[0]; 86 | } 87 | 88 | void InitInputVariable() 89 | { 90 | nodeInputVariableInstance = nodeInputVariableFieldInfo.GetValue(nodeInstance); 91 | if (nodeInputVariableInstance == null) 92 | { 93 | nodeInputVariableInstance = Activator.CreateInstance(nodeInputVariableFieldInfo.FieldType); 94 | nodeInputVariableFieldInfo.SetValue(nodeInstance, nodeInputVariableInstance); 95 | } 96 | 97 | targetNodeIdFieldInfo = nodeInputVariableFieldInfo.FieldType.GetField("targetNodeId", 98 | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); 99 | if (targetNodeIdFieldInfo == null) 100 | { 101 | Debug.LogErrorFormat("type {0} 没有targetNodeId field", nodeInputVariableFieldInfo.FieldType); 102 | return; 103 | } 104 | 105 | targetPortIdFieldInfo = nodeInputVariableFieldInfo.FieldType.GetField("targetPortId", 106 | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); 107 | if (targetPortIdFieldInfo == null) 108 | { 109 | Debug.LogErrorFormat("type {0} targetPortId field", nodeInputVariableFieldInfo.FieldType); 110 | return; 111 | } 112 | 113 | //value 114 | inputVariableValueFieldInfo = 115 | nodeInputVariableFieldInfo.FieldType.GetField("value", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); 116 | } 117 | 118 | public string PortName 119 | { 120 | get { return inputPortAttribute.portName; } 121 | } 122 | } 123 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/InputPortReflectionInfo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00fd69c132a44f9590858f89fdce4a3e 3 | timeCreated: 1540004299 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/ListIntEditorWindow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEditor; 5 | using UnityEngine; 6 | 7 | namespace FlatNode.Editor 8 | { 9 | public class ListIntEditorWindow : EditorWindow 10 | { 11 | public List targetList; 12 | public Action> callback; 13 | private Vector2 scrollPosition; 14 | 15 | public static void ShowWindow(List targetList,Action> callback) 16 | { 17 | ListIntEditorWindow window = GetWindow(); 18 | window.minSize = new Vector2(200, 300); 19 | window.maxSize = new Vector2(300, 400); 20 | window.titleContent = new GUIContent("List编辑"); 21 | // EditorWindow.GetWindow<>() 22 | 23 | if (targetList == null) 24 | { 25 | window.targetList = new List(); 26 | } 27 | else 28 | { 29 | window.targetList = new List(targetList); 30 | } 31 | window.callback = callback; 32 | } 33 | 34 | private void OnGUI() 35 | { 36 | GUILayout.Label("编辑List",Utility.GetGuiStyle("Title"),GUILayout.MinHeight(70f)); 37 | GUILayout.Space(10); 38 | 39 | GUILayout.BeginHorizontal(); 40 | GUILayout.FlexibleSpace(); 41 | 42 | GUILayout.Label("增加节点"); 43 | if (GUILayout.Button("+",GUILayout.MinWidth(30),GUILayout.MaxWidth(30))) 44 | { 45 | if (targetList == null) 46 | { 47 | targetList = new List(); 48 | } 49 | 50 | targetList.Add(0); 51 | GUI.FocusControl(null); 52 | } 53 | 54 | GUILayout.EndHorizontal(); 55 | 56 | scrollPosition = GUILayout.BeginScrollView(scrollPosition); 57 | if (targetList == null) 58 | { 59 | GUILayout.FlexibleSpace(); 60 | } 61 | else 62 | { 63 | for (int i = 0; i < targetList.Count; i++) 64 | { 65 | GUILayout.BeginHorizontal(); 66 | 67 | GUILayout.Space(20); 68 | int value = targetList[i]; 69 | 70 | EditorGUI.BeginChangeCheck(); 71 | value = EditorGUILayout.IntField(value, GUILayout.MinWidth(150)); 72 | if (EditorGUI.EndChangeCheck()) 73 | { 74 | targetList[i] = value; 75 | } 76 | 77 | GUILayout.Space(20); 78 | 79 | if (GUILayout.Button("-",GUILayout.MinWidth(20))) 80 | { 81 | targetList.RemoveAt(i); 82 | GUILayout.EndHorizontal(); 83 | GUI.FocusControl(null); 84 | break; 85 | } 86 | 87 | GUILayout.EndHorizontal(); 88 | } 89 | } 90 | GUILayout.EndScrollView(); 91 | 92 | GUILayout.FlexibleSpace(); 93 | if (GUILayout.Button("确认保存",GUILayout.MinHeight(50f))) 94 | { 95 | GUI.FocusControl(null); 96 | 97 | if (callback != null) 98 | { 99 | callback(targetList); 100 | ListIntEditorWindow window = GetWindow(); 101 | if (window != null) 102 | { 103 | window.Close(); 104 | } 105 | } 106 | } 107 | } 108 | } 109 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/ListIntEditorWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 22f6b50af7fbdbd4e895a249b621eba4 3 | timeCreated: 1541659282 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/LoadGraphPopupWindow.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Editor 6 | { 7 | public class LoadGraphPopupWindow : PopupWindowContent 8 | { 9 | public delegate void OnConfirmLoad(int id); 10 | 11 | private OnConfirmLoad loadCallback; 12 | 13 | private Vector2 scrollPosition; 14 | 15 | public LoadGraphPopupWindow(OnConfirmLoad loadCallback) 16 | { 17 | this.loadCallback = loadCallback; 18 | } 19 | 20 | public override void OnGUI(Rect rect) 21 | { 22 | GUILayout.Label("载入行为图", Utility.GetGuiStyle("Title")); 23 | GUILayout.Space(10); 24 | 25 | List graphBaseInfoList = PersistenceTool.LoadGraphBaseInfoList(); 26 | if (graphBaseInfoList == null || graphBaseInfoList.Count == 0) 27 | { 28 | GUILayout.Label("没有图可以载入", Utility.GetGuiStyle("LoadSkillHint")); 29 | return; 30 | } 31 | 32 | scrollPosition = GUILayout.BeginScrollView(scrollPosition); 33 | for (int i = 0; i < graphBaseInfoList.Count; i++) 34 | { 35 | GraphBaseInfo graphBaseInfo = graphBaseInfoList[i]; 36 | if (GUILayout.Button(string.Format("{0}.{1} {2}", graphBaseInfo.graphId, graphBaseInfo.graphName, 37 | graphBaseInfo.graphDescription))) 38 | { 39 | if (loadCallback != null) 40 | { 41 | loadCallback(graphBaseInfo.graphId); 42 | 43 | if (EditorWindow.focusedWindow != null) 44 | { 45 | editorWindow.Close(); 46 | } 47 | break; 48 | } 49 | } 50 | } 51 | 52 | GUILayout.EndScrollView(); 53 | } 54 | 55 | public override Vector2 GetWindowSize() 56 | { 57 | return new Vector2(500, 300); 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/LoadGraphPopupWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a23a20629a71bdc4abc72c74198cd947 3 | timeCreated: 1541053200 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/NodeEditorView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1edd37fc61d91484488add214ef64dc2 3 | timeCreated: 1539683178 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/NodeReflectionInfo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79699052df6a42a44944ec023975118b 3 | timeCreated: 1539687004 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/OutputPortEditorView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Editor 6 | { 7 | public class OutputPortEditorView : PortEditorView 8 | { 9 | public OutputPortReflectionInfo outputPortReflectionInfo; 10 | 11 | private List connectedNodeIdList; 12 | 13 | public Type PortValueType 14 | { 15 | get 16 | { 17 | if (overridePortType != null) 18 | { 19 | return overridePortType; 20 | } 21 | return outputPortReflectionInfo.OutputType; 22 | } 23 | } 24 | 25 | /// 26 | /// 当不使用默认类型时,更改这个 27 | /// 目前主要针对读写技能变量的节点使用 28 | /// 29 | public Type overridePortType; 30 | 31 | public OutputPortEditorView(NodeEditorView nodeView, OutputPortReflectionInfo outputPortReflectionInfo, int portId) : 32 | base(nodeView) 33 | { 34 | FlowType = FlowType.Out; 35 | this.outputPortReflectionInfo = outputPortReflectionInfo; 36 | this.portId = portId; 37 | } 38 | 39 | public override void Draw() 40 | { 41 | base.Draw(); 42 | 43 | DrawNameAndType(); 44 | } 45 | 46 | private void DrawNameAndType() 47 | { 48 | Rect nameRect = new Rect(portViewRect); 49 | nameRect.width = nameRect.width - 5f; 50 | 51 | GUI.Label(nameRect, 52 | string.Format("{0}\n({1})", outputPortReflectionInfo.PortName, Utility.BeautifyTypeName(PortValueType)), 53 | Utility.GetGuiStyle("PortNameRight")); 54 | } 55 | 56 | public override float GetNameWidth() 57 | { 58 | GUIStyle guiStyle = Utility.GetGuiStyle("PortNameRight"); 59 | float nameWidth = Utility.GetStringGuiWidth(outputPortReflectionInfo.PortName, guiStyle); 60 | float typeNameWidth = 61 | Utility.GetStringGuiWidth(Utility.BeautifyTypeName(PortValueType) + "()", guiStyle); 62 | return Mathf.Max(nameWidth, typeNameWidth); 63 | } 64 | 65 | public override void DisconnectAllConnections() 66 | { 67 | } 68 | 69 | public override string PortDescription 70 | { 71 | get { return outputPortReflectionInfo.outputPortAttribute.description; } 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/OutputPortEditorView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2bfa5d1bf09048e3bd2b3c602ebee704 3 | timeCreated: 1539848159 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/OutputPortReflectionInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using FlatNode.Runtime; 4 | 5 | namespace FlatNode.Editor 6 | { 7 | public class OutputPortReflectionInfo 8 | { 9 | public NodeOutputPortAttribute outputPortAttribute; 10 | public MethodInfo methodInfo; 11 | public object instance; 12 | 13 | public OutputPortReflectionInfo(NodeOutputPortAttribute outputPortAttribute, MethodInfo methodInfo, object instance) 14 | { 15 | this.outputPortAttribute = outputPortAttribute; 16 | this.methodInfo = methodInfo; 17 | this.instance = instance; 18 | } 19 | 20 | public OutputPortReflectionInfo(MethodInfo methodInfo) 21 | { 22 | this.methodInfo = methodInfo; 23 | 24 | object[] attributeObjects = methodInfo.GetCustomAttributes(typeof(NodeOutputPortAttribute), false); 25 | if (attributeObjects.Length > 0) 26 | { 27 | this.outputPortAttribute = attributeObjects[0] as NodeOutputPortAttribute; 28 | } 29 | } 30 | 31 | public Func CreateMethodDelegate() 32 | { 33 | Func resultDelegate = 34 | (Func) Delegate.CreateDelegate(typeof(Func), instance, methodInfo, false); 35 | return resultDelegate; 36 | } 37 | 38 | public string PortName 39 | { 40 | get { return outputPortAttribute.portName; } 41 | } 42 | 43 | public Type OutputType 44 | { 45 | get { return outputPortAttribute.outputType; } 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/OutputPortReflectionInfo.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ddc9dc3eea364104b59b85037e807b26 3 | timeCreated: 1540004253 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/PersistenceTool.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea8240d8e797e694ba23a941e6be5df6 3 | timeCreated: 1540980343 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/PortEditorView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using FlatNode.Runtime; 4 | using UnityEngine; 5 | 6 | namespace FlatNode.Editor 7 | { 8 | public abstract class PortEditorView 9 | { 10 | public int portId; 11 | public FlowType FlowType { get; protected set; } 12 | public List connectedPortList; 13 | public Rect portViewRect; 14 | 15 | public NodeEditorView NodeView { get; protected set; } 16 | 17 | public Rect connectionCircleRect; 18 | protected const float ConnectionCircleSize = 20f; 19 | protected const float ConnectionCirclePadding = 3f; 20 | 21 | public virtual bool IsConnected 22 | { 23 | get { return connectedPortList.Count > 0 || isDraggingLine; } 24 | } 25 | 26 | /// 27 | /// 是否正在连线中 28 | /// 29 | public bool isDraggingLine; 30 | 31 | public abstract float GetNameWidth(); 32 | public abstract void DisconnectAllConnections(); 33 | public abstract string PortDescription { get; } 34 | 35 | protected PortEditorView(NodeEditorView nodeView) 36 | { 37 | NodeView = nodeView; 38 | connectedPortList = new List(); 39 | } 40 | 41 | public virtual void Draw() 42 | { 43 | DrawConnectionPortCircle(); 44 | } 45 | 46 | void DrawConnectionPortCircle() 47 | { 48 | if (FlowType == FlowType.In) 49 | { 50 | connectionCircleRect = new Rect(portViewRect.x - ConnectionCirclePadding - ConnectionCircleSize, 51 | portViewRect.center.y - ConnectionCircleSize / 2f, ConnectionCircleSize, ConnectionCircleSize); 52 | } 53 | else 54 | { 55 | connectionCircleRect = new Rect(portViewRect.xMax + ConnectionCirclePadding, 56 | portViewRect.center.y - ConnectionCircleSize / 2f, ConnectionCircleSize, ConnectionCircleSize); 57 | } 58 | 59 | if (IsConnected) 60 | { 61 | GUI.Box(connectionCircleRect, string.Empty, Utility.GetGuiStyle("FillCircle")); 62 | } 63 | else 64 | { 65 | GUI.Box(connectionCircleRect, string.Empty, Utility.GetGuiStyle("Circle")); 66 | } 67 | } 68 | 69 | /// 70 | /// 技能载入完成时调入,这个时候所有节点和所有连线都已经生成,这里处理一下其他需要初始化的逻辑 71 | /// 72 | public virtual void OnLoadFinish() 73 | { 74 | 75 | } 76 | } 77 | 78 | public enum FlowType 79 | { 80 | In = 0, 81 | Out = 1 82 | } 83 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/PortEditorView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72048dc786ec4d441995cf931e625b0c 3 | timeCreated: 1539747062 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/PortLayoutHelper.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace FlatNode.Editor 4 | { 5 | public class PortLayoutHelper 6 | { 7 | public Rect layoutRect; 8 | private const float PortHeight = 20f; 9 | private const float PortPadding = 25f; 10 | 11 | private int calculatedLayoutCount; 12 | private Rect lastRect; 13 | private float xOffset; 14 | 15 | public void SetPosition(Vector2 position) 16 | { 17 | layoutRect.position = position; 18 | layoutRect.x = layoutRect.x + xOffset; 19 | calculatedLayoutCount = 0; 20 | } 21 | 22 | public void SetOffset(float xOffset,float viewWidth) 23 | { 24 | this.xOffset = xOffset; 25 | layoutRect.width = viewWidth; 26 | } 27 | 28 | public static float CalculateHeightByPortCount(int count) 29 | { 30 | return (PortHeight + PortPadding) * count; 31 | } 32 | 33 | /// 34 | /// 获取一个新的rect 35 | /// 36 | public Rect GetRect() 37 | { 38 | Rect result; 39 | if (calculatedLayoutCount == 0) 40 | { 41 | result = new Rect(layoutRect.x, layoutRect.y, layoutRect.width, PortHeight); 42 | } 43 | else 44 | { 45 | result = new Rect(layoutRect.x, lastRect.y + PortHeight + PortPadding, layoutRect.width,PortHeight); 46 | } 47 | 48 | lastRect = result; 49 | calculatedLayoutCount++; 50 | return result; 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/PortLayoutHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55d42de3a1e94cfe8b2e0515443f1f61 3 | timeCreated: 1539759829 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/SaveGraphPopupWindow.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | 4 | namespace FlatNode.Editor 5 | { 6 | public class SaveGraphPopupWindow : PopupWindowContent 7 | { 8 | public delegate void OnConfirmSave(int id,string graphName,string graphDescription); 9 | private OnConfirmSave saveCallback; 10 | 11 | private int graphId; 12 | private string graphName; 13 | private string graphDescription; 14 | 15 | public SaveGraphPopupWindow(int graphId,OnConfirmSave saveCallback) 16 | { 17 | this.graphId = graphId; 18 | this.saveCallback = saveCallback; 19 | 20 | graphName = string.Empty; 21 | graphDescription = string.Empty; 22 | } 23 | 24 | public override void OnGUI(Rect rect) 25 | { 26 | GUILayout.Label("保存行为图",Utility.GetGuiStyle("Title")); 27 | GUILayout.Space(10); 28 | 29 | GUILayout.Label(string.Format("行为图编号:{0}",graphId)); 30 | 31 | GUILayout.Label("输入行为图名称(必填)",Utility.GetGuiStyle("TitleSmall")); 32 | GUILayout.BeginHorizontal(); 33 | GUILayout.Label("行为图名称: ",GUILayout.MaxWidth(60)); 34 | graphName = GUILayout.TextField(graphName); 35 | GUILayout.EndHorizontal(); 36 | 37 | GUILayout.Space(10); 38 | 39 | GUILayout.Label("输入行为图说明",Utility.GetGuiStyle("TitleSmall")); 40 | 41 | GUILayout.BeginHorizontal(); 42 | GUILayout.Label("行为图说明: ",GUILayout.MaxWidth(60)); 43 | graphDescription = GUILayout.TextField(graphDescription,GUILayout.MinHeight(50)); 44 | GUILayout.EndHorizontal(); 45 | 46 | GUILayout.FlexibleSpace(); 47 | 48 | if (GUILayout.Button("确认保存",GUILayout.MinHeight(40))) 49 | { 50 | if (!string.IsNullOrEmpty(graphName)) 51 | { 52 | if (saveCallback != null) 53 | { 54 | saveCallback(graphId,graphName,graphDescription); 55 | } 56 | 57 | if (EditorWindow.focusedWindow != null) 58 | { 59 | editorWindow.Close(); 60 | } 61 | } 62 | } 63 | } 64 | 65 | public override Vector2 GetWindowSize() 66 | { 67 | return new Vector2(500,300); 68 | } 69 | } 70 | 71 | } 72 | 73 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/SaveGraphPopupWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54f53ad42043b7b4e8d36a3a837ce272 3 | timeCreated: 1541040524 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/SelectGraphVariablePopupWindow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | using UnityEngine; 5 | 6 | namespace FlatNode.Editor 7 | { 8 | public class SelectGraphVariablePopupWindow : PopupWindowContent 9 | { 10 | private List localVariableInfoList; 11 | private Action selectCallback; 12 | 13 | private Vector2 scrollPosition; 14 | 15 | public SelectGraphVariablePopupWindow(List localVariableInfoList, Action selectCallback) 16 | { 17 | this.localVariableInfoList = localVariableInfoList; 18 | this.selectCallback = selectCallback; 19 | } 20 | 21 | public override void OnGUI(Rect rect) 22 | { 23 | if (localVariableInfoList == null || localVariableInfoList.Count == 0) 24 | { 25 | GUILayout.Label("还没有定义变量,在 编辑器/技能/技能变量编辑器 中添加变量", Utility.GetGuiStyle("Title")); 26 | return; 27 | } 28 | 29 | //draw title 30 | GUILayout.Label("选择一个变量", Utility.GetGuiStyle("Title")); 31 | GUILayout.Space(10); 32 | 33 | scrollPosition = GUILayout.BeginScrollView(scrollPosition); 34 | 35 | for (int i = 0; i < localVariableInfoList.Count; i++) 36 | { 37 | GraphVariableInfo graphVariableInfo = localVariableInfoList[i]; 38 | 39 | if (DrawVariableItemButton(graphVariableInfo)) 40 | { 41 | if (selectCallback != null) 42 | { 43 | selectCallback(graphVariableInfo.id); 44 | } 45 | 46 | editorWindow.Close(); 47 | break; 48 | } 49 | 50 | GUILayout.Space(10); 51 | } 52 | 53 | GUILayout.EndScrollView(); 54 | } 55 | 56 | private bool DrawVariableItemButton(GraphVariableInfo graphVariableInfo) 57 | { 58 | GUILayout.BeginVertical(Utility.GetGuiStyle("LocalVariableItemBg")); 59 | 60 | GUILayout.BeginHorizontal(); 61 | 62 | GUIStyle variableNameStyle = EditorStyles.label; 63 | variableNameStyle.alignment = TextAnchor.MiddleLeft; 64 | GUILayout.Label("变量: " + graphVariableInfo.name, variableNameStyle, GUILayout.MinHeight(30)); 65 | if (GUILayout.Button("选择", GUILayout.MinHeight(30))) 66 | { 67 | return true; 68 | } 69 | 70 | GUILayout.EndHorizontal(); 71 | 72 | GUILayout.EndVertical(); 73 | return false; 74 | } 75 | 76 | public override Vector2 GetWindowSize() 77 | { 78 | return new Vector2(300, 400); 79 | } 80 | } 81 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/SelectGraphVariablePopupWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bed786e59ff34d96badf34cc3bd36f2a 3 | timeCreated: 1544063900 -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/StringEditPopupWindow.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Editor 6 | { 7 | public class StringEditPopupWindow : PopupWindowContent 8 | { 9 | private string content; 10 | private Action onEditFinish; 11 | 12 | public StringEditPopupWindow(string content, Action onEditFinish) 13 | { 14 | this.content = content; 15 | this.onEditFinish = onEditFinish; 16 | } 17 | 18 | public override void OnGUI(Rect rect) 19 | { 20 | GUILayout.Label("编辑字符串", Utility.GetGuiStyle("Title")); 21 | GUILayout.Space(10); 22 | 23 | if (content == null) 24 | { 25 | content = string.Empty; 26 | } 27 | 28 | EditorStyles.textArea.wordWrap = true; 29 | GUI.SetNextControlName("StringEditArea"); 30 | GUI.FocusControl("StringEditArea"); 31 | content = EditorGUILayout.TextArea(content,EditorStyles.textArea, GUILayout.MinHeight(80)); 32 | 33 | GUILayout.FlexibleSpace(); 34 | 35 | if (GUILayout.Button("确认",GUILayout.MinHeight(30))) 36 | { 37 | if (onEditFinish != null) 38 | { 39 | onEditFinish(content); 40 | 41 | if (EditorWindow.focusedWindow != null) 42 | { 43 | editorWindow.Close(); 44 | } 45 | } 46 | } 47 | } 48 | 49 | public override Vector2 GetWindowSize() 50 | { 51 | return new Vector2(400, 200); 52 | } 53 | } 54 | } 55 | 56 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/StringEditPopupWindow.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d83cefc021f509b45890fa8589ca053d 3 | timeCreated: 1542797893 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Scripts/Utility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca9eaa0180334504b8d25ff1fc1f1c1d 3 | timeCreated: 1539685078 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a37ce74cf81ddb744a09226e01a850d7 3 | folderAsset: yes 4 | timeCreated: 1539676231 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Burning Orange.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Burning Orange.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Burning Orange.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 019f2bd444431d648a7301867e0b08a7 3 | timeCreated: 1539678014 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Clear Sky.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Clear Sky.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Clear Sky.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf8f174f75514f9428311d292eed72c7 3 | timeCreated: 1539678020 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Endless River.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Endless River.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Endless River.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4fa5a9c5589eca8458cc38f7fd61585b 3 | timeCreated: 1539678017 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Flickr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Flickr.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Flickr.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d74081e76a442564da84b64f2a4a72c9 3 | timeCreated: 1539678020 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Green to dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Green to dark.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Green to dark.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ee634042962dfc4eac72a528f555761 3 | timeCreated: 1539678015 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Koko Caramel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Koko Caramel.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Koko Caramel.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58265133f17b78b4a9391f969074c88c 3 | timeCreated: 1539678018 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Line.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Line.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac103d40a4107124cbafae31aed993de 3 | timeCreated: 1541820379 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Passion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Passion.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Passion.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e3ecab570d0dca4aa2631393e57f34b 3 | timeCreated: 1539678016 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Sin City Red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Sin City Red.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Sin City Red.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2268eecc166ae35419dbcb5c9aa75797 3 | timeCreated: 1539678015 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/SkillEditorSkin.guiskin.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0811c239358e7b2418e5deb899790870 3 | timeCreated: 1539676289 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Turquoise flow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Turquoise flow.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Turquoise flow.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd42dbcda530b074e82c1f80d846a0b2 3 | timeCreated: 1539678019 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Twitch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Twitch.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Twitch.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e68dd1e428be43f4db874838fc32ec2c 3 | timeCreated: 1539678021 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Vine.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Vine.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Vine.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 397ffa25430246643989dd60a661cdce 3 | timeCreated: 1539678016 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Virgin America.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Virgin America.jpg -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Virgin America.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55db563f6a012994a8b77c10c0d2f89b 3 | timeCreated: 1539678018 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/Yellow.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/Yellow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f20bbc6e26a1db343af3e6bdeb712980 3 | timeCreated: 1541680125 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/add-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/add-green.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/add-green.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55f757398d338de4ba7cd850e664ee9f 3 | timeCreated: 1539678048 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/circle-shape-outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/circle-shape-outline.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/circle-shape-outline.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6b1eaefde6a80c438aa091ae477ba70 3 | timeCreated: 1539686531 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/circular-shape-silhouette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/circular-shape-silhouette.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/circular-shape-silhouette.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3fd666c97e8b6284e882c78f85156110 3 | timeCreated: 1539686531 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/commentbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/commentbox.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/commentbox.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90b0e73b8f646d046aa821f9805f5ab6 3 | timeCreated: 1543758405 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/error.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/error.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad473b281a061604797059130af9d5d8 3 | timeCreated: 1539678048 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/failure-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/failure-icon.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/failure-icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6fb397769fdc4aa46abfe9ac4f43ff66 3 | timeCreated: 1539678048 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/flow-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/flow-arrow.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/flow-arrow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18cbc4d9dd739064aadec3126ac46787 3 | timeCreated: 1539759203 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 64 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 64 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 64 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/play-button-filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/play-button-filled.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/play-button-filled.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3160d8a828914148bbf7e9922db00e0 3 | timeCreated: 1539758601 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 64 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 64 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 64 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/play-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/play-button.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/play-button.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1a0db9ee83c3b642b1b3a987b216b46 3 | timeCreated: 1539758601 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 64 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 64 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 64 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/rounded-rectangle-blue.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-blue.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92de0dcd97773ab4ab984cb5976d7340 3 | timeCreated: 1539678048 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/rounded-rectangle-green.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-green.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1c7c624085fc6646b031ca4a36a3876 3 | timeCreated: 1539678048 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/rounded-rectangle-purple.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-purple.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 783c0a45ca0c5f34f99b3ecf3cedb024 3 | timeCreated: 1539678048 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/rounded-rectangle-red.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-red.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 301564ac236855b409e728ac39e7fa97 3 | timeCreated: 1539678047 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/rounded-rectangle-white.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-white.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a4b770efa2020c49a55b8429ece3102 3 | timeCreated: 1539678047 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/rounded-rectangle-yellow.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle-yellow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a3c8ba6bd17ddd4fa70dba5b5890de3 3 | timeCreated: 1539678047 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/rounded-rectangle.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/rounded-rectangle.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 539f1de2016b0f448974e85bebd4d008 3 | timeCreated: 1539678048 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/running-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/running-icon.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/running-icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1089d439ebc21574b8577282332fe17f 3 | timeCreated: 1539678047 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/sleep-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/sleep-icon.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/sleep-icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4634d78da83740c4689bc9da15e57849 3 | timeCreated: 1539678047 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/statenode-blue.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-blue.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: de2a3d6bd13fa5949b3ae43abe2a0d5b 3 | timeCreated: 1539678048 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/statenode-cyan.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-cyan.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 533279e9dc66da549a471d1c75abb4bd 3 | timeCreated: 1544154650 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 64 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 64 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 64 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-darkred.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/statenode-darkred.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-darkred.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc3edb1380a0a5845b912bf3ba7b315c 3 | timeCreated: 1542078959 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/statenode-green.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-green.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ca0afb8de40d364aba49cb2f0fcf801 3 | timeCreated: 1539678047 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/statenode-orange.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-orange.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 519c497b74beebb43b2b56c0fb29f977 3 | timeCreated: 1539678048 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/statenode-purple.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/statenode-purple.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2925e6b1bee4b942bc39fc253b16544 3 | timeCreated: 1541403698 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/success-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/success-icon.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/success-icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3acd7f9bfff4daf4fa796f9ae190b354 3 | timeCreated: 1539678047 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/xnode_node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/xnode_node.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/xnode_node.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32e2d924081d9f94cb5f7abd772b8a33 3 | timeCreated: 1539678047 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/xnode_node_highlight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/FlatNode/Editor/Skin/xnode_node_highlight.png -------------------------------------------------------------------------------- /Assets/FlatNode/Editor/Skin/xnode_node_highlight.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3de787c97be09e14d8fa680b87067cca 3 | timeCreated: 1539678047 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: 1 32 | mipBias: -1 33 | wrapMode: 1 34 | nPOTScale: 0 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 1 46 | spriteTessellationDetail: -1 47 | textureType: 2 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | - buildTarget: Standalone 62 | maxTextureSize: 2048 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | - buildTarget: Android 70 | maxTextureSize: 2048 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | spriteSheet: 78 | serializedVersion: 2 79 | sprites: [] 80 | outline: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb0d8985a5a6c744b9a56fc78e91bdbe 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/FlatGenerate.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a75cee53e3926c499890b29a49b30f8 3 | folderAsset: yes 4 | timeCreated: 1541385792 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/FlatGenerate/FlatNodeConfig.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3b0b79bedf18a64c9ee3738038f56e1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/FlatNodeUtility.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8588e98bb4922374b91ad3499e9f847d 3 | timeCreated: 1541390626 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/GenerateCode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: badb998afa232a54eab8fe0907a0c1e4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/GenerateCode/NodeGenerateCode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86336fafd5f7c224b972efe632346fa4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/GraphBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a72393d477d7efb468664f52dc280482 3 | timeCreated: 1541070521 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/LayerMaskWrapper.cs: -------------------------------------------------------------------------------- 1 | namespace FlatNode.Runtime 2 | { 3 | /// 4 | /// 技能编辑器中编辑选择的LayerMask 5 | /// 6 | public class LayerMaskWrapper 7 | { 8 | public int layer; 9 | 10 | public static implicit operator LayerMaskWrapper(string stringValue) 11 | { 12 | LayerMaskWrapper result = new LayerMaskWrapper {layer = int.Parse(stringValue)}; 13 | return result; 14 | } 15 | 16 | public override string ToString() 17 | { 18 | return layer.ToString(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/LayerMaskWrapper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5fc95555a9c4e4fb8f8576198789e95 3 | timeCreated: 1543472580 -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 131ce657088895c41aebb6981d35c7ba 3 | folderAsset: yes 4 | timeCreated: 1539671465 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/CreateSequenceNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | /// 8 | /// 这个节点每次在执行子节点时,会创建一个新的Nodesequence或者执行之前执行完成的Nodesequence 9 | /// 10 | [GraphNode("CreateSequence","CreateSequence","这个节点每次在执行子节点时,会执行之前执行完成的NodeSequence或者创建一个新的NodeSequence")] 11 | [NodeFlowOutPortDefine(0,"创建序列")] 12 | public class CreateSequenceNode : NodeBase 13 | { 14 | [NodeInputPort(0, "初始化数量")] public NodeInputVariable initCountInputVariable; 15 | 16 | public int[] rightSideNodeIds; 17 | 18 | public override void OnEnter() 19 | { 20 | base.OnEnter(); 21 | 22 | EventTiming(0); 23 | Finish(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/CreateSequenceNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afcd708bbacd2ef4b90800ff363f8e6c 3 | timeCreated: 1541406904 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/DebugNode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ebc6cc59a8500f4da187e8d2d8fd9ee 3 | folderAsset: yes 4 | timeCreated: 1541641045 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/DebugNode/LogNode.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace FlatNode.Runtime 4 | { 5 | [GraphNode("打印日志","Debug/Log","输出到Unity日志")] 6 | [NodeFlowOutPortDefine(0,"结束")] 7 | public class LogNode : NodeBase 8 | { 9 | public enum LogType 10 | { 11 | Log, 12 | Warnning, 13 | Error 14 | } 15 | 16 | [NodeInputPort(0,"输出日志等级")] 17 | public NodeInputVariable logTypeInputVariable; 18 | [NodeInputPort(1,"输出日志内容")] 19 | public NodeInputVariable logStringInputVariable; 20 | 21 | public override void OnEnter() 22 | { 23 | base.OnEnter(); 24 | 25 | LogType logType = GetInputValue(logTypeInputVariable); 26 | string logString = GetInputValue(logStringInputVariable); 27 | 28 | switch (logType) 29 | { 30 | case LogType.Log: 31 | Debug.Log(logString); 32 | break; 33 | case LogType.Warnning: 34 | Debug.LogWarning(logString); 35 | break; 36 | case LogType.Error: 37 | Debug.LogError(logString); 38 | break; 39 | } 40 | 41 | Finish(); 42 | } 43 | } 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/DebugNode/LogNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 489db1b1022417e4a81b7546d2155cd3 3 | timeCreated: 1541414026 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e9078bebaa226c4ca5ed1ff76699b32 3 | folderAsset: yes 4 | timeCreated: 1541641006 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/EntranceNodeBase.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | public abstract class EntranceNodeBase : NodeBase 8 | { 9 | public int[] rightSideNodeIds; 10 | 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/EntranceNodeBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 44807952f59205b48aab0bb1df46f00f 3 | timeCreated: 1541401010 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/OnClickNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("OnClick","EntranceNodes/OnClick","点击技能",isEntranceNode = true)] 8 | [NodeFlowOutPortDefine(0,"点击技能时")] 9 | public class OnClickNode : EntranceNodeBase 10 | { 11 | public override void OnEnter() 12 | { 13 | base.OnEnter(); 14 | 15 | EventTiming(0); 16 | Finish(); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/OnClickNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9329d77eacb705b42a5d010b3bf760be 3 | timeCreated: 1541401113 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/OnJoyStickDownNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("OnJoyStickDown","EntranceNodes/OnJoyStickDown","按下摇杆时",isEntranceNode = true)] 8 | [NodeFlowOutPortDefine(0, "按下摇杆时")] 9 | public class OnJoyStickDownNode : EntranceNodeBase 10 | { 11 | public Vector2 joyStickInput; 12 | private NodeVariable joyStickInputVariable; 13 | 14 | public override void OnEnter() 15 | { 16 | base.OnEnter(); 17 | 18 | EventTiming(0); 19 | Finish(); 20 | } 21 | } 22 | 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/OnJoyStickDownNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff651faedbb22914cb238e74f2601f27 3 | timeCreated: 1541640208 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/OnJoyStickDragNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("OnJoyStickDrag", "EntranceNodes/OnJoyStickDrag", "摇杆拖拽", isEntranceNode = true)] 8 | [NodeFlowOutPortDefine(0, "拖拽摇杆时")] 9 | public class OnJoyStickDragNode : EntranceNodeBase 10 | { 11 | public Vector2 joyStickInput; 12 | 13 | private NodeVariable joyStickInputVariable; 14 | 15 | public override void OnEnter() 16 | { 17 | base.OnEnter(); 18 | 19 | EventTiming(0); 20 | Finish(); 21 | } 22 | 23 | [NodeOutputPort(0,typeof(Vector2),"摇杆输入")] 24 | public NodeVariable GetJoyStickInput() 25 | { 26 | if (joyStickInputVariable == null) 27 | { 28 | joyStickInputVariable = new NodeVariable(); 29 | } 30 | 31 | joyStickInputVariable.value = joyStickInput; 32 | return joyStickInputVariable; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/OnJoyStickDragNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b32109c615ba4fc46861afdd24fae335 3 | timeCreated: 1541475118 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/OnJoyStickUpNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("OnJoyStickUp","EntranceNodes/OnJoyStickUp","抬起摇杆时",isEntranceNode = true)] 8 | [NodeFlowOutPortDefine(0, "摇杆抬起时")] 9 | public class OnJoyStickUpNode : EntranceNodeBase 10 | { 11 | public Vector2 joyStickInput; 12 | private NodeVariable joyStickInputVariable; 13 | 14 | public override void OnEnter() 15 | { 16 | base.OnEnter(); 17 | 18 | EventTiming(0); 19 | Finish(); 20 | } 21 | 22 | [NodeOutputPort(0,typeof(Vector2),"摇杆输入")] 23 | public NodeVariable GetJoyStickInput() 24 | { 25 | if (joyStickInputVariable == null) 26 | { 27 | joyStickInputVariable = new NodeVariable(); 28 | } 29 | 30 | joyStickInputVariable.value = joyStickInput; 31 | return joyStickInputVariable; 32 | } 33 | } 34 | 35 | } 36 | 37 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/EntranceNode/OnJoyStickUpNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cbbeb0c83c4b1954092626494129a0ce 3 | timeCreated: 1541640560 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 45e054851130a434a83b127cdbfce830 3 | folderAsset: yes 4 | timeCreated: 1541641060 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/IfNode.cs: -------------------------------------------------------------------------------- 1 | namespace FlatNode.Runtime 2 | { 3 | [GraphNode("if","FlowControl/if")] 4 | [NodeFlowOutPortDefine(0,"true")] 5 | [NodeFlowOutPortDefine(1,"false")] 6 | public class IfNode : NodeBase 7 | { 8 | [NodeInputPort(0,"判断Bool")] 9 | public NodeInputVariable boolInput; 10 | 11 | public override void OnEnter() 12 | { 13 | base.OnEnter(); 14 | 15 | bool boolValue = GetInputValue(boolInput); 16 | 17 | EventTiming(boolValue ? 0 : 1); 18 | Finish(); 19 | } 20 | } 21 | 22 | } 23 | 24 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/IfNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1ad9e794408f984da39e5eebe1af650 3 | timeCreated: 1542452175 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/RepeatNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("重复执行","FlowControl/Repeat")] 8 | [NodeFlowOutPortDefine(0,"每一次执行时")] 9 | [NodeFlowOutPortDefine(1,"重复执行完成时")] 10 | public class RepeatNode : NodeBase 11 | { 12 | [NodeInputPort(0,"重复次数")] 13 | public NodeInputVariable repeatCountInputVariable; 14 | [NodeInputPort(1,"每次重复间隔")] 15 | public NodeInputVariable repeatIntervalSecondsInputVariable; 16 | [NodeInputPort(2,"是否立即执行第一次","进入节点后立即执行第一次")] 17 | public NodeInputVariable executeImmediatelyInputVariable; 18 | 19 | private int remaindRepeatCount; 20 | private float timer; 21 | 22 | public override void OnEnter() 23 | { 24 | base.OnEnter(); 25 | 26 | timer = 0f; 27 | remaindRepeatCount = GetInputValue(repeatCountInputVariable); 28 | 29 | bool isExecuteImmediately = GetInputValue(executeImmediatelyInputVariable); 30 | if (isExecuteImmediately) 31 | { 32 | EventTiming(0); 33 | 34 | remaindRepeatCount--; 35 | 36 | if (remaindRepeatCount == 0) 37 | { 38 | EventTiming(1); 39 | Finish(); 40 | } 41 | } 42 | } 43 | 44 | public override void OnUpdate(float deltaTime) 45 | { 46 | base.OnUpdate(deltaTime); 47 | 48 | timer += deltaTime; 49 | float repeatIntervalSeconds = GetInputValue(repeatIntervalSecondsInputVariable); 50 | 51 | if (timer >= repeatIntervalSeconds) 52 | { 53 | timer -= repeatIntervalSeconds; 54 | EventTiming(0); 55 | 56 | remaindRepeatCount--; 57 | if (remaindRepeatCount <= 0) 58 | { 59 | EventTiming(1); 60 | Finish(); 61 | } 62 | } 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/RepeatNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e4152e9921b28d408ae6f2be5296590 3 | timeCreated: 1541417952 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/StopRunningNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace FlatNode.Runtime 4 | { 5 | [GraphNode("停止运行节点","FlowControl/StopRunningNodes","停止整个技能当中特定的节点运行")] 6 | [NodeFlowOutPortDefine(0,"完成")] 7 | public class StopRunningNode : NodeBase 8 | { 9 | [NodeInputPort(0, "要停止节点的id")] public NodeInputVariable> stopNodeIdsInput; 10 | 11 | public override void OnEnter() 12 | { 13 | base.OnEnter(); 14 | 15 | List nodeIdList = GetInputValue(stopNodeIdsInput); 16 | nodeSequence.GraphBehaviour.StopNodes(nodeIdList); 17 | 18 | EventTiming(0); 19 | Finish(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/StopRunningNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 959e4ced7f43dd542b326bfc2455996e 3 | timeCreated: 1541641257 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/UpdateNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("Update","FlowControl/Update","该节点不会自动停止")] 8 | [NodeFlowOutPortDefine(0,"每一次update")] 9 | public class UpdateNode : NodeBase 10 | { 11 | [NodeInputPort(0,"间隔时间","如果小于等于0则每一帧执行一次")] 12 | public NodeInputVariable intervalInput; 13 | 14 | private float interval; 15 | private float timer; 16 | 17 | public override void OnEnter() 18 | { 19 | base.OnEnter(); 20 | 21 | timer = 0f; 22 | interval = GetInputValue(intervalInput); 23 | interval = Mathf.Max(0, interval); 24 | } 25 | 26 | public override void OnUpdate(float deltaTime) 27 | { 28 | base.OnUpdate(deltaTime); 29 | 30 | if (interval <= 0) 31 | { 32 | EventTiming(0); 33 | } 34 | else 35 | { 36 | timer += deltaTime; 37 | 38 | if (timer >= interval) 39 | { 40 | timer -= interval; 41 | EventTiming(0); 42 | } 43 | } 44 | } 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/UpdateNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ae9b4fb15ae7c541a5062e6bfcb56b1 3 | timeCreated: 1541766583 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/WaitNode.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace FlatNode.Runtime 4 | { 5 | [GraphNode("等待","FlowControl/Wait")] 6 | [NodeFlowOutPortDefine(0,"等待结束时")] 7 | public class WaitNode : NodeBase 8 | { 9 | [NodeInputPort(0,"等待时长")] 10 | public NodeInputVariable waitTimeInputVariable; 11 | 12 | private float timer; 13 | 14 | public override void OnEnter() 15 | { 16 | base.OnEnter(); 17 | 18 | timer = GetInputValue(waitTimeInputVariable); 19 | // Debug.Log("wait time: " + timer); 20 | } 21 | 22 | public override void OnUpdate(float deltaTime) 23 | { 24 | base.OnUpdate(deltaTime); 25 | timer -= deltaTime; 26 | // Debug.Log("wait " + timer); 27 | if (timer <= 0) 28 | { 29 | EventTiming(0); 30 | Finish(); 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/FlowControl/WaitNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cd25a2e634e0d548b8276edd4aad1e7 3 | timeCreated: 1541420489 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/Input.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9236c4e68d524d30a8105794f6b5e011 3 | timeCreated: 1545891390 -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/Input/CheckKeyPressNode.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace FlatNode.Runtime 4 | { 5 | [GraphNode("检测按键按下","Input/CheckKeyPress")] 6 | [NodeFlowOutPortDefine(0,"检测到按键按下时")] 7 | public class CheckKeyPressNode : NodeBase 8 | { 9 | [NodeInputPort(0,"要检测的按键")] 10 | public NodeInputVariable checkKeyCodeInput; 11 | 12 | public override void OnEnter() 13 | { 14 | base.OnEnter(); 15 | 16 | KeyCode keyCode = GetInputValue(checkKeyCodeInput); 17 | if (Input.GetKeyDown(keyCode)) 18 | { 19 | EventTiming(0); 20 | } 21 | 22 | Finish(); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/Input/CheckKeyPressNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: de2648a47d064e22aeee2190c45d2e6f 3 | timeCreated: 1545891415 -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29f38378e5226204b87ba392fafba62c 3 | folderAsset: yes 4 | timeCreated: 1541641040 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/IntComparerNode.cs: -------------------------------------------------------------------------------- 1 | namespace FlatNode.Runtime 2 | { 3 | public enum CompareType 4 | { 5 | Less = 0,// < 6 | LessEqual = 1,// <= 7 | Equal = 2, // == 8 | GreaterEqual = 3,// >= 9 | Greater = 4,// > 10 | } 11 | 12 | [GraphNode("int比较","Math/IntComparer","a compare b",hasFlowIn = false)] 13 | public class IntComparerNode : NodeBase 14 | { 15 | [NodeInputPort(0,"a")] 16 | public NodeInputVariable aInput; 17 | [NodeInputPort(1,"b")] 18 | public NodeInputVariable bInput; 19 | [NodeInputPort(2,"比较方式","a compare b")] 20 | public NodeInputVariable compareTypeInput; 21 | 22 | private NodeVariable resultVariable; 23 | 24 | [NodeOutputPort(0,typeof(bool),"结果")] 25 | public NodeVariable GetCompareResult() 26 | { 27 | if (resultVariable == null) 28 | { 29 | resultVariable = new NodeVariable(); 30 | } 31 | 32 | int a = GetInputValue(aInput); 33 | int b = GetInputValue(bInput); 34 | CompareType compareType = GetInputValue(compareTypeInput); 35 | switch (compareType) 36 | { 37 | case CompareType.Less: 38 | resultVariable.value = a < b; 39 | break; 40 | case CompareType.LessEqual: 41 | resultVariable.value = a <= b; 42 | break; 43 | case CompareType.Equal: 44 | resultVariable.value = a == b; 45 | break; 46 | case CompareType.GreaterEqual: 47 | resultVariable.value = a >= b; 48 | break; 49 | case CompareType.Greater: 50 | resultVariable.value = a > b; 51 | break; 52 | } 53 | 54 | return resultVariable; 55 | } 56 | } 57 | 58 | } 59 | 60 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/IntComparerNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df05c3e418c808241aa63ef8cf3bde6a 3 | timeCreated: 1542451637 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/InverseDirectionNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("反转方向","Math/InverseDirection",hasFlowIn = false)] 8 | public class InverseDirectionNode : NodeBase 9 | { 10 | [NodeInputPort(0,"输入方向")] 11 | public NodeInputVariable directionInput; 12 | 13 | private NodeVariable inverseDirectionVariable; 14 | 15 | [NodeOutputPort(0,typeof(Vector3),"反方向向量")] 16 | public NodeVariable GetInverseDirection() 17 | { 18 | Vector3 originDirection = GetInputValue(directionInput); 19 | 20 | if (inverseDirectionVariable == null) 21 | { 22 | inverseDirectionVariable = new NodeVariable(); 23 | } 24 | 25 | inverseDirectionVariable.value = -originDirection; 26 | return inverseDirectionVariable; 27 | } 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/InverseDirectionNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc3ebc71b18b28e419146aca128b87b9 3 | timeCreated: 1542459445 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/JoyStickInputConvertNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("转换摇杆输入","Math/JoyStickInputConvert","摇杆的输入是一个Vector2,将该v2的x和y分别放入vector3的x和z",hasFlowIn = false)] 8 | public class JoyStickInputConvertNode : NodeBase 9 | { 10 | [NodeInputPort(0,"Vector2")] 11 | public NodeInputVariable vector2Input; 12 | 13 | NodeVariable convertV3Variable = new NodeVariable(); 14 | 15 | [NodeOutputPort(0,typeof(Vector3),"Vector3")] 16 | public NodeVariable GetConvertedVector3() 17 | { 18 | Vector2 v2 = GetInputValue(vector2Input); 19 | Vector3 v3 = new Vector3(v2.x,0,v2.y); 20 | convertV3Variable.value = v3; 21 | return convertV3Variable; 22 | } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/JoyStickInputConvertNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8267fb9c9b6e534eb25be42280de313 3 | timeCreated: 1542361025 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/NormalizeVectorNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("NormalizeVector","Math/NormalizeVector",hasFlowIn = false)] 8 | public class NormalizeVectorNode : NodeBase 9 | { 10 | [NodeInputPort(0,"Vector2")] 11 | public NodeInputVariable vector2Input; 12 | [NodeInputPort(1,"Vector3")] 13 | public NodeInputVariable vector3Input; 14 | 15 | private NodeVariable normalizedVector2Variable = new NodeVariable(); 16 | private NodeVariable normalizedVector3Variable = new NodeVariable(); 17 | 18 | [NodeOutputPort(0,typeof(Vector2),"NormalizedVector2")] 19 | public NodeVariable GetNormalizedVector2() 20 | { 21 | Vector2 vector2 = GetInputValue(vector2Input); 22 | normalizedVector2Variable.value = vector2.normalized; 23 | return normalizedVector2Variable; 24 | } 25 | 26 | [NodeOutputPort(1,typeof(Vector3),"NormalizedVector3")] 27 | public NodeVariable GetNormalizedVector3() 28 | { 29 | Vector3 vector3 = GetInputValue(vector3Input); 30 | normalizedVector3Variable.value = vector3.normalized; 31 | return normalizedVector3Variable; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/NormalizeVectorNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a59f639ddf23d20459c6c20735196d60 3 | timeCreated: 1542360522 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/QuadraticBezierPathNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEngine; 3 | 4 | namespace FlatNode.Runtime 5 | { 6 | /// 7 | /// 计算贝塞尔曲线路径点 8 | /// 9 | [GraphNode("计算曲线路径点","Math/QuadraticBezierPath","计算贝塞尔曲线(Quadratic)的路径点")] 10 | [NodeFlowOutPortDefine(0,"计算完成")] 11 | public class QuadraticBezierPathNode : NodeBase 12 | { 13 | [NodeInputPort(0,"开始位置")] 14 | public NodeInputVariable startPosInput; 15 | [NodeInputPort(1,"结束位置")] 16 | public NodeInputVariable endPosInput; 17 | [NodeInputPort(2,"中间点高度偏移")] 18 | public NodeInputVariable centerHeightOffsetInput; 19 | [NodeInputPort(3,"每一段路径的长度","是指结果路径点中,相邻两点的距离")] 20 | public NodeInputVariable spanLengthInput; 21 | 22 | NodeVariable> pathResultVariable = new NodeVariable>(); 23 | private const int samplePointCount = 20; 24 | private List samplePointList; 25 | 26 | public override void OnEnter() 27 | { 28 | base.OnEnter(); 29 | 30 | CalculatePathPoint(); 31 | 32 | EventTiming(0); 33 | Finish(); 34 | } 35 | 36 | [NodeOutputPort(0,typeof(List),"路径点")] 37 | public NodeVariable GetPathResultPoints() 38 | { 39 | return pathResultVariable; 40 | } 41 | 42 | void CalculatePathPoint() 43 | { 44 | if (samplePointList == null) 45 | { 46 | samplePointList = new List(); 47 | } 48 | samplePointList.Clear(); 49 | 50 | if (pathResultVariable.value == null) 51 | { 52 | pathResultVariable.value = new List(); 53 | } 54 | 55 | List resultList = pathResultVariable.value; 56 | resultList.Clear(); 57 | 58 | Vector3 startPos = GetInputValue(startPosInput); 59 | Vector3 endPos = GetInputValue(endPosInput); 60 | 61 | float yOffset = GetInputValue(centerHeightOffsetInput); 62 | Vector3 controlPoint = (startPos + endPos) * 0.5f; 63 | float height = startPos.y > endPos.y ? startPos.y : endPos.y; 64 | controlPoint.y = yOffset + height; 65 | 66 | //包含起点和终点,总数量是samplePointCount+2 67 | for (int i = 0; i <= samplePointCount; i++) 68 | { 69 | float t = (float)i / samplePointCount; 70 | 71 | Vector3 samplePoint = (1 - t) * (1 - t) * startPos + 2 * (1 - t) * t * controlPoint + t * t * endPos; 72 | 73 | samplePointList.Add(samplePoint); 74 | } 75 | 76 | float spanLength = GetInputValue(spanLengthInput); 77 | float remainedSpanLength = spanLength; 78 | Vector3 previousPoint = samplePointList[0]; 79 | //因为bezier曲线的点分布不是和t一样线性分布的,所以这里需要重新布置一下路径点位置 80 | for (int i = 0; i < samplePointList.Count; i++) 81 | { 82 | Vector3 nextPoint = samplePointList[i]; 83 | 84 | float twoPointsSpan = (nextPoint - previousPoint).magnitude; 85 | if (remainedSpanLength - twoPointsSpan < 0) 86 | { 87 | Vector3 resultPoint = previousPoint + (nextPoint - previousPoint).normalized * remainedSpanLength; 88 | resultList.Add(resultPoint); 89 | 90 | previousPoint = resultPoint; 91 | remainedSpanLength = spanLength; 92 | i--; 93 | } 94 | else 95 | { 96 | remainedSpanLength -= twoPointsSpan; 97 | previousPoint = nextPoint; 98 | 99 | //如果是最后一个点 100 | if (i == samplePointList.Count - 1) 101 | { 102 | resultList.Add(nextPoint); 103 | } 104 | } 105 | } 106 | } 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/QuadraticBezierPathNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5409314b2d9e8194eab1f8ee341acbc4 3 | timeCreated: 1542765104 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/RandomFloatNode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace FlatNode.Runtime 6 | { 7 | [GraphNode("RandomFloat", "Math/RandomFloat", "随机一个浮点数", hasFlowIn = false)] 8 | public class RandomFloatNode : NodeBase 9 | { 10 | [NodeInputPort(0, "最小", "包含")] public NodeInputVariable minInputVariable; 11 | [NodeInputPort(1, "最大", "包含")] public NodeInputVariable maxInputVariable; 12 | 13 | private NodeVariable returnFloatVariable; 14 | 15 | [NodeOutputPort(0, typeof(float), "随机浮点数")] 16 | public NodeVariable GetRandomFloat() 17 | { 18 | if (returnFloatVariable == null) 19 | { 20 | returnFloatVariable = new NodeVariable(); 21 | } 22 | 23 | float min = GetInputValue(minInputVariable); 24 | float max = GetInputValue(maxInputVariable); 25 | 26 | returnFloatVariable.value = Random.Range(min, max); 27 | return returnFloatVariable; 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/RandomFloatNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00e5c57c96c9da04e892bf32c21bae70 3 | timeCreated: 1541420663 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/VectorAddNode.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace FlatNode.Runtime 4 | { 5 | [GraphNode("向量Vector3加减","Math/VectorAdd","a 加/减 b",hasFlowIn = false)] 6 | public class VectorAddNode : NodeBase 7 | { 8 | public enum CalculateType 9 | { 10 | Add = 0, 11 | Minus = 1, 12 | } 13 | 14 | private CalculateType calculateType; 15 | 16 | [NodeInputPort(0,"向量a")] 17 | public NodeInputVariable aVectorInput; 18 | [NodeInputPort(1,"向量b")] 19 | public NodeInputVariable bVectorInput; 20 | [NodeInputPort(2,"计算方式")] 21 | public NodeInputVariable typeInput; 22 | 23 | private NodeVariable resultVectorVariab; 24 | 25 | [NodeOutputPort(0,typeof(Vector3),"计算结果")] 26 | public NodeVariable GetResult() 27 | { 28 | if (resultVectorVariab == null) 29 | { 30 | resultVectorVariab = new NodeVariable(); 31 | } 32 | 33 | calculateType = GetInputValue(typeInput); 34 | Vector3 a = GetInputValue(aVectorInput); 35 | Vector3 b = GetInputValue(bVectorInput); 36 | 37 | switch (calculateType) 38 | { 39 | case CalculateType.Add: 40 | resultVectorVariab.value = a + b; 41 | break; 42 | case CalculateType.Minus: 43 | resultVectorVariab.value = a - b; 44 | break; 45 | } 46 | 47 | return resultVectorVariab; 48 | } 49 | } 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/VectorAddNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d64b6ce815691914c9a2cc4bc044d80b 3 | timeCreated: 1542512670 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/VectorScalarNode.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace FlatNode.Runtime 4 | { 5 | [GraphNode("缩放Vector","Math/VectorScalar",hasFlowIn = false)] 6 | public class VectorScalarNode : NodeBase 7 | { 8 | [NodeInputPort(0,"输入Vector2")] 9 | public NodeInputVariable v2Input; 10 | [NodeInputPort(1,"输入Vector3")] 11 | public NodeInputVariable v3Input; 12 | 13 | [NodeInputPort(2, "缩放量")] public NodeInputVariable scalarInput; 14 | 15 | private NodeVariable scalarVector2Variable; 16 | private NodeVariable scalarVector3Variable; 17 | 18 | [NodeOutputPort(0,typeof(Vector2),"缩放后Vector2")] 19 | public NodeVariable GetScalarVector2() 20 | { 21 | float scalar = GetInputValue(scalarInput); 22 | if (scalarVector2Variable == null) 23 | { 24 | scalarVector2Variable = new NodeVariable(); 25 | } 26 | 27 | Vector2 v2 = GetInputValue(v2Input); 28 | scalarVector2Variable.value = v2 * scalar; 29 | return scalarVector2Variable; 30 | } 31 | 32 | [NodeOutputPort(1,typeof(Vector3),"缩放后Vector3")] 33 | public NodeVariable GetScalarVector3() 34 | { 35 | float scalar = GetInputValue(scalarInput); 36 | if (scalarVector3Variable == null) 37 | { 38 | scalarVector3Variable = new NodeVariable(); 39 | } 40 | 41 | Vector3 v3 = GetInputValue(v3Input); 42 | scalarVector3Variable.value = v3 * scalar; 43 | return scalarVector3Variable; 44 | } 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/MathNode/VectorScalarNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8e968c58b8b69c4fa5d3c3100d04b27 3 | timeCreated: 1542510167 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/NodeBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be12a72b783adea458b4161499b28c32 3 | timeCreated: 1539671479 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/SetNode.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da9452c71e9773a45bb72ace2bde97a4 3 | folderAsset: yes 4 | timeCreated: 1542943203 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/SetNode/SetVector3ComponentNode.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace FlatNode.Runtime 4 | { 5 | public enum VectorComponent 6 | { 7 | X = 0, 8 | Y = 1, 9 | Z = 2 10 | } 11 | [GraphNode("设置Vector3分量","Set/SetVector3Component",hasFlowIn = false)] 12 | public class SetVector3ComponentNode : NodeBase 13 | { 14 | [NodeInputPort(0,"v3")] 15 | public NodeInputVariable originV3Input; 16 | [NodeInputPort(1,"分量")] 17 | public NodeInputVariable targetComponentInput; 18 | [NodeInputPort(2, "修改值")] 19 | public NodeInputVariable valueInput; 20 | 21 | private NodeVariable resultV3Variable; 22 | 23 | [NodeOutputPort(0,typeof(Vector3),"result")] 24 | public NodeVariable GetVector3Result() 25 | { 26 | if (resultV3Variable == null) 27 | { 28 | resultV3Variable = new NodeVariable(); 29 | } 30 | 31 | VectorComponent targetComponent = GetInputValue(targetComponentInput); 32 | 33 | Vector3 originVector3 = GetInputValue(originV3Input); 34 | float targetValue = GetInputValue(valueInput); 35 | 36 | switch (targetComponent) 37 | { 38 | case VectorComponent.X: 39 | originVector3.x = targetValue; 40 | break; 41 | case VectorComponent.Y: 42 | originVector3.y = targetValue; 43 | break; 44 | case VectorComponent.Z: 45 | originVector3.z = targetValue; 46 | break; 47 | } 48 | 49 | resultV3Variable.value = originVector3; 50 | return resultV3Variable; 51 | } 52 | } 53 | 54 | } 55 | 56 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/SetNode/SetVector3ComponentNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c3af3ce836f19249b70f5798ad46155 3 | timeCreated: 1542943191 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/TestNode.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | using UnityEngine.Scripting; 4 | using Random = UnityEngine.Random; 5 | 6 | namespace FlatNode.Runtime 7 | { 8 | [GraphNode("测试用节点","Test/TestNode","用于测试的节点")] 9 | public class TestNode : NodeBase 10 | { 11 | [NodeInputPort(0,"类型测试")] 12 | public NodeInputVariable damageInputVariable; 13 | } 14 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/TestNode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc9e884b009901747a522c5b484098c8 3 | timeCreated: 1539672414 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/Variable.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a5a1c6b8d244de6a949cc7707ed323c 3 | timeCreated: 1543903802 -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/Variable/GraphVariableNodeBase.cs: -------------------------------------------------------------------------------- 1 | namespace FlatNode.Runtime 2 | { 3 | /// 4 | /// 通过该节点子类,可以预先输入一些变量,或者在运行时将临时变量放到技能中。 5 | /// 6 | public abstract class GraphVariableNodeBase : NodeBase 7 | { 8 | 9 | } 10 | 11 | /// 12 | /// 主要是方便编辑器根据类型,打开对应的编辑窗口 13 | /// 14 | public class VariableWrapper 15 | { 16 | public int variableId = -1; 17 | 18 | public override string ToString() 19 | { 20 | return variableId.ToString(); 21 | } 22 | 23 | public static implicit operator VariableWrapper(int value) 24 | { 25 | return new VariableWrapper 26 | { 27 | variableId = value 28 | }; 29 | } 30 | } 31 | 32 | /// 33 | /// 从技能中获取临时变量 34 | /// 35 | [GraphNode("获取变量","Variable/GetVariable","获取技能的临时变量",hasFlowIn = false)] 36 | public class GetVariableNode : GraphVariableNodeBase 37 | { 38 | [NodeInputPort(0,"读变量")] 39 | public NodeInputVariable getVariableWrapperInput; 40 | 41 | [NodeOutputPort(0,typeof(NodeVariable),"输出")] 42 | public NodeVariable GetValue() 43 | { 44 | int variableId = GetInputValue(getVariableWrapperInput).variableId; 45 | return graphBehaviour.GetGraphVariable(variableId); 46 | } 47 | } 48 | 49 | /// 50 | /// 将临时变量写入技能 51 | /// 52 | [GraphNode("写入变量","Variable/SetVariable","将内容写入临时变量")] 53 | [NodeFlowOutPortDefine(0,"完成")] 54 | public class SetVariableNode : GraphVariableNodeBase 55 | { 56 | [NodeInputPort(0,"写变量")] 57 | public NodeInputVariable setVariableWrapperInput; 58 | 59 | [NodeInputPort(1,"要存储的变量")] 60 | public NodeInputVariable valueVariableInput; 61 | 62 | public override void OnEnter() 63 | { 64 | base.OnEnter(); 65 | 66 | int variableId = GetInputValue(setVariableWrapperInput).variableId; 67 | NodeVariable saveValue = GetInputValueRaw(valueVariableInput); 68 | 69 | graphBehaviour.SetGraphVariable(variableId,saveValue); 70 | 71 | EventTiming(0); 72 | Finish(); 73 | } 74 | } 75 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/Node/Variable/GraphVariableNodeBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b074f2b502814f8ab8b2342e8aeca977 3 | timeCreated: 1543903825 -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/NodeAttributes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace FlatNode.Runtime 4 | { 5 | [AttributeUsage(AttributeTargets.Class)] 6 | public class GraphNodeAttribute : Attribute 7 | { 8 | public string nodeName; 9 | public string nodeMenuPath; 10 | /// 11 | /// 该节点是否有流程进入接口 12 | /// 13 | public bool hasFlowIn; 14 | public string nodeDescription; 15 | 16 | /// 17 | /// 是否是进入节点,进入节点忽略流入接口 18 | /// 19 | public bool isEntranceNode; 20 | 21 | public GraphNodeAttribute(string nodeName, string nodeMenuPath, string nodeDescription = "", bool hasFlowIn = true,bool isEntranceNode = false) 22 | { 23 | this.nodeName = nodeName; 24 | this.nodeMenuPath = nodeMenuPath; 25 | this.nodeDescription = nodeDescription; 26 | this.hasFlowIn = hasFlowIn; 27 | 28 | if (isEntranceNode) 29 | { 30 | this.hasFlowIn = false; 31 | } 32 | } 33 | } 34 | 35 | [AttributeUsage(AttributeTargets.Class,AllowMultiple = true)] 36 | public class NodeFlowOutPortDefineAttribute : Attribute 37 | { 38 | public int portId; 39 | public string portName; 40 | public string description; 41 | 42 | public NodeFlowOutPortDefineAttribute(int portId, string portName, string description = "") 43 | { 44 | this.portId = portId; 45 | this.portName = portName; 46 | this.description = description; 47 | } 48 | } 49 | 50 | [AttributeUsage(AttributeTargets.Field)] 51 | public class NodeInputPortAttribute : Attribute 52 | { 53 | public int priority; 54 | public string portName; 55 | public string description; 56 | 57 | public NodeInputPortAttribute(int priority, string portName,string description = "") 58 | { 59 | this.priority = priority; 60 | this.portName = portName; 61 | this.description = description; 62 | } 63 | } 64 | 65 | [AttributeUsage(AttributeTargets.Method)] 66 | public class NodeOutputPortAttribute : Attribute 67 | { 68 | public int portId; 69 | public Type outputType; 70 | public string portName; 71 | public string description; 72 | 73 | public NodeOutputPortAttribute(int portId,Type outputType,string portName, string description = "") 74 | { 75 | this.portId = portId; 76 | this.outputType = outputType; 77 | this.portName = portName; 78 | this.description = description; 79 | } 80 | } 81 | } -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/NodeAttributes.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 418bb0ee608524e4abc7a6785bec3e96 3 | timeCreated: 1539671137 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/NodeSequence.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7053b0f79b6b36b43848acf4810dd739 3 | timeCreated: 1541216564 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/NodeVariable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace FlatNode.Runtime 4 | { 5 | [Serializable] 6 | public abstract class NodeVariable 7 | { 8 | 9 | 10 | } 11 | 12 | [Serializable] 13 | public class NodeVariable : NodeVariable 14 | { 15 | public T value; 16 | 17 | public NodeVariable() 18 | { 19 | } 20 | 21 | public NodeVariable(T value) 22 | { 23 | this.value = value; 24 | } 25 | } 26 | 27 | [Serializable] 28 | public class NodeInputVariable 29 | { 30 | public int targetNodeId = -1; 31 | public int targetPortId = -1; 32 | 33 | public T value; 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /Assets/FlatNode/Runtime/NodeVariable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 881b574f329696b44a1a0b6caa48b089 3 | timeCreated: 1539661423 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/FlatNode/SampleScene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f704ae4b4f98ae41a0bce26658850c1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/FlatNode/SampleScene/SampleScene_Base.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99c9720ab356a0642a771bea13969a05 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/FlatNode/SampleScene/SampleScene_CreateSequence.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 418cc2d9182bf9444b201bce0083e149 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/FlatNode/SampleScene/TestBase.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using FlatBuffers; 4 | using UnityEngine; 5 | using FlatNode.Runtime; 6 | 7 | public class TestBase : MonoBehaviour { 8 | private GraphBehaviour graphBehaviour; 9 | 10 | private void Start() 11 | { 12 | //合适的时机调用初始化节点反序列化功能的类 13 | FlatNodeUtility.Init(); 14 | 15 | TextAsset textAsset = Resources.Load("GraphRuntime/0"); 16 | if (textAsset == null) 17 | { 18 | return; 19 | } 20 | 21 | byte[] bytes = textAsset.bytes; 22 | ByteBuffer byteBuffer = new ByteBuffer(bytes); 23 | 24 | graphBehaviour = new GraphBehaviour(byteBuffer); 25 | graphBehaviour.Init(); 26 | //行为图的入口方法,可自行拓展 27 | graphBehaviour.OnClick(); 28 | } 29 | 30 | private void Update() 31 | { 32 | //需要一个地方来驱动行为图的Update 33 | if (graphBehaviour != null) 34 | { 35 | graphBehaviour.Update(Time.deltaTime); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Assets/FlatNode/SampleScene/TestBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a4052fd1e68624409a3aae84ce59056 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/FlatNode/SampleScene/TestCreateSequence.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using FlatBuffers; 4 | using FlatNode.Runtime; 5 | using UnityEngine; 6 | 7 | public class TestCreateSequence : MonoBehaviour { 8 | 9 | private GraphBehaviour graphBehaviour; 10 | 11 | private void Start() 12 | { 13 | //合适的时机调用初始化节点反序列化功能的类 14 | FlatNodeUtility.Init(); 15 | 16 | TextAsset textAsset = Resources.Load("GraphRuntime/1"); 17 | if (textAsset == null) 18 | { 19 | return; 20 | } 21 | 22 | byte[] bytes = textAsset.bytes; 23 | ByteBuffer byteBuffer = new ByteBuffer(bytes); 24 | 25 | graphBehaviour = new GraphBehaviour(byteBuffer); 26 | graphBehaviour.Init(); 27 | //行为图的入口方法,可自行拓展 28 | graphBehaviour.OnClick(); 29 | } 30 | 31 | private void Update() 32 | { 33 | //需要一个地方来驱动行为图的Update 34 | if (graphBehaviour != null) 35 | { 36 | graphBehaviour.Update(Time.deltaTime); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Assets/FlatNode/SampleScene/TestCreateSequence.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ec803f7db03b6846972f8d949daf7e9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3057b210ecaa2524891a1c1cb8598dfc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/FlatBuffers.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/Plugins/FlatBuffers.dll -------------------------------------------------------------------------------- /Assets/Plugins/FlatBuffers.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87052090c67c9f440933f962e35a7e56 3 | timeCreated: 1540457520 4 | licenseType: Pro 5 | PluginImporter: 6 | serializedVersion: 2 7 | iconMap: {} 8 | executionOrder: {} 9 | isPreloaded: 0 10 | isOverridable: 0 11 | platformData: 12 | data: 13 | first: 14 | Any: 15 | second: 16 | enabled: 1 17 | settings: {} 18 | data: 19 | first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | data: 26 | first: 27 | Windows Store Apps: WindowsStoreApps 28 | second: 29 | enabled: 0 30 | settings: 31 | CPU: AnyCPU 32 | userData: 33 | assetBundleName: 34 | assetBundleVariant: 35 | -------------------------------------------------------------------------------- /Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2cb5aafbd789eb14dbedb7c302e8dc5a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/GraphRuntime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a59ef1f89d1c6bb439e20764ed356c1d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/GraphRuntime/0.bytes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/Resources/GraphRuntime/0.bytes -------------------------------------------------------------------------------- /Assets/Resources/GraphRuntime/0.bytes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 972eb52d3adcc1a449b90a85c732a24d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/GraphRuntime/1.bytes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/Assets/Resources/GraphRuntime/1.bytes -------------------------------------------------------------------------------- /Assets/Resources/GraphRuntime/1.bytes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c14bc5b0188e7c047b24997672ae6973 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 LagField 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. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FlatNode 2 | 快速、简洁、自由扩展的Unity节点编辑器。开箱即用,整个系统运行时不依赖于MonoBehaviour,适合需要在自己C#客户端或服务器框架中集成节点编辑功能的需求。 3 | ![image](https://github.com/LagField/FlatNode/blob/master/images/Intro.png) 4 | 5 | # 使用方式 6 | 待续... 7 | -------------------------------------------------------------------------------- /images/Intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LagField/FlatNode/9379aed96d3ee4ab700bb566e96a032fb73be642/images/Intro.png --------------------------------------------------------------------------------