├── .gitignore ├── .vscode └── settings.json ├── .vsconfig ├── Assets ├── Playtests.meta ├── Playtests │ ├── Enemy.mat │ ├── Enemy.mat.meta │ ├── FindPlayer.cs │ ├── FindPlayer.cs.meta │ ├── Movable.mat │ ├── Movable.mat.meta │ ├── New Graph.asset │ ├── New Graph.asset.meta │ ├── Player.cs │ ├── Player.cs.meta │ ├── Player.mat │ ├── Player.mat.meta │ ├── Solid.mat │ └── Solid.mat.meta ├── Resources.meta ├── Resources │ ├── BillingMode.json │ └── BillingMode.json.meta ├── Scenes.meta └── Scenes │ ├── New Graph.asset │ ├── New Graph.asset.meta │ ├── SampleScene.unity │ ├── SampleScene.unity.meta │ ├── SampleSceneSettings.lighting │ └── SampleSceneSettings.lighting.meta ├── Packages ├── Waypoints │ ├── Editor.meta │ ├── Editor │ │ ├── WaypointGraphEditor.cs │ │ ├── WaypointGraphEditor.cs.meta │ │ ├── WaypointTool.cs │ │ ├── WaypointTool.cs.meta │ │ ├── Waypoints-editor.asmdef │ │ └── Waypoints-editor.asmdef.meta │ ├── Resources.meta │ ├── Resources │ │ ├── bulk.png │ │ ├── bulk.png.meta │ │ ├── button-down.png │ │ ├── button-down.png.meta │ │ ├── button-up.png │ │ ├── button-up.png.meta │ │ ├── button.ase │ │ ├── button.ase.meta │ │ ├── cancel.png │ │ ├── cancel.png.meta │ │ ├── clear.png │ │ ├── clear.png.meta │ │ ├── confirm.png │ │ ├── confirm.png.meta │ │ ├── gears.png │ │ ├── gears.png.meta │ │ ├── pen.png │ │ ├── pen.png.meta │ │ ├── plus.png │ │ ├── plus.png.meta │ │ ├── remove.png │ │ ├── remove.png.meta │ │ ├── waypoint-editor-tool.png │ │ ├── waypoint-editor-tool.png.meta │ │ ├── waypoint-icon.png │ │ └── waypoint-icon.png.meta │ ├── Scripts.meta │ ├── Scripts │ │ ├── BulkControl.cs │ │ ├── BulkControl.cs.meta │ │ ├── Graph.cs │ │ ├── Graph.cs.meta │ │ ├── Node.cs │ │ ├── Node.cs.meta │ │ ├── WaypointGraph.cs │ │ ├── WaypointGraph.cs.meta │ │ ├── Waypoints.asmdef │ │ └── Waypoints.asmdef.meta │ ├── package.json │ └── package.json.meta ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset └── XRSettings.asset ├── README.md └── UserSettings ├── EditorUserSettings.asset ├── Layouts └── default-2022.dwlt ├── Search.index └── Search.settings /.gitignore: -------------------------------------------------------------------------------- 1 | Library 2 | obj 3 | Temp 4 | Build 5 | Logs 6 | *.csproj 7 | *.sln 8 | .vs 9 | .vs\Nodegraph 10 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": 3 | { 4 | "**/.DS_Store":true, 5 | "**/.git":true, 6 | "**/.gitmodules":true, 7 | "**/*.booproj":true, 8 | "**/*.pidb":true, 9 | "**/*.suo":true, 10 | "**/*.user":true, 11 | "**/*.userprefs":true, 12 | "**/*.unityproj":true, 13 | "**/*.dll":true, 14 | "**/*.exe":true, 15 | "**/*.pdf":true, 16 | "**/*.mid":true, 17 | "**/*.midi":true, 18 | "**/*.wav":true, 19 | "**/*.gif":true, 20 | "**/*.ico":true, 21 | "**/*.jpg":true, 22 | "**/*.jpeg":true, 23 | "**/*.png":true, 24 | "**/*.psd":true, 25 | "**/*.tga":true, 26 | "**/*.tif":true, 27 | "**/*.tiff":true, 28 | "**/*.3ds":true, 29 | "**/*.3DS":true, 30 | "**/*.fbx":true, 31 | "**/*.FBX":true, 32 | "**/*.lxo":true, 33 | "**/*.LXO":true, 34 | "**/*.ma":true, 35 | "**/*.MA":true, 36 | "**/*.obj":true, 37 | "**/*.OBJ":true, 38 | "**/*.asset":true, 39 | "**/*.cubemap":true, 40 | "**/*.flare":true, 41 | "**/*.mat":true, 42 | "**/*.meta":true, 43 | "**/*.prefab":true, 44 | "**/*.unity":true, 45 | "build/":true, 46 | "Build/":true, 47 | "Library/":true, 48 | "library/":true, 49 | "obj/":true, 50 | "Obj/":true, 51 | "ProjectSettings/":true, 52 | "temp/":true, 53 | "Temp/":true 54 | } 55 | } -------------------------------------------------------------------------------- /.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.VisualStudio.Workload.ManagedGame" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /Assets/Playtests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5cc3d705ba2b82d41856d81a5895e288 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Playtests/Enemy.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Enemy 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 1 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 0.9339623, g: 0.67658246, b: 0.2687344, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Playtests/Enemy.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5fd3bc39bc9912469a56dd6399fa35b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Playtests/FindPlayer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using Waypoints; 5 | using System.Linq; 6 | 7 | public class FindPlayer : MonoBehaviour 8 | { 9 | GameObject target; 10 | List Path; 11 | public WaypointGraph debug; 12 | public float m_repathTime = 1f; 13 | float lastRepath; 14 | int pathIndex = 0; 15 | Vector3 origin; 16 | 17 | private void Start() 18 | { 19 | target = GameObject.FindGameObjectWithTag("Player"); 20 | origin = transform.position; 21 | Path = debug.QueryPath(transform.position, target.transform.position); 22 | } 23 | 24 | private void Update() 25 | { 26 | if (Path.Count > 0 && pathIndex < Path.Count) 27 | { 28 | var currentNode = debug.GetNode(Path[pathIndex].EndNodeIndex); 29 | transform.position = Vector3.MoveTowards(transform.position, currentNode.Position, 5 * Time.deltaTime); 30 | 31 | if (Vector3.Distance(transform.position, currentNode.Position) < 0.01) 32 | { 33 | pathIndex++; 34 | } 35 | } 36 | } 37 | 38 | private float TotalCost(List connections) 39 | { 40 | return connections.Sum(c => c.Cost); 41 | } 42 | 43 | private void OnGUI() 44 | { 45 | if (GUI.Button(new Rect(0, 0, 100, 40), "Restart")) 46 | { 47 | transform.position = origin; 48 | Path = debug.QueryPath(transform.position, target.transform.position); 49 | pathIndex = 0; 50 | } 51 | } 52 | 53 | private void OnDrawGizmos() 54 | { 55 | Gizmos.color = Color.grey; 56 | Node lastNode = new Node(transform.position); 57 | if (Path != null) 58 | { 59 | for (int i = 0; i < Path.Count; i++) 60 | { 61 | Node node = debug.GetNode(Path[i].EndNodeIndex); 62 | Gizmos.DrawLine(lastNode.Position, node.Position); 63 | Gizmos.DrawCube(node.Position, Vector3.one * 0.5f); 64 | 65 | lastNode = node; 66 | } 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Assets/Playtests/FindPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d34c14c6b8dda644bba0ce51e53e9b9a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Playtests/Movable.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Movable 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: fafa2664534d447caf55f85769535525, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 0.98475426, b: 0, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Playtests/Movable.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9bce9d0d374852143bba5bb7b0d2bd2e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Playtests/New Graph.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 1513459d8bb822949ac691e695ccc25b, type: 3} 13 | m_Name: New Graph 14 | m_EditorClassIdentifier: 15 | AllNodes: [] 16 | -------------------------------------------------------------------------------- /Assets/Playtests/New Graph.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 854ef4cd9f442614aabf73185579d1f0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Playtests/Player.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Player : MonoBehaviour 6 | { 7 | Camera ownCamera; 8 | public float speed; 9 | 10 | void Start() 11 | { 12 | ownCamera = Camera.main; 13 | } 14 | 15 | void Update() 16 | { 17 | var horizontal = Input.GetAxis("Vertical") * ownCamera.transform.forward; 18 | var vertical = Input.GetAxis("Horizontal") * ownCamera.transform.right; 19 | var direction = (horizontal + vertical).normalized; 20 | direction.y = 0; 21 | transform.position += direction * Time.deltaTime * speed; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Assets/Playtests/Player.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 33f29be8d3aa4744fa1c3c0431c25333 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Playtests/Player.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Player 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 1 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 0.6457253, g: 0.98039216, b: 0.07843135, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Playtests/Player.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1aa1690a0133c564e9ed7757a8475e4d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Playtests/Solid.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Solid 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _ALPHAPREMULTIPLY_ON 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: 3000 16 | stringTagMap: 17 | RenderType: Transparent 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: fafa2664534d447caf55f85769535525, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 10 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 3 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 0 75 | m_Colors: 76 | - _Color: {r: 0, g: 0.33720446, b: 1, a: 0.441} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Playtests/Solid.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49be9fa688f05a94c96b2d6b25705e46 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b689bf3b51951f74b91699885508928d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/BillingMode.json: -------------------------------------------------------------------------------- 1 | {"androidStore":"GooglePlay"} -------------------------------------------------------------------------------- /Assets/Resources/BillingMode.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81040ad2bc827e842830d0ab08d5044d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f704ae4b4f98ae41a0bce26658850c1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/New Graph.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 1513459d8bb822949ac691e695ccc25b, type: 3} 13 | m_Name: New Graph 14 | m_EditorClassIdentifier: 15 | AllNodes: 16 | - Position: {x: 21.449142, y: 11.9205, z: 0.954852} 17 | ConnectedNodes: 18 | - StartNodeIndex: 0 19 | EndNodeIndex: 1 20 | Cost: 0 21 | Type: 1 22 | - Position: {x: 21.449142, y: 11.9205, z: 0.954852} 23 | ConnectedNodes: 24 | - StartNodeIndex: 1 25 | EndNodeIndex: 0 26 | Cost: 0 27 | Type: 1 28 | - Position: {x: 21.951027, y: 14.461883, z: 5.8632517} 29 | ConnectedNodes: [] 30 | - Position: {x: 14.335876, y: 2.453859, z: -7.9036674} 31 | ConnectedNodes: 32 | - StartNodeIndex: 3 33 | EndNodeIndex: 4 34 | Cost: 2.7605274 35 | Type: 1 36 | - StartNodeIndex: 3 37 | EndNodeIndex: 5 38 | Cost: 3.351398 39 | Type: 1 40 | - StartNodeIndex: 3 41 | EndNodeIndex: 7 42 | Cost: 3.060164 43 | Type: 1 44 | - Position: {x: 12.876873, y: 2.453859, z: -5.560204} 45 | ConnectedNodes: 46 | - StartNodeIndex: 4 47 | EndNodeIndex: 3 48 | Cost: 2.7605274 49 | Type: 1 50 | - StartNodeIndex: 4 51 | EndNodeIndex: 5 52 | Cost: 2.320236 53 | Type: 1 54 | - Position: {x: 14.997271, y: 2.453859, z: -4.6181803} 55 | ConnectedNodes: 56 | - StartNodeIndex: 5 57 | EndNodeIndex: 3 58 | Cost: 3.351398 59 | Type: 1 60 | - StartNodeIndex: 5 61 | EndNodeIndex: 4 62 | Cost: 2.320236 63 | Type: 1 64 | - StartNodeIndex: 5 65 | EndNodeIndex: 6 66 | Cost: 2.9731057 67 | Type: 1 68 | - Position: {x: 14.288685, y: 2.453859, z: -1.7307482} 69 | ConnectedNodes: 70 | - StartNodeIndex: 6 71 | EndNodeIndex: 5 72 | Cost: 2.9731057 73 | Type: 1 74 | - Position: {x: 15.291481, y: 2.453859, z: -10.810801} 75 | ConnectedNodes: 76 | - StartNodeIndex: 7 77 | EndNodeIndex: 3 78 | Cost: 3.060164 79 | Type: 1 80 | - StartNodeIndex: 7 81 | EndNodeIndex: 8 82 | Cost: 3.530922 83 | Type: 1 84 | - Position: {x: 12.589172, y: 2.453859, z: -13.08345} 85 | ConnectedNodes: 86 | - StartNodeIndex: 8 87 | EndNodeIndex: 7 88 | Cost: 3.530922 89 | Type: 1 90 | - StartNodeIndex: 8 91 | EndNodeIndex: 9 92 | Cost: 3.5934308 93 | Type: 1 94 | - Position: {x: 9.089823, y: 2.453859, z: -13.900332} 95 | ConnectedNodes: 96 | - StartNodeIndex: 9 97 | EndNodeIndex: 8 98 | Cost: 3.5934308 99 | Type: 1 100 | - StartNodeIndex: 9 101 | EndNodeIndex: 10 102 | Cost: 3.1547432 103 | Type: 1 104 | - Position: {x: 7.023895, y: 2.453859, z: -16.28452} 105 | ConnectedNodes: 106 | - StartNodeIndex: 10 107 | EndNodeIndex: 9 108 | Cost: 3.1547432 109 | Type: 1 110 | - Position: {x: 2.62141, y: 2.453859, z: -5.1071024} 111 | ConnectedNodes: [] 112 | -------------------------------------------------------------------------------- /Assets/Scenes/New Graph.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aafa9fe2771f9e640b1077a663b80f16 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/SampleScene.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.02059023, g: 0.022510564, b: 0.026457913, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1.07 27 | m_AmbientMode: 3 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_UseRadianceAmbientProbe: 0 42 | --- !u!157 &3 43 | LightmapSettings: 44 | m_ObjectHideFlags: 0 45 | serializedVersion: 12 46 | m_GIWorkflowMode: 1 47 | m_GISettings: 48 | serializedVersion: 2 49 | m_BounceScale: 1 50 | m_IndirectOutputScale: 1 51 | m_AlbedoBoost: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 0 54 | m_EnableRealtimeLightmaps: 0 55 | m_LightmapEditorSettings: 56 | serializedVersion: 12 57 | m_Resolution: 2 58 | m_BakeResolution: 10 59 | m_AtlasSize: 1024 60 | m_AO: 0 61 | m_AOMaxDistance: 1 62 | m_CompAOExponent: 1 63 | m_CompAOExponentDirect: 0 64 | m_ExtractAmbientOcclusion: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_FinalGather: 0 70 | m_FinalGatherFiltering: 1 71 | m_FinalGatherRayCount: 256 72 | m_ReflectionCompression: 2 73 | m_MixedBakeMode: 2 74 | m_BakeBackend: 1 75 | m_PVRSampling: 1 76 | m_PVRDirectSampleCount: 32 77 | m_PVRSampleCount: 256 78 | m_PVRBounces: 2 79 | m_PVREnvironmentSampleCount: 256 80 | m_PVREnvironmentReferencePointCount: 2048 81 | m_PVRFilteringMode: 2 82 | m_PVRDenoiserTypeDirect: 0 83 | m_PVRDenoiserTypeIndirect: 0 84 | m_PVRDenoiserTypeAO: 0 85 | m_PVRFilterTypeDirect: 0 86 | m_PVRFilterTypeIndirect: 0 87 | m_PVRFilterTypeAO: 0 88 | m_PVREnvironmentMIS: 0 89 | m_PVRCulling: 1 90 | m_PVRFilteringGaussRadiusDirect: 1 91 | m_PVRFilteringGaussRadiusIndirect: 5 92 | m_PVRFilteringGaussRadiusAO: 2 93 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 94 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 95 | m_PVRFilteringAtrousPositionSigmaAO: 1 96 | m_ExportTrainingData: 0 97 | m_TrainingDataDestination: TrainingData 98 | m_LightProbeSampleCountMultiplier: 4 99 | m_LightingDataAsset: {fileID: 0} 100 | m_LightingSettings: {fileID: 4890085278179872738, guid: d134bb0de4e33ab4bb2276a7342e0b3e, 101 | type: 2} 102 | --- !u!196 &4 103 | NavMeshSettings: 104 | serializedVersion: 2 105 | m_ObjectHideFlags: 0 106 | m_BuildSettings: 107 | serializedVersion: 3 108 | agentTypeID: 0 109 | agentRadius: 0.5 110 | agentHeight: 2 111 | agentSlope: 45 112 | agentClimb: 0.4 113 | ledgeDropHeight: 0 114 | maxJumpAcrossDistance: 0 115 | minRegionArea: 2 116 | manualCellSize: 0 117 | cellSize: 0.16666667 118 | manualTileSize: 0 119 | tileSize: 256 120 | buildHeightMesh: 0 121 | maxJobWorkers: 0 122 | preserveTilesOutsideBounds: 0 123 | debug: 124 | m_Flags: 0 125 | m_NavMeshData: {fileID: 0} 126 | --- !u!1 &49891053 127 | GameObject: 128 | m_ObjectHideFlags: 0 129 | m_CorrespondingSourceObject: {fileID: 0} 130 | m_PrefabInstance: {fileID: 0} 131 | m_PrefabAsset: {fileID: 0} 132 | serializedVersion: 6 133 | m_Component: 134 | - component: {fileID: 49891055} 135 | - component: {fileID: 49891054} 136 | m_Layer: 0 137 | m_Name: Directional Light 138 | m_TagString: Untagged 139 | m_Icon: {fileID: 0} 140 | m_NavMeshLayer: 0 141 | m_StaticEditorFlags: 0 142 | m_IsActive: 1 143 | --- !u!108 &49891054 144 | Light: 145 | m_ObjectHideFlags: 0 146 | m_CorrespondingSourceObject: {fileID: 0} 147 | m_PrefabInstance: {fileID: 0} 148 | m_PrefabAsset: {fileID: 0} 149 | m_GameObject: {fileID: 49891053} 150 | m_Enabled: 1 151 | serializedVersion: 10 152 | m_Type: 1 153 | m_Shape: 0 154 | m_Color: {r: 1, g: 1, b: 1, a: 1} 155 | m_Intensity: 1 156 | m_Range: 10 157 | m_SpotAngle: 30 158 | m_InnerSpotAngle: 21.80208 159 | m_CookieSize: 10 160 | m_Shadows: 161 | m_Type: 1 162 | m_Resolution: -1 163 | m_CustomResolution: -1 164 | m_Strength: 1 165 | m_Bias: 0.05 166 | m_NormalBias: 0.4 167 | m_NearPlane: 0.2 168 | m_CullingMatrixOverride: 169 | e00: 1 170 | e01: 0 171 | e02: 0 172 | e03: 0 173 | e10: 0 174 | e11: 1 175 | e12: 0 176 | e13: 0 177 | e20: 0 178 | e21: 0 179 | e22: 1 180 | e23: 0 181 | e30: 0 182 | e31: 0 183 | e32: 0 184 | e33: 1 185 | m_UseCullingMatrixOverride: 0 186 | m_Cookie: {fileID: 0} 187 | m_DrawHalo: 0 188 | m_Flare: {fileID: 0} 189 | m_RenderMode: 0 190 | m_CullingMask: 191 | serializedVersion: 2 192 | m_Bits: 4294967295 193 | m_RenderingLayerMask: 1 194 | m_Lightmapping: 4 195 | m_LightShadowCasterMode: 0 196 | m_AreaSize: {x: 1, y: 1} 197 | m_BounceIntensity: 0 198 | m_ColorTemperature: 6570 199 | m_UseColorTemperature: 0 200 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 201 | m_UseBoundingSphereOverride: 0 202 | m_UseViewFrustumForShadowCasterCull: 1 203 | m_ShadowRadius: 0 204 | m_ShadowAngle: 0 205 | --- !u!4 &49891055 206 | Transform: 207 | m_ObjectHideFlags: 0 208 | m_CorrespondingSourceObject: {fileID: 0} 209 | m_PrefabInstance: {fileID: 0} 210 | m_PrefabAsset: {fileID: 0} 211 | m_GameObject: {fileID: 49891053} 212 | serializedVersion: 2 213 | m_LocalRotation: {x: 0.40128404, y: -0.24624406, z: 0.08409192, w: 0.8782161} 214 | m_LocalPosition: {x: -17.604872, y: -40.300583, z: 11.6} 215 | m_LocalScale: {x: 1, y: 1, z: 1} 216 | m_ConstrainProportionsScale: 0 217 | m_Children: [] 218 | m_Father: {fileID: 0} 219 | m_LocalEulerAnglesHint: {x: 48.266003, y: -33.254, z: -4.301} 220 | --- !u!1 &196049458 221 | GameObject: 222 | m_ObjectHideFlags: 0 223 | m_CorrespondingSourceObject: {fileID: 0} 224 | m_PrefabInstance: {fileID: 0} 225 | m_PrefabAsset: {fileID: 0} 226 | serializedVersion: 6 227 | m_Component: 228 | - component: {fileID: 196049462} 229 | - component: {fileID: 196049461} 230 | - component: {fileID: 196049460} 231 | - component: {fileID: 196049459} 232 | m_Layer: 8 233 | m_Name: SOLID 234 | m_TagString: Untagged 235 | m_Icon: {fileID: 0} 236 | m_NavMeshLayer: 0 237 | m_StaticEditorFlags: 0 238 | m_IsActive: 1 239 | --- !u!23 &196049459 240 | MeshRenderer: 241 | m_ObjectHideFlags: 0 242 | m_CorrespondingSourceObject: {fileID: 0} 243 | m_PrefabInstance: {fileID: 0} 244 | m_PrefabAsset: {fileID: 0} 245 | m_GameObject: {fileID: 196049458} 246 | m_Enabled: 1 247 | m_CastShadows: 0 248 | m_ReceiveShadows: 0 249 | m_DynamicOccludee: 0 250 | m_StaticShadowCaster: 0 251 | m_MotionVectors: 1 252 | m_LightProbeUsage: 1 253 | m_ReflectionProbeUsage: 1 254 | m_RayTracingMode: 2 255 | m_RayTraceProcedural: 0 256 | m_RenderingLayerMask: 4294967295 257 | m_RendererPriority: 0 258 | m_Materials: 259 | - {fileID: 2100000, guid: 49be9fa688f05a94c96b2d6b25705e46, type: 2} 260 | m_StaticBatchInfo: 261 | firstSubMesh: 0 262 | subMeshCount: 0 263 | m_StaticBatchRoot: {fileID: 0} 264 | m_ProbeAnchor: {fileID: 0} 265 | m_LightProbeVolumeOverride: {fileID: 0} 266 | m_ScaleInLightmap: 1 267 | m_ReceiveGI: 1 268 | m_PreserveUVs: 1 269 | m_IgnoreNormalsForChartDetection: 0 270 | m_ImportantGI: 0 271 | m_StitchLightmapSeams: 0 272 | m_SelectedEditorRenderState: 3 273 | m_MinimumChartSize: 4 274 | m_AutoUVMaxDistance: 0.5 275 | m_AutoUVMaxAngle: 89 276 | m_LightmapParameters: {fileID: 0} 277 | m_SortingLayerID: 0 278 | m_SortingLayer: 0 279 | m_SortingOrder: 0 280 | m_AdditionalVertexStreams: {fileID: 0} 281 | --- !u!65 &196049460 282 | BoxCollider: 283 | m_ObjectHideFlags: 0 284 | m_CorrespondingSourceObject: {fileID: 0} 285 | m_PrefabInstance: {fileID: 0} 286 | m_PrefabAsset: {fileID: 0} 287 | m_GameObject: {fileID: 196049458} 288 | m_Material: {fileID: 0} 289 | m_IncludeLayers: 290 | serializedVersion: 2 291 | m_Bits: 0 292 | m_ExcludeLayers: 293 | serializedVersion: 2 294 | m_Bits: 0 295 | m_LayerOverridePriority: 0 296 | m_IsTrigger: 0 297 | m_ProvidesContacts: 0 298 | m_Enabled: 1 299 | serializedVersion: 3 300 | m_Size: {x: 1, y: 1, z: 1} 301 | m_Center: {x: 0, y: 0, z: 0} 302 | --- !u!33 &196049461 303 | MeshFilter: 304 | m_ObjectHideFlags: 0 305 | m_CorrespondingSourceObject: {fileID: 0} 306 | m_PrefabInstance: {fileID: 0} 307 | m_PrefabAsset: {fileID: 0} 308 | m_GameObject: {fileID: 196049458} 309 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 310 | --- !u!4 &196049462 311 | Transform: 312 | m_ObjectHideFlags: 0 313 | m_CorrespondingSourceObject: {fileID: 0} 314 | m_PrefabInstance: {fileID: 0} 315 | m_PrefabAsset: {fileID: 0} 316 | m_GameObject: {fileID: 196049458} 317 | serializedVersion: 2 318 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 319 | m_LocalPosition: {x: -16.28, y: 6.18, z: -5} 320 | m_LocalScale: {x: 11.089778, y: 1.1725069, z: 12.193821} 321 | m_ConstrainProportionsScale: 0 322 | m_Children: [] 323 | m_Father: {fileID: 0} 324 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 325 | --- !u!1 &282840810 326 | GameObject: 327 | m_ObjectHideFlags: 0 328 | m_CorrespondingSourceObject: {fileID: 0} 329 | m_PrefabInstance: {fileID: 0} 330 | m_PrefabAsset: {fileID: 0} 331 | serializedVersion: 6 332 | m_Component: 333 | - component: {fileID: 282840814} 334 | - component: {fileID: 282840813} 335 | - component: {fileID: 282840811} 336 | m_Layer: 0 337 | m_Name: Main Camera 338 | m_TagString: MainCamera 339 | m_Icon: {fileID: 0} 340 | m_NavMeshLayer: 0 341 | m_StaticEditorFlags: 0 342 | m_IsActive: 1 343 | --- !u!81 &282840811 344 | AudioListener: 345 | m_ObjectHideFlags: 0 346 | m_CorrespondingSourceObject: {fileID: 0} 347 | m_PrefabInstance: {fileID: 0} 348 | m_PrefabAsset: {fileID: 0} 349 | m_GameObject: {fileID: 282840810} 350 | m_Enabled: 1 351 | --- !u!20 &282840813 352 | Camera: 353 | m_ObjectHideFlags: 0 354 | m_CorrespondingSourceObject: {fileID: 0} 355 | m_PrefabInstance: {fileID: 0} 356 | m_PrefabAsset: {fileID: 0} 357 | m_GameObject: {fileID: 282840810} 358 | m_Enabled: 1 359 | serializedVersion: 2 360 | m_ClearFlags: 1 361 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 362 | m_projectionMatrixMode: 1 363 | m_GateFitMode: 2 364 | m_FOVAxisMode: 0 365 | m_Iso: 200 366 | m_ShutterSpeed: 0.005 367 | m_Aperture: 16 368 | m_FocusDistance: 10 369 | m_FocalLength: 50 370 | m_BladeCount: 5 371 | m_Curvature: {x: 2, y: 11} 372 | m_BarrelClipping: 0.25 373 | m_Anamorphism: 0 374 | m_SensorSize: {x: 36, y: 24} 375 | m_LensShift: {x: 0, y: 0} 376 | m_NormalizedViewPortRect: 377 | serializedVersion: 2 378 | x: 0 379 | y: 0 380 | width: 1 381 | height: 1 382 | near clip plane: 0.3 383 | far clip plane: 1000 384 | field of view: 60 385 | orthographic: 0 386 | orthographic size: 5 387 | m_Depth: -1 388 | m_CullingMask: 389 | serializedVersion: 2 390 | m_Bits: 4294967295 391 | m_RenderingPath: -1 392 | m_TargetTexture: {fileID: 0} 393 | m_TargetDisplay: 0 394 | m_TargetEye: 3 395 | m_HDR: 1 396 | m_AllowMSAA: 1 397 | m_AllowDynamicResolution: 0 398 | m_ForceIntoRT: 1 399 | m_OcclusionCulling: 1 400 | m_StereoConvergence: 10 401 | m_StereoSeparation: 0.022 402 | --- !u!4 &282840814 403 | Transform: 404 | m_ObjectHideFlags: 0 405 | m_CorrespondingSourceObject: {fileID: 0} 406 | m_PrefabInstance: {fileID: 0} 407 | m_PrefabAsset: {fileID: 0} 408 | m_GameObject: {fileID: 282840810} 409 | serializedVersion: 2 410 | m_LocalRotation: {x: -0.13172889, y: 0.8674857, z: -0.35842428, w: -0.31882292} 411 | m_LocalPosition: {x: 19.16388, y: 18.413914, z: 9.073334} 412 | m_LocalScale: {x: 1, y: 1, z: 1} 413 | m_ConstrainProportionsScale: 0 414 | m_Children: [] 415 | m_Father: {fileID: 0} 416 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 417 | --- !u!1 &331953854 418 | GameObject: 419 | m_ObjectHideFlags: 0 420 | m_CorrespondingSourceObject: {fileID: 0} 421 | m_PrefabInstance: {fileID: 0} 422 | m_PrefabAsset: {fileID: 0} 423 | serializedVersion: 6 424 | m_Component: 425 | - component: {fileID: 331953856} 426 | - component: {fileID: 331953855} 427 | m_Layer: 0 428 | m_Name: WAYPOINTS 429 | m_TagString: Untagged 430 | m_Icon: {fileID: 0} 431 | m_NavMeshLayer: 0 432 | m_StaticEditorFlags: 0 433 | m_IsActive: 1 434 | --- !u!114 &331953855 435 | MonoBehaviour: 436 | m_ObjectHideFlags: 0 437 | m_CorrespondingSourceObject: {fileID: 0} 438 | m_PrefabInstance: {fileID: 0} 439 | m_PrefabAsset: {fileID: 0} 440 | m_GameObject: {fileID: 331953854} 441 | m_Enabled: 1 442 | m_EditorHideFlags: 0 443 | m_Script: {fileID: 11500000, guid: 4f7bf855f00871941ac9a4a41846c2b4, type: 3} 444 | m_Name: 445 | m_EditorClassIdentifier: 446 | MainGraph: {fileID: 11400000, guid: 854ef4cd9f442614aabf73185579d1f0, type: 2} 447 | m_nodegraphLabel: 448 | m_nodeMaximumDistance: 4 449 | m_nodeSize: 0.25 450 | m_hitTriggers: 0 451 | m_brushRadius: 1 452 | m_autoRebuild: 1 453 | m_nodeColor: {r: 0, g: 1, b: 1, a: 1} 454 | m_staticConnection: {r: 0, g: 1, b: 1, a: 1} 455 | m_dynamicConnection: {r: 1, g: 0.9203187, b: 0, a: 1} 456 | m_showLog: 1 457 | m_bulkNodeDistanceGap: 10 458 | m_bulkSpawnDistance: 4 459 | m_nodeUpOffset: 0.53 460 | m_alwaysShowNodes: 1 461 | solidLayerMask: 462 | serializedVersion: 2 463 | m_Bits: 256 464 | movingObstacleTag: Obstacle 465 | State: 3 466 | --- !u!4 &331953856 467 | Transform: 468 | m_ObjectHideFlags: 0 469 | m_CorrespondingSourceObject: {fileID: 0} 470 | m_PrefabInstance: {fileID: 0} 471 | m_PrefabAsset: {fileID: 0} 472 | m_GameObject: {fileID: 331953854} 473 | serializedVersion: 2 474 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 475 | m_LocalPosition: {x: 0, y: 0, z: 0} 476 | m_LocalScale: {x: 1, y: 1, z: 1} 477 | m_ConstrainProportionsScale: 0 478 | m_Children: [] 479 | m_Father: {fileID: 0} 480 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 481 | --- !u!1 &745021215 482 | GameObject: 483 | m_ObjectHideFlags: 0 484 | m_CorrespondingSourceObject: {fileID: 0} 485 | m_PrefabInstance: {fileID: 0} 486 | m_PrefabAsset: {fileID: 0} 487 | serializedVersion: 6 488 | m_Component: 489 | - component: {fileID: 745021219} 490 | - component: {fileID: 745021218} 491 | - component: {fileID: 745021217} 492 | - component: {fileID: 745021216} 493 | m_Layer: 8 494 | m_Name: SOLID (2) 495 | m_TagString: Untagged 496 | m_Icon: {fileID: 0} 497 | m_NavMeshLayer: 0 498 | m_StaticEditorFlags: 0 499 | m_IsActive: 1 500 | --- !u!23 &745021216 501 | MeshRenderer: 502 | m_ObjectHideFlags: 0 503 | m_CorrespondingSourceObject: {fileID: 0} 504 | m_PrefabInstance: {fileID: 0} 505 | m_PrefabAsset: {fileID: 0} 506 | m_GameObject: {fileID: 745021215} 507 | m_Enabled: 1 508 | m_CastShadows: 0 509 | m_ReceiveShadows: 0 510 | m_DynamicOccludee: 0 511 | m_StaticShadowCaster: 0 512 | m_MotionVectors: 1 513 | m_LightProbeUsage: 1 514 | m_ReflectionProbeUsage: 1 515 | m_RayTracingMode: 2 516 | m_RayTraceProcedural: 0 517 | m_RenderingLayerMask: 4294967295 518 | m_RendererPriority: 0 519 | m_Materials: 520 | - {fileID: 2100000, guid: 49be9fa688f05a94c96b2d6b25705e46, type: 2} 521 | m_StaticBatchInfo: 522 | firstSubMesh: 0 523 | subMeshCount: 0 524 | m_StaticBatchRoot: {fileID: 0} 525 | m_ProbeAnchor: {fileID: 0} 526 | m_LightProbeVolumeOverride: {fileID: 0} 527 | m_ScaleInLightmap: 1 528 | m_ReceiveGI: 1 529 | m_PreserveUVs: 1 530 | m_IgnoreNormalsForChartDetection: 0 531 | m_ImportantGI: 0 532 | m_StitchLightmapSeams: 0 533 | m_SelectedEditorRenderState: 3 534 | m_MinimumChartSize: 4 535 | m_AutoUVMaxDistance: 0.5 536 | m_AutoUVMaxAngle: 89 537 | m_LightmapParameters: {fileID: 0} 538 | m_SortingLayerID: 0 539 | m_SortingLayer: 0 540 | m_SortingOrder: 0 541 | m_AdditionalVertexStreams: {fileID: 0} 542 | --- !u!65 &745021217 543 | BoxCollider: 544 | m_ObjectHideFlags: 0 545 | m_CorrespondingSourceObject: {fileID: 0} 546 | m_PrefabInstance: {fileID: 0} 547 | m_PrefabAsset: {fileID: 0} 548 | m_GameObject: {fileID: 745021215} 549 | m_Material: {fileID: 0} 550 | m_IncludeLayers: 551 | serializedVersion: 2 552 | m_Bits: 0 553 | m_ExcludeLayers: 554 | serializedVersion: 2 555 | m_Bits: 0 556 | m_LayerOverridePriority: 0 557 | m_IsTrigger: 0 558 | m_ProvidesContacts: 0 559 | m_Enabled: 1 560 | serializedVersion: 3 561 | m_Size: {x: 1, y: 1, z: 1} 562 | m_Center: {x: 0, y: 0, z: 0} 563 | --- !u!33 &745021218 564 | MeshFilter: 565 | m_ObjectHideFlags: 0 566 | m_CorrespondingSourceObject: {fileID: 0} 567 | m_PrefabInstance: {fileID: 0} 568 | m_PrefabAsset: {fileID: 0} 569 | m_GameObject: {fileID: 745021215} 570 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 571 | --- !u!4 &745021219 572 | Transform: 573 | m_ObjectHideFlags: 0 574 | m_CorrespondingSourceObject: {fileID: 0} 575 | m_PrefabInstance: {fileID: 0} 576 | m_PrefabAsset: {fileID: 0} 577 | m_GameObject: {fileID: 745021215} 578 | serializedVersion: 2 579 | m_LocalRotation: {x: -0, y: -0.70710576, z: -0, w: 0.70710784} 580 | m_LocalPosition: {x: 6.04, y: 3.4, z: -1.31} 581 | m_LocalScale: {x: 2.6510906, y: 3.0149317, z: 6.8269596} 582 | m_ConstrainProportionsScale: 0 583 | m_Children: [] 584 | m_Father: {fileID: 0} 585 | m_LocalEulerAnglesHint: {x: 0, y: -90.00001, z: 0} 586 | --- !u!1 &763082030 587 | GameObject: 588 | m_ObjectHideFlags: 0 589 | m_CorrespondingSourceObject: {fileID: 0} 590 | m_PrefabInstance: {fileID: 0} 591 | m_PrefabAsset: {fileID: 0} 592 | serializedVersion: 6 593 | m_Component: 594 | - component: {fileID: 763082034} 595 | - component: {fileID: 763082033} 596 | - component: {fileID: 763082032} 597 | - component: {fileID: 763082031} 598 | m_Layer: 8 599 | m_Name: SOLID (3) 600 | m_TagString: Obstacle 601 | m_Icon: {fileID: 0} 602 | m_NavMeshLayer: 0 603 | m_StaticEditorFlags: 0 604 | m_IsActive: 1 605 | --- !u!23 &763082031 606 | MeshRenderer: 607 | m_ObjectHideFlags: 0 608 | m_CorrespondingSourceObject: {fileID: 0} 609 | m_PrefabInstance: {fileID: 0} 610 | m_PrefabAsset: {fileID: 0} 611 | m_GameObject: {fileID: 763082030} 612 | m_Enabled: 1 613 | m_CastShadows: 0 614 | m_ReceiveShadows: 0 615 | m_DynamicOccludee: 0 616 | m_StaticShadowCaster: 0 617 | m_MotionVectors: 1 618 | m_LightProbeUsage: 1 619 | m_ReflectionProbeUsage: 1 620 | m_RayTracingMode: 2 621 | m_RayTraceProcedural: 0 622 | m_RenderingLayerMask: 4294967295 623 | m_RendererPriority: 0 624 | m_Materials: 625 | - {fileID: 2100000, guid: 49be9fa688f05a94c96b2d6b25705e46, type: 2} 626 | m_StaticBatchInfo: 627 | firstSubMesh: 0 628 | subMeshCount: 0 629 | m_StaticBatchRoot: {fileID: 0} 630 | m_ProbeAnchor: {fileID: 0} 631 | m_LightProbeVolumeOverride: {fileID: 0} 632 | m_ScaleInLightmap: 1 633 | m_ReceiveGI: 1 634 | m_PreserveUVs: 1 635 | m_IgnoreNormalsForChartDetection: 0 636 | m_ImportantGI: 0 637 | m_StitchLightmapSeams: 0 638 | m_SelectedEditorRenderState: 3 639 | m_MinimumChartSize: 4 640 | m_AutoUVMaxDistance: 0.5 641 | m_AutoUVMaxAngle: 89 642 | m_LightmapParameters: {fileID: 0} 643 | m_SortingLayerID: 0 644 | m_SortingLayer: 0 645 | m_SortingOrder: 0 646 | m_AdditionalVertexStreams: {fileID: 0} 647 | --- !u!65 &763082032 648 | BoxCollider: 649 | m_ObjectHideFlags: 0 650 | m_CorrespondingSourceObject: {fileID: 0} 651 | m_PrefabInstance: {fileID: 0} 652 | m_PrefabAsset: {fileID: 0} 653 | m_GameObject: {fileID: 763082030} 654 | m_Material: {fileID: 0} 655 | m_IncludeLayers: 656 | serializedVersion: 2 657 | m_Bits: 0 658 | m_ExcludeLayers: 659 | serializedVersion: 2 660 | m_Bits: 0 661 | m_LayerOverridePriority: 0 662 | m_IsTrigger: 0 663 | m_ProvidesContacts: 0 664 | m_Enabled: 1 665 | serializedVersion: 3 666 | m_Size: {x: 1, y: 1, z: 1} 667 | m_Center: {x: 0, y: 0, z: 0} 668 | --- !u!33 &763082033 669 | MeshFilter: 670 | m_ObjectHideFlags: 0 671 | m_CorrespondingSourceObject: {fileID: 0} 672 | m_PrefabInstance: {fileID: 0} 673 | m_PrefabAsset: {fileID: 0} 674 | m_GameObject: {fileID: 763082030} 675 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 676 | --- !u!4 &763082034 677 | Transform: 678 | m_ObjectHideFlags: 0 679 | m_CorrespondingSourceObject: {fileID: 0} 680 | m_PrefabInstance: {fileID: 0} 681 | m_PrefabAsset: {fileID: 0} 682 | m_GameObject: {fileID: 763082030} 683 | serializedVersion: 2 684 | m_LocalRotation: {x: -0, y: -0.70710576, z: -0, w: 0.70710784} 685 | m_LocalPosition: {x: 12.7, y: 3.4, z: -15.75} 686 | m_LocalScale: {x: 2.6510906, y: 3.0149317, z: 1.3656203} 687 | m_ConstrainProportionsScale: 0 688 | m_Children: [] 689 | m_Father: {fileID: 0} 690 | m_LocalEulerAnglesHint: {x: 0, y: -90.00001, z: 0} 691 | --- !u!1 &945849539 692 | GameObject: 693 | m_ObjectHideFlags: 0 694 | m_CorrespondingSourceObject: {fileID: 0} 695 | m_PrefabInstance: {fileID: 0} 696 | m_PrefabAsset: {fileID: 0} 697 | serializedVersion: 6 698 | m_Component: 699 | - component: {fileID: 945849543} 700 | - component: {fileID: 945849542} 701 | - component: {fileID: 945849541} 702 | - component: {fileID: 945849540} 703 | m_Layer: 8 704 | m_Name: SOLID (1) 705 | m_TagString: Obstacle 706 | m_Icon: {fileID: 0} 707 | m_NavMeshLayer: 0 708 | m_StaticEditorFlags: 0 709 | m_IsActive: 1 710 | --- !u!23 &945849540 711 | MeshRenderer: 712 | m_ObjectHideFlags: 0 713 | m_CorrespondingSourceObject: {fileID: 0} 714 | m_PrefabInstance: {fileID: 0} 715 | m_PrefabAsset: {fileID: 0} 716 | m_GameObject: {fileID: 945849539} 717 | m_Enabled: 1 718 | m_CastShadows: 0 719 | m_ReceiveShadows: 0 720 | m_DynamicOccludee: 0 721 | m_StaticShadowCaster: 0 722 | m_MotionVectors: 1 723 | m_LightProbeUsage: 1 724 | m_ReflectionProbeUsage: 1 725 | m_RayTracingMode: 2 726 | m_RayTraceProcedural: 0 727 | m_RenderingLayerMask: 4294967295 728 | m_RendererPriority: 0 729 | m_Materials: 730 | - {fileID: 2100000, guid: 49be9fa688f05a94c96b2d6b25705e46, type: 2} 731 | m_StaticBatchInfo: 732 | firstSubMesh: 0 733 | subMeshCount: 0 734 | m_StaticBatchRoot: {fileID: 0} 735 | m_ProbeAnchor: {fileID: 0} 736 | m_LightProbeVolumeOverride: {fileID: 0} 737 | m_ScaleInLightmap: 1 738 | m_ReceiveGI: 1 739 | m_PreserveUVs: 1 740 | m_IgnoreNormalsForChartDetection: 0 741 | m_ImportantGI: 0 742 | m_StitchLightmapSeams: 0 743 | m_SelectedEditorRenderState: 3 744 | m_MinimumChartSize: 4 745 | m_AutoUVMaxDistance: 0.5 746 | m_AutoUVMaxAngle: 89 747 | m_LightmapParameters: {fileID: 0} 748 | m_SortingLayerID: 0 749 | m_SortingLayer: 0 750 | m_SortingOrder: 0 751 | m_AdditionalVertexStreams: {fileID: 0} 752 | --- !u!65 &945849541 753 | BoxCollider: 754 | m_ObjectHideFlags: 0 755 | m_CorrespondingSourceObject: {fileID: 0} 756 | m_PrefabInstance: {fileID: 0} 757 | m_PrefabAsset: {fileID: 0} 758 | m_GameObject: {fileID: 945849539} 759 | m_Material: {fileID: 0} 760 | m_IncludeLayers: 761 | serializedVersion: 2 762 | m_Bits: 0 763 | m_ExcludeLayers: 764 | serializedVersion: 2 765 | m_Bits: 0 766 | m_LayerOverridePriority: 0 767 | m_IsTrigger: 0 768 | m_ProvidesContacts: 0 769 | m_Enabled: 1 770 | serializedVersion: 3 771 | m_Size: {x: 1, y: 1, z: 1} 772 | m_Center: {x: 0, y: 0, z: 0} 773 | --- !u!33 &945849542 774 | MeshFilter: 775 | m_ObjectHideFlags: 0 776 | m_CorrespondingSourceObject: {fileID: 0} 777 | m_PrefabInstance: {fileID: 0} 778 | m_PrefabAsset: {fileID: 0} 779 | m_GameObject: {fileID: 945849539} 780 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 781 | --- !u!4 &945849543 782 | Transform: 783 | m_ObjectHideFlags: 0 784 | m_CorrespondingSourceObject: {fileID: 0} 785 | m_PrefabInstance: {fileID: 0} 786 | m_PrefabAsset: {fileID: 0} 787 | m_GameObject: {fileID: 945849539} 788 | serializedVersion: 2 789 | m_LocalRotation: {x: -0, y: -0.15889794, z: -0, w: 0.98729503} 790 | m_LocalPosition: {x: 8.08, y: 3.4, z: -12.41} 791 | m_LocalScale: {x: 2.6510906, y: 3.0149317, z: 8.845837} 792 | m_ConstrainProportionsScale: 0 793 | m_Children: [] 794 | m_Father: {fileID: 0} 795 | m_LocalEulerAnglesHint: {x: 0, y: -18.286001, z: 0} 796 | --- !u!1 &960097128 797 | GameObject: 798 | m_ObjectHideFlags: 0 799 | m_CorrespondingSourceObject: {fileID: 0} 800 | m_PrefabInstance: {fileID: 0} 801 | m_PrefabAsset: {fileID: 0} 802 | serializedVersion: 6 803 | m_Component: 804 | - component: {fileID: 960097130} 805 | - component: {fileID: 960097129} 806 | m_Layer: 0 807 | m_Name: Directional Light (1) 808 | m_TagString: Untagged 809 | m_Icon: {fileID: 0} 810 | m_NavMeshLayer: 0 811 | m_StaticEditorFlags: 0 812 | m_IsActive: 1 813 | --- !u!108 &960097129 814 | Light: 815 | m_ObjectHideFlags: 0 816 | m_CorrespondingSourceObject: {fileID: 0} 817 | m_PrefabInstance: {fileID: 0} 818 | m_PrefabAsset: {fileID: 0} 819 | m_GameObject: {fileID: 960097128} 820 | m_Enabled: 1 821 | serializedVersion: 10 822 | m_Type: 1 823 | m_Shape: 0 824 | m_Color: {r: 1, g: 1, b: 1, a: 1} 825 | m_Intensity: 0.5 826 | m_Range: 10 827 | m_SpotAngle: 30 828 | m_InnerSpotAngle: 21.80208 829 | m_CookieSize: 10 830 | m_Shadows: 831 | m_Type: 0 832 | m_Resolution: -1 833 | m_CustomResolution: -1 834 | m_Strength: 1 835 | m_Bias: 0.05 836 | m_NormalBias: 0.4 837 | m_NearPlane: 0.2 838 | m_CullingMatrixOverride: 839 | e00: 1 840 | e01: 0 841 | e02: 0 842 | e03: 0 843 | e10: 0 844 | e11: 1 845 | e12: 0 846 | e13: 0 847 | e20: 0 848 | e21: 0 849 | e22: 1 850 | e23: 0 851 | e30: 0 852 | e31: 0 853 | e32: 0 854 | e33: 1 855 | m_UseCullingMatrixOverride: 0 856 | m_Cookie: {fileID: 0} 857 | m_DrawHalo: 0 858 | m_Flare: {fileID: 0} 859 | m_RenderMode: 0 860 | m_CullingMask: 861 | serializedVersion: 2 862 | m_Bits: 4294967295 863 | m_RenderingLayerMask: 1 864 | m_Lightmapping: 4 865 | m_LightShadowCasterMode: 0 866 | m_AreaSize: {x: 1, y: 1} 867 | m_BounceIntensity: 0 868 | m_ColorTemperature: 6570 869 | m_UseColorTemperature: 0 870 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} 871 | m_UseBoundingSphereOverride: 0 872 | m_UseViewFrustumForShadowCasterCull: 1 873 | m_ShadowRadius: 0 874 | m_ShadowAngle: 0 875 | --- !u!4 &960097130 876 | Transform: 877 | m_ObjectHideFlags: 0 878 | m_CorrespondingSourceObject: {fileID: 0} 879 | m_PrefabInstance: {fileID: 0} 880 | m_PrefabAsset: {fileID: 0} 881 | m_GameObject: {fileID: 960097128} 882 | serializedVersion: 2 883 | m_LocalRotation: {x: 0.9366905, y: -0.23288693, z: -0.11292029, w: 0.23584662} 884 | m_LocalPosition: {x: -17.604872, y: -40.300583, z: -46.21194} 885 | m_LocalScale: {x: 1, y: 1, z: 1} 886 | m_ConstrainProportionsScale: 0 887 | m_Children: [] 888 | m_Father: {fileID: 0} 889 | m_LocalEulerAnglesHint: {x: 22.907001, y: -159.57901, z: -147.89601} 890 | --- !u!1 &1807448151 891 | GameObject: 892 | m_ObjectHideFlags: 0 893 | m_CorrespondingSourceObject: {fileID: 0} 894 | m_PrefabInstance: {fileID: 0} 895 | m_PrefabAsset: {fileID: 0} 896 | serializedVersion: 6 897 | m_Component: 898 | - component: {fileID: 1807448155} 899 | - component: {fileID: 1807448154} 900 | - component: {fileID: 1807448153} 901 | - component: {fileID: 1807448156} 902 | m_Layer: 0 903 | m_Name: Enemy 904 | m_TagString: Untagged 905 | m_Icon: {fileID: 0} 906 | m_NavMeshLayer: 0 907 | m_StaticEditorFlags: 0 908 | m_IsActive: 1 909 | --- !u!23 &1807448153 910 | MeshRenderer: 911 | m_ObjectHideFlags: 0 912 | m_CorrespondingSourceObject: {fileID: 0} 913 | m_PrefabInstance: {fileID: 0} 914 | m_PrefabAsset: {fileID: 0} 915 | m_GameObject: {fileID: 1807448151} 916 | m_Enabled: 1 917 | m_CastShadows: 1 918 | m_ReceiveShadows: 1 919 | m_DynamicOccludee: 1 920 | m_StaticShadowCaster: 0 921 | m_MotionVectors: 1 922 | m_LightProbeUsage: 1 923 | m_ReflectionProbeUsage: 1 924 | m_RayTracingMode: 2 925 | m_RayTraceProcedural: 0 926 | m_RenderingLayerMask: 4294967295 927 | m_RendererPriority: 0 928 | m_Materials: 929 | - {fileID: 2100000, guid: f5fd3bc39bc9912469a56dd6399fa35b, type: 2} 930 | m_StaticBatchInfo: 931 | firstSubMesh: 0 932 | subMeshCount: 0 933 | m_StaticBatchRoot: {fileID: 0} 934 | m_ProbeAnchor: {fileID: 0} 935 | m_LightProbeVolumeOverride: {fileID: 0} 936 | m_ScaleInLightmap: 1 937 | m_ReceiveGI: 1 938 | m_PreserveUVs: 0 939 | m_IgnoreNormalsForChartDetection: 0 940 | m_ImportantGI: 0 941 | m_StitchLightmapSeams: 0 942 | m_SelectedEditorRenderState: 3 943 | m_MinimumChartSize: 4 944 | m_AutoUVMaxDistance: 0.5 945 | m_AutoUVMaxAngle: 89 946 | m_LightmapParameters: {fileID: 0} 947 | m_SortingLayerID: 0 948 | m_SortingLayer: 0 949 | m_SortingOrder: 0 950 | m_AdditionalVertexStreams: {fileID: 0} 951 | --- !u!33 &1807448154 952 | MeshFilter: 953 | m_ObjectHideFlags: 0 954 | m_CorrespondingSourceObject: {fileID: 0} 955 | m_PrefabInstance: {fileID: 0} 956 | m_PrefabAsset: {fileID: 0} 957 | m_GameObject: {fileID: 1807448151} 958 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 959 | --- !u!4 &1807448155 960 | Transform: 961 | m_ObjectHideFlags: 0 962 | m_CorrespondingSourceObject: {fileID: 0} 963 | m_PrefabInstance: {fileID: 0} 964 | m_PrefabAsset: {fileID: 0} 965 | m_GameObject: {fileID: 1807448151} 966 | serializedVersion: 2 967 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 968 | m_LocalPosition: {x: 12.13, y: 2.82, z: -2.71} 969 | m_LocalScale: {x: 1, y: 1, z: 1} 970 | m_ConstrainProportionsScale: 0 971 | m_Children: [] 972 | m_Father: {fileID: 0} 973 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 974 | --- !u!114 &1807448156 975 | MonoBehaviour: 976 | m_ObjectHideFlags: 0 977 | m_CorrespondingSourceObject: {fileID: 0} 978 | m_PrefabInstance: {fileID: 0} 979 | m_PrefabAsset: {fileID: 0} 980 | m_GameObject: {fileID: 1807448151} 981 | m_Enabled: 1 982 | m_EditorHideFlags: 0 983 | m_Script: {fileID: 11500000, guid: d34c14c6b8dda644bba0ce51e53e9b9a, type: 3} 984 | m_Name: 985 | m_EditorClassIdentifier: 986 | debug: {fileID: 331953855} 987 | m_repathTime: 1 988 | --- !u!1 &1828700215 989 | GameObject: 990 | m_ObjectHideFlags: 0 991 | m_CorrespondingSourceObject: {fileID: 0} 992 | m_PrefabInstance: {fileID: 0} 993 | m_PrefabAsset: {fileID: 0} 994 | serializedVersion: 6 995 | m_Component: 996 | - component: {fileID: 1828700219} 997 | - component: {fileID: 1828700218} 998 | - component: {fileID: 1828700217} 999 | - component: {fileID: 1828700216} 1000 | - component: {fileID: 1828700220} 1001 | m_Layer: 0 1002 | m_Name: Player 1003 | m_TagString: Player 1004 | m_Icon: {fileID: 0} 1005 | m_NavMeshLayer: 0 1006 | m_StaticEditorFlags: 0 1007 | m_IsActive: 1 1008 | --- !u!136 &1828700216 1009 | CapsuleCollider: 1010 | m_ObjectHideFlags: 0 1011 | m_CorrespondingSourceObject: {fileID: 0} 1012 | m_PrefabInstance: {fileID: 0} 1013 | m_PrefabAsset: {fileID: 0} 1014 | m_GameObject: {fileID: 1828700215} 1015 | m_Material: {fileID: 0} 1016 | m_IncludeLayers: 1017 | serializedVersion: 2 1018 | m_Bits: 0 1019 | m_ExcludeLayers: 1020 | serializedVersion: 2 1021 | m_Bits: 0 1022 | m_LayerOverridePriority: 0 1023 | m_IsTrigger: 0 1024 | m_ProvidesContacts: 0 1025 | m_Enabled: 1 1026 | serializedVersion: 2 1027 | m_Radius: 0.5 1028 | m_Height: 2 1029 | m_Direction: 1 1030 | m_Center: {x: 0, y: 0, z: 0} 1031 | --- !u!23 &1828700217 1032 | MeshRenderer: 1033 | m_ObjectHideFlags: 0 1034 | m_CorrespondingSourceObject: {fileID: 0} 1035 | m_PrefabInstance: {fileID: 0} 1036 | m_PrefabAsset: {fileID: 0} 1037 | m_GameObject: {fileID: 1828700215} 1038 | m_Enabled: 1 1039 | m_CastShadows: 1 1040 | m_ReceiveShadows: 1 1041 | m_DynamicOccludee: 1 1042 | m_StaticShadowCaster: 0 1043 | m_MotionVectors: 1 1044 | m_LightProbeUsage: 1 1045 | m_ReflectionProbeUsage: 1 1046 | m_RayTracingMode: 2 1047 | m_RayTraceProcedural: 0 1048 | m_RenderingLayerMask: 4294967295 1049 | m_RendererPriority: 0 1050 | m_Materials: 1051 | - {fileID: 2100000, guid: 1aa1690a0133c564e9ed7757a8475e4d, type: 2} 1052 | m_StaticBatchInfo: 1053 | firstSubMesh: 0 1054 | subMeshCount: 0 1055 | m_StaticBatchRoot: {fileID: 0} 1056 | m_ProbeAnchor: {fileID: 0} 1057 | m_LightProbeVolumeOverride: {fileID: 0} 1058 | m_ScaleInLightmap: 1 1059 | m_ReceiveGI: 1 1060 | m_PreserveUVs: 0 1061 | m_IgnoreNormalsForChartDetection: 0 1062 | m_ImportantGI: 0 1063 | m_StitchLightmapSeams: 0 1064 | m_SelectedEditorRenderState: 3 1065 | m_MinimumChartSize: 4 1066 | m_AutoUVMaxDistance: 0.5 1067 | m_AutoUVMaxAngle: 89 1068 | m_LightmapParameters: {fileID: 0} 1069 | m_SortingLayerID: 0 1070 | m_SortingLayer: 0 1071 | m_SortingOrder: 0 1072 | m_AdditionalVertexStreams: {fileID: 0} 1073 | --- !u!33 &1828700218 1074 | MeshFilter: 1075 | m_ObjectHideFlags: 0 1076 | m_CorrespondingSourceObject: {fileID: 0} 1077 | m_PrefabInstance: {fileID: 0} 1078 | m_PrefabAsset: {fileID: 0} 1079 | m_GameObject: {fileID: 1828700215} 1080 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 1081 | --- !u!4 &1828700219 1082 | Transform: 1083 | m_ObjectHideFlags: 0 1084 | m_CorrespondingSourceObject: {fileID: 0} 1085 | m_PrefabInstance: {fileID: 0} 1086 | m_PrefabAsset: {fileID: 0} 1087 | m_GameObject: {fileID: 1828700215} 1088 | serializedVersion: 2 1089 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1090 | m_LocalPosition: {x: -1.4, y: 3.82, z: -0.78} 1091 | m_LocalScale: {x: 1, y: 1, z: 1} 1092 | m_ConstrainProportionsScale: 0 1093 | m_Children: [] 1094 | m_Father: {fileID: 0} 1095 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1096 | --- !u!114 &1828700220 1097 | MonoBehaviour: 1098 | m_ObjectHideFlags: 0 1099 | m_CorrespondingSourceObject: {fileID: 0} 1100 | m_PrefabInstance: {fileID: 0} 1101 | m_PrefabAsset: {fileID: 0} 1102 | m_GameObject: {fileID: 1828700215} 1103 | m_Enabled: 1 1104 | m_EditorHideFlags: 0 1105 | m_Script: {fileID: 11500000, guid: 33f29be8d3aa4744fa1c3c0431c25333, type: 3} 1106 | m_Name: 1107 | m_EditorClassIdentifier: 1108 | speed: 5 1109 | --- !u!1 &2099745417 1110 | GameObject: 1111 | m_ObjectHideFlags: 0 1112 | m_CorrespondingSourceObject: {fileID: 0} 1113 | m_PrefabInstance: {fileID: 0} 1114 | m_PrefabAsset: {fileID: 0} 1115 | serializedVersion: 6 1116 | m_Component: 1117 | - component: {fileID: 2099745421} 1118 | - component: {fileID: 2099745420} 1119 | - component: {fileID: 2099745419} 1120 | - component: {fileID: 2099745418} 1121 | m_Layer: 8 1122 | m_Name: Cube 1123 | m_TagString: Obstacle 1124 | m_Icon: {fileID: 0} 1125 | m_NavMeshLayer: 0 1126 | m_StaticEditorFlags: 0 1127 | m_IsActive: 1 1128 | --- !u!23 &2099745418 1129 | MeshRenderer: 1130 | m_ObjectHideFlags: 0 1131 | m_CorrespondingSourceObject: {fileID: 0} 1132 | m_PrefabInstance: {fileID: 0} 1133 | m_PrefabAsset: {fileID: 0} 1134 | m_GameObject: {fileID: 2099745417} 1135 | m_Enabled: 1 1136 | m_CastShadows: 1 1137 | m_ReceiveShadows: 1 1138 | m_DynamicOccludee: 1 1139 | m_StaticShadowCaster: 0 1140 | m_MotionVectors: 1 1141 | m_LightProbeUsage: 1 1142 | m_ReflectionProbeUsage: 1 1143 | m_RayTracingMode: 2 1144 | m_RayTraceProcedural: 0 1145 | m_RenderingLayerMask: 4294967295 1146 | m_RendererPriority: 0 1147 | m_Materials: 1148 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 1149 | m_StaticBatchInfo: 1150 | firstSubMesh: 0 1151 | subMeshCount: 0 1152 | m_StaticBatchRoot: {fileID: 0} 1153 | m_ProbeAnchor: {fileID: 0} 1154 | m_LightProbeVolumeOverride: {fileID: 0} 1155 | m_ScaleInLightmap: 1 1156 | m_ReceiveGI: 1 1157 | m_PreserveUVs: 1 1158 | m_IgnoreNormalsForChartDetection: 0 1159 | m_ImportantGI: 0 1160 | m_StitchLightmapSeams: 0 1161 | m_SelectedEditorRenderState: 3 1162 | m_MinimumChartSize: 4 1163 | m_AutoUVMaxDistance: 0.5 1164 | m_AutoUVMaxAngle: 89 1165 | m_LightmapParameters: {fileID: 0} 1166 | m_SortingLayerID: 0 1167 | m_SortingLayer: 0 1168 | m_SortingOrder: 0 1169 | m_AdditionalVertexStreams: {fileID: 0} 1170 | --- !u!65 &2099745419 1171 | BoxCollider: 1172 | m_ObjectHideFlags: 0 1173 | m_CorrespondingSourceObject: {fileID: 0} 1174 | m_PrefabInstance: {fileID: 0} 1175 | m_PrefabAsset: {fileID: 0} 1176 | m_GameObject: {fileID: 2099745417} 1177 | m_Material: {fileID: 0} 1178 | m_IncludeLayers: 1179 | serializedVersion: 2 1180 | m_Bits: 0 1181 | m_ExcludeLayers: 1182 | serializedVersion: 2 1183 | m_Bits: 0 1184 | m_LayerOverridePriority: 0 1185 | m_IsTrigger: 0 1186 | m_ProvidesContacts: 0 1187 | m_Enabled: 1 1188 | serializedVersion: 3 1189 | m_Size: {x: 1, y: 1, z: 1} 1190 | m_Center: {x: 0, y: 0, z: 0} 1191 | --- !u!33 &2099745420 1192 | MeshFilter: 1193 | m_ObjectHideFlags: 0 1194 | m_CorrespondingSourceObject: {fileID: 0} 1195 | m_PrefabInstance: {fileID: 0} 1196 | m_PrefabAsset: {fileID: 0} 1197 | m_GameObject: {fileID: 2099745417} 1198 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 1199 | --- !u!4 &2099745421 1200 | Transform: 1201 | m_ObjectHideFlags: 0 1202 | m_CorrespondingSourceObject: {fileID: 0} 1203 | m_PrefabInstance: {fileID: 0} 1204 | m_PrefabAsset: {fileID: 0} 1205 | m_GameObject: {fileID: 2099745417} 1206 | serializedVersion: 2 1207 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1208 | m_LocalPosition: {x: 4.61, y: 1.24, z: -6.8} 1209 | m_LocalScale: {x: 25, y: 1.3677182, z: 25} 1210 | m_ConstrainProportionsScale: 0 1211 | m_Children: [] 1212 | m_Father: {fileID: 0} 1213 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1214 | --- !u!1660057539 &9223372036854775807 1215 | SceneRoots: 1216 | m_ObjectHideFlags: 0 1217 | m_Roots: 1218 | - {fileID: 331953856} 1219 | - {fileID: 282840814} 1220 | - {fileID: 1828700219} 1221 | - {fileID: 1807448155} 1222 | - {fileID: 49891055} 1223 | - {fileID: 960097130} 1224 | - {fileID: 2099745421} 1225 | - {fileID: 196049462} 1226 | - {fileID: 945849543} 1227 | - {fileID: 745021219} 1228 | - {fileID: 763082034} 1229 | -------------------------------------------------------------------------------- /Assets/Scenes/SampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99c9720ab356a0642a771bea13969a05 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes/SampleSceneSettings.lighting: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!850595691 &4890085278179872738 4 | LightingSettings: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: SampleSceneSettings 10 | serializedVersion: 6 11 | m_GIWorkflowMode: 1 12 | m_EnableBakedLightmaps: 0 13 | m_EnableRealtimeLightmaps: 0 14 | m_RealtimeEnvironmentLighting: 1 15 | m_BounceScale: 1 16 | m_AlbedoBoost: 1 17 | m_IndirectOutputScale: 1 18 | m_UsingShadowmask: 1 19 | m_BakeBackend: 1 20 | m_LightmapMaxSize: 1024 21 | m_BakeResolution: 10 22 | m_Padding: 2 23 | m_LightmapCompression: 3 24 | m_AO: 0 25 | m_AOMaxDistance: 1 26 | m_CompAOExponent: 1 27 | m_CompAOExponentDirect: 0 28 | m_ExtractAO: 0 29 | m_MixedBakeMode: 2 30 | m_LightmapsBakeMode: 1 31 | m_FilterMode: 1 32 | m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} 33 | m_ExportTrainingData: 0 34 | m_TrainingDataDestination: TrainingData 35 | m_RealtimeResolution: 2 36 | m_ForceWhiteAlbedo: 0 37 | m_ForceUpdates: 0 38 | m_FinalGather: 0 39 | m_FinalGatherRayCount: 256 40 | m_FinalGatherFiltering: 1 41 | m_PVRCulling: 1 42 | m_PVRSampling: 1 43 | m_PVRDirectSampleCount: 32 44 | m_PVRSampleCount: 256 45 | m_PVREnvironmentSampleCount: 256 46 | m_PVREnvironmentReferencePointCount: 2048 47 | m_LightProbeSampleCountMultiplier: 4 48 | m_PVRBounces: 2 49 | m_PVRMinBounces: 2 50 | m_PVREnvironmentImportanceSampling: 0 51 | m_PVRFilteringMode: 2 52 | m_PVRDenoiserTypeDirect: 0 53 | m_PVRDenoiserTypeIndirect: 0 54 | m_PVRDenoiserTypeAO: 0 55 | m_PVRFilterTypeDirect: 0 56 | m_PVRFilterTypeIndirect: 0 57 | m_PVRFilterTypeAO: 0 58 | m_PVRFilteringGaussRadiusDirect: 1 59 | m_PVRFilteringGaussRadiusIndirect: 5 60 | m_PVRFilteringGaussRadiusAO: 2 61 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 62 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 63 | m_PVRFilteringAtrousPositionSigmaAO: 1 64 | m_PVRTiledBaking: 0 65 | m_NumRaysToShootPerTexel: -1 66 | m_RespectSceneVisibilityWhenBakingGI: 0 67 | -------------------------------------------------------------------------------- /Assets/Scenes/SampleSceneSettings.lighting.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d134bb0de4e33ab4bb2276a7342e0b3e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 4890085278179872738 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/Waypoints/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0823479629c7cbf4d9929646093d90c6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/Waypoints/Editor/WaypointGraphEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | namespace Waypoints.Editor 6 | { 7 | [CustomEditor(typeof(WaypointGraph))] 8 | public class WaypointGraphEditor : UnityEditor.Editor 9 | { 10 | Event e => Event.current; 11 | static Texture2D btnUp, btnDown; 12 | static GUIContent plusTex, penTex, 13 | removeTex, clearTex, cancelTex, bulkTex, confirmTex; 14 | 15 | SerializedProperty graphProperty, movingObstacleTag, autoRebuild, graphState; 16 | WaypointGraph graph; 17 | 18 | List selectedNodes = new List(); 19 | 20 | BulkControl bulkControl = null; 21 | 22 | const float X_OFFSET = 35; 23 | const float CUBE_SIZE = 2f; 24 | 25 | private void OnEnable() 26 | { 27 | graphProperty = serializedObject.FindProperty("MainGraph"); 28 | movingObstacleTag = serializedObject.FindProperty("movingObstacleTag"); 29 | autoRebuild = serializedObject.FindProperty("m_autoRebuild"); 30 | graphState = serializedObject.FindProperty("State"); 31 | graph = (WaypointGraph)target; 32 | 33 | plusTex = LoadContent("plus", "Place Waypoint Node"); 34 | penTex = LoadContent("pen", "Edit Waypoint Node"); 35 | removeTex = LoadContent("remove", "Remove Waypoint Node"); 36 | clearTex = LoadContent("clear", "Clear Waypoints"); 37 | //cancelTex = Resources.Load("cancel"); 38 | //bulkTex = Resources.Load("bulk"); 39 | //confirmTex = Resources.Load("confirm"); 40 | btnUp = Resources.Load("button-up"); 41 | btnDown = Resources.Load("button-down"); 42 | } 43 | 44 | public override void OnInspectorGUI() 45 | { 46 | if (graphProperty.objectReferenceValue != null) 47 | { 48 | base.OnInspectorGUI(); 49 | 50 | movingObstacleTag.stringValue = EditorGUILayout.TagField("Obstacle Tag", movingObstacleTag.stringValue); 51 | 52 | Color originalColor = GUI.color; 53 | EditorGUILayout.Space(); 54 | 55 | GUI.contentColor = Color.white; 56 | Rect rect = EditorGUILayout.GetControlRect(false, 50); 57 | rect = EditorGUILayout.GetControlRect(false, 50); 58 | if (GUI.Button(rect, new GUIContent("Rebuild Graph"))) 59 | { 60 | graph.RebuildNodegraph(); 61 | SceneView.RepaintAll(); 62 | } 63 | } 64 | else 65 | { 66 | graphProperty.objectReferenceValue = EditorGUILayout.ObjectField("Graph", graphProperty.objectReferenceValue, typeof(Graph), allowSceneObjects: false); 67 | EditorGUILayout.HelpBox("Create a graph or add here.", MessageType.Error, wide: true); 68 | if (GUILayout.Button("Create new Graph")) 69 | { 70 | string path = EditorUtility.SaveFilePanelInProject("Create new Graph", "New Graph", "asset", "Create a new Graph asset"); 71 | Graph newGraph = CreateInstance(); 72 | AssetDatabase.CreateAsset(newGraph, path); 73 | graphProperty.objectReferenceValue = AssetDatabase.LoadAssetAtPath(path, typeof(Graph)); 74 | } 75 | } 76 | 77 | serializedObject.ApplyModifiedPropertiesWithoutUndo(); 78 | } 79 | 80 | private void OnSceneGUI() 81 | { 82 | if (graphProperty.objectReferenceValue == null) 83 | return; 84 | 85 | Tools.current = Tool.None; 86 | 87 | Handles.BeginGUI(); 88 | var rect = new Rect(10, 10, 30, 30); 89 | Toolbar(rect, graphProperty); 90 | Handles.EndGUI(); 91 | 92 | EditorGUI.BeginChangeCheck(); 93 | 94 | int id = GUIUtility.GetControlID(FocusType.Passive); 95 | HandleUtility.AddDefaultControl(id); 96 | switch ((NodegraphState)graphState.enumValueIndex) 97 | { 98 | case NodegraphState.Placing: 99 | PlacingNodes(id); 100 | EditorGUI.EndChangeCheck(); 101 | break; 102 | case NodegraphState.Bulk: 103 | BulkNodes(id); 104 | EditorGUI.EndChangeCheck(); 105 | break; 106 | case NodegraphState.Removing: 107 | RemovingNodes(id); 108 | EditorGUI.EndChangeCheck(); 109 | break; 110 | case NodegraphState.Editing: 111 | EditingNodes(); 112 | break; 113 | } 114 | 115 | SceneView.lastActiveSceneView.Repaint(); 116 | } 117 | 118 | private void Toolbar(Rect rect, SerializedProperty graphProperty) 119 | { 120 | if (GUI.Button(rect, plusTex, ButtonStyle(graph.State == NodegraphState.Placing))) 121 | { 122 | graphState.enumValueIndex = (int)NodegraphState.Placing; 123 | } 124 | rect.x += X_OFFSET; 125 | 126 | if (GUI.Button(rect, penTex, ButtonStyle(graph.State == NodegraphState.Editing))) 127 | { 128 | graphState.enumValueIndex = (int)NodegraphState.Editing; 129 | } 130 | rect.x += X_OFFSET; 131 | 132 | if (GUI.Button(rect, removeTex, ButtonStyle(graph.State == NodegraphState.Removing))) 133 | { 134 | graphState.enumValueIndex = (int)NodegraphState.Removing; 135 | } 136 | rect.x += X_OFFSET; 137 | 138 | if (GUI.Button(rect, clearTex, ButtonStyle(graph.State == NodegraphState.Clearing))) 139 | { 140 | if (EditorUtility.DisplayDialog("Clearing all the Waypoint Nodes", "This action will " + 141 | "remove all the nodes from the currently selected Waypoint. Are you sure?", 142 | "Yes", "No")) 143 | { 144 | graph.ClearNodes(); 145 | } 146 | graphState.enumValueIndex = (int)NodegraphState.None; 147 | } 148 | rect.x += X_OFFSET; 149 | 150 | rect.width *= 2; 151 | if (GUI.Button(rect, "Close")) 152 | { 153 | Selection.activeGameObject = null; 154 | Tools.current = Tool.Move; 155 | } 156 | 157 | serializedObject.ApplyModifiedProperties(); 158 | } 159 | 160 | #region Actions 161 | void PlacingNodes(int id) 162 | { 163 | RaycastHit hitInfo; 164 | Ray click = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition); 165 | if (Physics.Raycast(click, out hitInfo, 1000, graph.solidLayerMask, graph.m_hitTriggers)) 166 | { 167 | Handles.color = Color.yellow; 168 | Handles.DrawWireCube(hitInfo.point, Vector3.one / 4f); 169 | 170 | var nodes = graph.GetNodes(); 171 | Handles.color = Color.white; 172 | for (int ni = 0; ni < nodes.Count; ni++) 173 | { 174 | if (Vector3.Distance(hitInfo.point, nodes[ni].Position) <= graph.m_nodeMaximumDistance) 175 | Handles.DrawDottedLine(hitInfo.point, nodes[ni].Position, 2); 176 | } 177 | } 178 | 179 | switch (Event.current.type) 180 | { 181 | case EventType.MouseDown: 182 | // placing mode and mouse on Scene tab 183 | if (EditorWindow.mouseOverWindow.titleContent.text == "Scene") 184 | { 185 | // grab mouse down 186 | if (Event.current.button == 0) 187 | { 188 | if (Physics.Raycast(click, out hitInfo, 1000, graph.solidLayerMask)) 189 | { 190 | graph.AddNode(hitInfo.point); 191 | if (autoRebuild.boolValue) 192 | graph.RebuildNodegraph(); 193 | } 194 | 195 | Event.current.Use(); 196 | } 197 | } 198 | break; 199 | case EventType.KeyDown: 200 | if (Event.current.keyCode == KeyCode.Space) 201 | { 202 | Camera sceneCamera = SceneView.lastActiveSceneView.camera; 203 | var position = sceneCamera.transform.position + sceneCamera.transform.forward; 204 | graph.AddNode(position); 205 | if (autoRebuild.boolValue) 206 | graph.RebuildNodegraph(); 207 | 208 | Event.current.Use(); 209 | } 210 | break; 211 | } 212 | } 213 | 214 | void EditingNodes() 215 | { 216 | // select handle control 217 | var nodelist = graph.GetNodes(); 218 | for (int i = 0; i < nodelist.Count; i++) 219 | { 220 | int id = GUIUtility.GetControlID(FocusType.Passive); 221 | HandleUtility.AddDefaultControl(id); 222 | Handles.color = Color.white; 223 | Handles.CubeHandleCap(id, nodelist[i].Position, Quaternion.identity, graph.m_nodeSize, EventType.Layout); 224 | 225 | if (HandleUtility.nearestControl == id 226 | && Event.current.GetTypeForControl(id) == EventType.MouseDown 227 | && Event.current.button == 0) // left mouse button 228 | { 229 | 230 | if (!Event.current.shift) 231 | selectedNodes.Clear(); 232 | 233 | selectedNodes.Add(nodelist[i]); 234 | } 235 | } 236 | 237 | for (int s = 0; s < selectedNodes.Count; s++) 238 | { 239 | Handles.color = Color.white; 240 | Handles.CubeHandleCap(0, selectedNodes[s].Position, Quaternion.identity, graph.m_nodeSize, EventType.Repaint); 241 | } 242 | 243 | if (selectedNodes.Count > 0) 244 | { 245 | Vector3 median = Vector3.zero; 246 | for (int p = 0; p < selectedNodes.Count; p++) 247 | median += selectedNodes[p].Position; 248 | 249 | median /= selectedNodes.Count; 250 | 251 | EditorGUI.BeginChangeCheck(); 252 | Vector3 newPosition = Handles.PositionHandle(median, Quaternion.identity); 253 | if (EditorGUI.EndChangeCheck()) 254 | { 255 | for (int p = 0; p < selectedNodes.Count; p++) 256 | { 257 | Vector3 offset = newPosition - median; 258 | selectedNodes[p].Position += offset; 259 | } 260 | graph.RebuildNodegraph(); 261 | } 262 | } 263 | } 264 | 265 | void RemovingNodes(int id) 266 | { 267 | Ray pointer = HandleUtility.GUIPointToWorldRay(e.mousePosition); 268 | 269 | // draws brush 270 | var p = pointer.origin + pointer.direction * 5f; 271 | Handles.color = Color.yellow; 272 | Handles.CircleHandleCap(id, p, Quaternion.LookRotation(pointer.direction), graph.m_brushRadius, EventType.Repaint); 273 | 274 | var nodes = graph.GetNodes(); 275 | Handles.color = Color.red; 276 | for (int ni = 0; ni < nodes.Count; ni++) 277 | { 278 | var screenNodePos = HandleUtility.WorldToGUIPoint(nodes[ni].Position); 279 | var mousePos = e.mousePosition; 280 | 281 | var distance = Vector2.Distance(new Vector2(screenNodePos.x, screenNodePos.y), mousePos); 282 | //Handles.Label(nodes[ni].Position, $"Distance: {distance}"); 283 | if (distance <= graph.m_brushRadius * 100) 284 | { 285 | Handles.CubeHandleCap(0, nodes[ni].Position, Quaternion.identity, graph.m_nodeSize, EventType.Repaint); 286 | } 287 | } 288 | 289 | if (Event.current.type == EventType.MouseDown) 290 | { 291 | for (int ni = 0; ni < nodes.Count; ni++) 292 | { 293 | var screenNodePos = HandleUtility.WorldToGUIPoint(nodes[ni].Position); 294 | var mousePos = e.mousePosition; 295 | 296 | var distance = Vector2.Distance(new Vector2(screenNodePos.x, screenNodePos.y), mousePos); 297 | if (distance <= graph.m_brushRadius * 100) 298 | graph.RemoveNode(ni); 299 | } 300 | } 301 | 302 | if (autoRebuild.boolValue) 303 | graph.RebuildNodegraph(); 304 | } 305 | 306 | void BulkNodes(int id) 307 | { 308 | EditorGUI.BeginChangeCheck(); 309 | float handleSize = HandleUtility.GetHandleSize(bulkControl.Position); 310 | bulkControl.Position = Handles.PositionHandle(bulkControl.Position, Quaternion.identity); 311 | bulkControl.Scale = Handles.ScaleHandle(bulkControl.Scale, bulkControl.Position, Quaternion.identity, handleSize + 1); 312 | Handles.color = Color.cyan; 313 | Handles.DrawWireCube(bulkControl.Position, bulkControl.Scale); 314 | 315 | Vector3Int extension = bulkControl.Extension; 316 | 317 | int controlID = GUIUtility.GetControlID(FocusType.Keyboard); 318 | Handles.color = Color.green; 319 | for (int x = -extension.x; x < extension.x; x += graph.m_bulkNodeDistanceGap) 320 | { 321 | for (int y = -extension.y; y < extension.y; y += graph.m_bulkNodeDistanceGap) 322 | { 323 | for (int z = -extension.z; z < extension.z; z += graph.m_bulkNodeDistanceGap) 324 | { 325 | Handles.CubeHandleCap(controlID, new Vector3(x, y, z) + bulkControl.Position, Quaternion.identity, 1f, EventType.Repaint); 326 | } 327 | } 328 | } 329 | 330 | EditorGUI.EndChangeCheck(); 331 | } 332 | #endregion 333 | private void OnDisable() 334 | { 335 | Tools.current = Tool.Move; 336 | } 337 | 338 | #region Helpers 339 | GUIStyle ButtonStyle(bool active) 340 | { 341 | var style = EditorStyles.miniButton; 342 | style.fixedHeight = style.fixedWidth = 30; 343 | style.normal.background = active ? btnDown : btnUp; 344 | 345 | return style; 346 | } 347 | 348 | GUIContent LoadContent(string textureName, string tooltip) 349 | { 350 | return new GUIContent(Resources.Load(textureName), tooltip); 351 | } 352 | #endregion 353 | } 354 | } 355 | -------------------------------------------------------------------------------- /Packages/Waypoints/Editor/WaypointGraphEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 912005bc52996584b872581676bacc4b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/Waypoints/Editor/WaypointTool.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEditor.EditorTools; 3 | using UnityEngine; 4 | 5 | namespace Waypoints.Editor 6 | { 7 | [EditorTool("Waypoints")] 8 | public class WaypointTool : EditorTool 9 | { 10 | public override void OnToolGUI(EditorWindow window) 11 | { 12 | EditorGUI.BeginChangeCheck(); 13 | 14 | Vector3 position = Tools.handlePosition; 15 | 16 | if (EditorGUI.EndChangeCheck()) 17 | { 18 | Vector3 delta = position - Tools.handlePosition; 19 | 20 | Undo.RecordObjects(Selection.transforms, "Move Platform"); 21 | 22 | foreach (var transform in Selection.transforms) 23 | transform.position += delta; 24 | } 25 | 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Packages/Waypoints/Editor/WaypointTool.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 82573cbfd726c864b885fbbff3f22b8a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/Waypoints/Editor/Waypoints-editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Nodegraph-editor", 3 | "references": [ 4 | "Waypoints" 5 | ], 6 | "optionalUnityReferences": [], 7 | "includePlatforms": [ 8 | "Editor" 9 | ], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false 12 | } -------------------------------------------------------------------------------- /Packages/Waypoints/Editor/Waypoints-editor.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1eb5086b6a71afc4f933ea2ab7e6b1ad 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8cdfe8f9fb306b341ac268b30ee9b87b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/bulk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/bulk.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/bulk.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ed1d85329b8f4744b8e039ce18dd24b 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 1 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 64 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 64 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/button-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/button-down.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/button-down.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34b4f5998d7eb184f8e660113e27839a 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/button-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/button-up.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/button-up.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 193fdc4960137a9408c7ebdc8b70d265 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | spriteSheet: 75 | serializedVersion: 2 76 | sprites: [] 77 | outline: [] 78 | physicsShape: [] 79 | bones: [] 80 | spriteID: 81 | internalID: 0 82 | vertices: [] 83 | indices: 84 | edges: [] 85 | weights: [] 86 | secondaryTextures: [] 87 | spritePackingTag: 88 | pSDRemoveMatte: 0 89 | pSDShowRemoveMatteOption: 0 90 | userData: 91 | assetBundleName: 92 | assetBundleVariant: 93 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/button.ase: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/button.ase -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/button.ase.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95701524940ee084db73b960c5e8ecae 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/cancel.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/cancel.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1bfe4a85231c5048a0fa829f500534a 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 1 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 64 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 64 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/clear.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/clear.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d224cf0470e02c44cb399fa0b6d0ba2a 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 1 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 64 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 64 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/confirm.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/confirm.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6953205d923e2947be1c3f72d1b9d32 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 1 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 64 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 64 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 1 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/gears.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/gears.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/gears.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 997ac1c9924a86f44afe573c94dff320 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 1 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 64 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 64 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/pen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/pen.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/pen.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9d6e028fce76b14ba099a43ee3b7d49 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 1 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 64 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 64 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/plus.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/plus.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0a4f9a20b8ac554983e7ca6222386e5 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 1 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 64 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 64 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/remove.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/remove.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 17bd4c7d27e353447a89bdf00a355074 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 1 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 64 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 64 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/waypoint-editor-tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/waypoint-editor-tool.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/waypoint-editor-tool.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa787a5e361035e40bffe9d9a5408956 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | applyGammaDecoding: 0 61 | platformSettings: 62 | - serializedVersion: 3 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 64 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 50 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | forceMaximumCompressionQuality_BC6H_BC7: 0 74 | - serializedVersion: 3 75 | buildTarget: Standalone 76 | maxTextureSize: 64 77 | resizeAlgorithm: 0 78 | textureFormat: -1 79 | textureCompression: 1 80 | compressionQuality: 50 81 | crunchedCompression: 0 82 | allowsAlphaSplitting: 0 83 | overridden: 0 84 | androidETC2FallbackOverride: 0 85 | forceMaximumCompressionQuality_BC6H_BC7: 0 86 | spriteSheet: 87 | serializedVersion: 2 88 | sprites: [] 89 | outline: [] 90 | physicsShape: [] 91 | bones: [] 92 | spriteID: 93 | internalID: 0 94 | vertices: [] 95 | indices: 96 | edges: [] 97 | weights: [] 98 | secondaryTextures: [] 99 | spritePackingTag: 100 | pSDRemoveMatte: 0 101 | pSDShowRemoveMatteOption: 0 102 | userData: 103 | assetBundleName: 104 | assetBundleVariant: 105 | -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/waypoint-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/epiplon-game-studio/Waypoints/4ad8acc235e241c87731057a9ad74b486833a80a/Packages/Waypoints/Resources/waypoint-icon.png -------------------------------------------------------------------------------- /Packages/Waypoints/Resources/waypoint-icon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 476fb20ef7f74194c834c5b9bcd96f01 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: 0 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 0 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | - serializedVersion: 2 71 | buildTarget: Standalone 72 | maxTextureSize: 2048 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 0 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | androidETC2FallbackOverride: 0 81 | spriteSheet: 82 | serializedVersion: 2 83 | sprites: [] 84 | outline: [] 85 | physicsShape: [] 86 | bones: [] 87 | spriteID: 88 | vertices: [] 89 | indices: 90 | edges: [] 91 | weights: [] 92 | spritePackingTag: 93 | userData: 94 | assetBundleName: 95 | assetBundleVariant: 96 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1aa25fb11e5ddc04f8fa337a97676f2f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/BulkControl.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Waypoints 6 | { 7 | public class BulkControl 8 | { 9 | public Vector3 Position; 10 | public Vector3 Scale; 11 | public Vector3Int Extension 12 | { 13 | get 14 | { 15 | return new Vector3Int(Mathf.FloorToInt(Scale.x / 2), Mathf.FloorToInt(Scale.y / 2), Mathf.FloorToInt(Scale.z / 2)); 16 | } 17 | } 18 | 19 | public BulkControl(Vector3 position) 20 | { 21 | Position = position; 22 | Scale = Vector3.one; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/BulkControl.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e85af7bf9e2a62428b9e8d75cdb1ad8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/Graph.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Waypoints 6 | { 7 | [CreateAssetMenu(fileName = "GraphName", menuName = "Waypoints/New Graph")] 8 | public class Graph : ScriptableObject 9 | { 10 | public List AllNodes = new List(); 11 | 12 | public Node GetNode(int index) 13 | { 14 | return AllNodes.ElementAtOrDefault(index); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/Graph.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1513459d8bb822949ac691e695ccc25b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/Node.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using UnityEngine; 4 | 5 | namespace Waypoints 6 | { 7 | /// 8 | /// A node in the graph, with a position and all possible connections 9 | /// 10 | [Serializable] 11 | public class Node 12 | { 13 | public Vector3 Position; 14 | public Connection[] ConnectedNodes; 15 | 16 | public Node(Vector3 position) 17 | { 18 | Position = position; 19 | ConnectedNodes = new Connection[0]; 20 | } 21 | } 22 | 23 | /// 24 | /// A connection with next node information 25 | /// 26 | [Serializable] 27 | public struct Connection 28 | { 29 | public int StartNodeIndex; // index of the start node 30 | public int EndNodeIndex; // index of the end node 31 | public float Cost; // Cost to reach the node (distance) 32 | public ConnectionType Type; // see the type description 33 | 34 | public static bool operator ==(Connection c1, Connection c2) 35 | { 36 | if (ReferenceEquals(c1, null)) 37 | { 38 | return ReferenceEquals(c2, null); 39 | } 40 | 41 | return c1.EndNodeIndex.Equals(c2.EndNodeIndex); 42 | } 43 | 44 | public static bool operator !=(Connection c1, Connection c2) 45 | { 46 | if (ReferenceEquals(c1, null)) 47 | { 48 | return ReferenceEquals(c2, null); 49 | } 50 | 51 | return !c1.EndNodeIndex.Equals(c2.EndNodeIndex); 52 | } 53 | 54 | public override bool Equals(object obj) 55 | { 56 | return base.Equals(obj); 57 | } 58 | 59 | public override int GetHashCode() 60 | { 61 | return base.GetHashCode(); 62 | } 63 | } 64 | 65 | public struct ConnectionComparer : IComparer 66 | { 67 | public Node endNode; 68 | public delegate Node GetNode(int index); 69 | public GetNode getNode; 70 | 71 | public int Compare(object x, object y) 72 | { 73 | var a = (Connection)x; 74 | var b = (Connection)y; 75 | var aCost = a.Cost + WaypointGraph.Heuristic(getNode(a.EndNodeIndex).Position, endNode); 76 | var bCost = b.Cost + WaypointGraph.Heuristic(getNode(b.EndNodeIndex).Position, endNode); 77 | if (aCost > bCost) 78 | return 1; 79 | if (aCost < bCost) 80 | return -1; 81 | 82 | return 0; 83 | } 84 | } 85 | 86 | // Null: no connection - should be removed 87 | // Static: free to move 88 | // Dynamic: can be blocked by moving obstacle, like doors or platforms 89 | public enum ConnectionType { Null, Static, Dynamic } 90 | } 91 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/Node.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7a808f07247e244408ca55847af8fbeb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/WaypointGraph.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | #if UNITY_EDITOR 6 | using UnityEditor; 7 | #endif 8 | 9 | namespace Waypoints 10 | { 11 | [ExecuteInEditMode] 12 | public class WaypointGraph : MonoBehaviour 13 | { 14 | static List graphs = new List(); 15 | 16 | public static WaypointGraph Get(string label) 17 | { 18 | return graphs.FirstOrDefault(n => n.m_nodegraphLabel.Equals(label)); 19 | } 20 | 21 | public Graph MainGraph; 22 | 23 | [Header("Node Settings")] 24 | public string m_nodegraphLabel; 25 | public float m_nodeMaximumDistance = 3f; 26 | public float m_nodeSize = 0.25f; 27 | public QueryTriggerInteraction m_hitTriggers; 28 | [Tooltip("For removing nodes")] 29 | public float m_brushRadius = 3f; 30 | public bool m_autoRebuild = true; 31 | 32 | [Header("Editor")] 33 | public Color m_nodeColor = Color.cyan; 34 | public Color m_staticConnection = Color.cyan; 35 | public Color m_dynamicConnection = Color.yellow; 36 | public bool m_showLog; 37 | 38 | [Space] 39 | public int m_bulkNodeDistanceGap = 3; 40 | public float m_bulkSpawnDistance = 4; 41 | 42 | [Space] 43 | public float m_nodeUpOffset = 0.3f; 44 | public bool m_alwaysShowNodes; 45 | public LayerMask solidLayerMask; 46 | [HideInInspector] public string movingObstacleTag; 47 | 48 | ConnectionComparer connectionComparer; 49 | 50 | private void Awake() 51 | { 52 | graphs.Add(this); 53 | connectionComparer = new ConnectionComparer() { getNode = GetNode }; 54 | } 55 | 56 | public void PrintLog(string message) 57 | { 58 | if (m_showLog) 59 | Debug.Log(message); 60 | } 61 | 62 | private void OnDestroy() 63 | { 64 | graphs.Remove(this); 65 | } 66 | 67 | #region Node Operations 68 | 69 | public void AddNode(Vector3 position) 70 | { 71 | var newNode = new Node(position + Vector3.up * m_nodeUpOffset); 72 | MainGraph.AllNodes.Add(newNode); 73 | } 74 | 75 | public void ClearNodes() 76 | { 77 | MainGraph.AllNodes.Clear(); 78 | } 79 | 80 | public void RemoveNode(int i) 81 | { 82 | if (MainGraph.AllNodes.Count == 0) 83 | { 84 | Debug.LogWarning("No nodes to remove."); 85 | return; 86 | } 87 | 88 | MainGraph.AllNodes.RemoveAt(i); 89 | } 90 | 91 | public Node GetNode(int index) 92 | { 93 | return MainGraph.GetNode(index); 94 | } 95 | 96 | public List GetNodes() 97 | { 98 | return MainGraph.AllNodes; 99 | } 100 | 101 | public void RebuildNodegraph() 102 | { 103 | bool hitBackfaces = Physics.queriesHitBackfaces; 104 | Physics.queriesHitBackfaces = true; 105 | RaycastHit[] hits = new RaycastHit[8]; 106 | 107 | for (int i = 0; i < MainGraph.AllNodes.Count; i++) 108 | { 109 | var overlapped = Physics.OverlapSphere(MainGraph.AllNodes[i].Position, m_nodeSize, solidLayerMask, m_hitTriggers); 110 | if (overlapped.Count() > 0) 111 | { 112 | MainGraph.AllNodes[i].ConnectedNodes = new Connection[0]; 113 | PrintLog("Found node overlap."); 114 | continue; 115 | } 116 | 117 | var connectedNodes = MainGraph.AllNodes.Where(n => MainGraph.AllNodes[i] != n) 118 | .Where(n => Vector3.Distance(MainGraph.AllNodes[i].Position, n.Position) < m_nodeMaximumDistance) 119 | .Select(n => 120 | { 121 | var connection = new Connection(); 122 | connection.StartNodeIndex = i; 123 | connection.EndNodeIndex = MainGraph.AllNodes.IndexOf(n); 124 | connection.Cost = Vector3.Distance(MainGraph.AllNodes[i].Position, n.Position); 125 | 126 | // tries to find something between the nodes 127 | var diff = (n.Position - MainGraph.AllNodes[i].Position); 128 | var n_hits = Physics.RaycastNonAlloc(MainGraph.AllNodes[i].Position, diff.normalized, 129 | hits, diff.magnitude, solidLayerMask, m_hitTriggers); 130 | if (n_hits > 0) 131 | { 132 | connection.Type = ConnectionType.Dynamic; 133 | for (int h = 0; h < n_hits; h++) 134 | { 135 | if (!hits[h].collider.CompareTag(movingObstacleTag)) 136 | { 137 | connection.Type = ConnectionType.Null; 138 | break; 139 | } 140 | } 141 | } 142 | else 143 | { 144 | connection.Type = ConnectionType.Static; 145 | } 146 | 147 | 148 | return connection; 149 | }) 150 | .Where(c => c.Type != ConnectionType.Null); 151 | 152 | MainGraph.AllNodes[i].ConnectedNodes = connectedNodes.ToArray(); 153 | } 154 | 155 | Physics.queriesHitBackfaces = hitBackfaces; 156 | } 157 | 158 | /// 159 | /// Tries to find the shortest path to the target 160 | /// 161 | /// Starting position 162 | /// Final position 163 | /// Path 164 | public List QueryPath(Vector3 start, Vector3 end) 165 | { 166 | if (MainGraph.AllNodes.Count == 0) 167 | return new List(); 168 | 169 | DateTime clockStart = DateTime.Now; 170 | //============== 171 | 172 | Node startNode = FindClosestNode(start); 173 | Node endNode = FindClosestNode(end); 174 | 175 | List path = new List(); 176 | List visited = new List(); 177 | 178 | // could not find a path 179 | if (startNode == null || endNode == null) 180 | return path; 181 | 182 | // create a temporary connection to the starting node 183 | var startConnection = new Connection() { EndNodeIndex = MainGraph.AllNodes.IndexOf(startNode) }; 184 | path = Search(startConnection, endNode, ref path, ref visited); 185 | 186 | //============= 187 | TimeSpan clockEnd = DateTime.Now - clockStart; 188 | PrintLog("Operation took: " + clockEnd.TotalSeconds); 189 | PrintLog("Search found " + path.Count + " nodes."); 190 | 191 | return path; 192 | } 193 | 194 | 195 | /// 196 | /// Executes the pathfinding recursive search function 197 | /// 198 | /// Current Node 199 | /// Target node to be reached 200 | /// 201 | /// 202 | /// 203 | private List Search(Connection connection, Node endNode, ref List path, ref List visited) 204 | { 205 | var node = MainGraph.GetNode(connection.EndNodeIndex); 206 | path.Add(connection); 207 | visited.Add(node); 208 | 209 | connectionComparer.endNode = endNode; 210 | Array.Sort(node.ConnectedNodes, connectionComparer); 211 | foreach (var childConnect in node.ConnectedNodes) 212 | { 213 | Node child = MainGraph.GetNode(childConnect.EndNodeIndex); 214 | 215 | // don't let it go to the same path 216 | if (visited.Contains(child)) 217 | continue; 218 | else 219 | path = Search(childConnect, endNode, ref path, ref visited); 220 | } 221 | 222 | var lastNode = MainGraph.GetNode(path[path.Count - 1].EndNodeIndex); 223 | if (lastNode != endNode) 224 | path.RemoveAt(path.Count - 1); 225 | 226 | return path; 227 | } 228 | 229 | public static float Heuristic(Vector3 nodePosition, Node goal) 230 | { 231 | return Vector3.Distance(goal.Position, nodePosition); 232 | } 233 | 234 | private Node FindClosestNode(Vector3 position) 235 | { 236 | bool hitBackfaces = Physics.queriesHitBackfaces; 237 | Physics.queriesHitBackfaces = true; 238 | 239 | Node closestNode = null; 240 | for (int i = 0; i < MainGraph.AllNodes.Count; i++) 241 | { 242 | // didn't hit a solid surface 243 | if (!Physics.Linecast(position, MainGraph.AllNodes[i].Position, solidLayerMask)) 244 | { 245 | if (closestNode == null) 246 | closestNode = MainGraph.AllNodes[i]; 247 | else 248 | { 249 | if (Vector3.Distance(MainGraph.AllNodes[i].Position, position) 250 | < Vector3.Distance(closestNode.Position, position)) 251 | closestNode = MainGraph.AllNodes[i]; 252 | } 253 | } 254 | } 255 | 256 | Physics.queriesHitBackfaces = hitBackfaces; 257 | 258 | return closestNode; 259 | } 260 | 261 | #endregion 262 | 263 | #if UNITY_EDITOR 264 | [HideInInspector] 265 | public NodegraphState State = NodegraphState.None; 266 | 267 | private void OnDrawGizmosSelected() 268 | { 269 | if (m_alwaysShowNodes) 270 | return; 271 | 272 | DrawNodegraph(); 273 | } 274 | 275 | private void OnDrawGizmos() 276 | { 277 | if (m_alwaysShowNodes) 278 | DrawNodegraph(); 279 | } 280 | 281 | void DrawNodegraph() 282 | { 283 | if (MainGraph) 284 | { 285 | if (MainGraph.AllNodes != null) 286 | { 287 | foreach (var n in MainGraph.AllNodes) 288 | { 289 | Gizmos.color = m_nodeColor; 290 | Gizmos.DrawCube(n.Position, Vector3.one * m_nodeSize); 291 | foreach (var c in n.ConnectedNodes) 292 | { 293 | var node = MainGraph.GetNode(c.EndNodeIndex); 294 | if (node != null) 295 | { 296 | switch (c.Type) 297 | { 298 | case ConnectionType.Null: 299 | Gizmos.color = Color.red; // this shouldn't happen 300 | break; 301 | case ConnectionType.Static: 302 | Gizmos.color = m_staticConnection; 303 | break; 304 | case ConnectionType.Dynamic: 305 | Gizmos.color = m_dynamicConnection; 306 | break; 307 | } 308 | 309 | Gizmos.DrawLine(n.Position, node.Position); 310 | } 311 | 312 | } 313 | } 314 | } 315 | 316 | } 317 | } 318 | #endif 319 | } 320 | 321 | public enum NodegraphState 322 | { 323 | None, 324 | Bulk, 325 | Placing, 326 | Editing, 327 | Removing, 328 | Clearing 329 | } 330 | 331 | #if UNITY_EDITOR 332 | [InitializeOnLoad] 333 | static class NodegraphHierarchy 334 | { 335 | static Texture icon; 336 | static GUIStyle iconStyle; 337 | 338 | static NodegraphHierarchy() 339 | { 340 | icon = Resources.Load("waypoint-icon"); 341 | if (iconStyle == null) 342 | { 343 | iconStyle = new GUIStyle(); 344 | iconStyle.alignment = TextAnchor.MiddleRight; 345 | } 346 | 347 | EditorApplication.hierarchyWindowItemOnGUI += HighlightItems; 348 | } 349 | 350 | private static void HighlightItems(int instanceID, Rect selectionRect) 351 | { 352 | var target = EditorUtility.InstanceIDToObject(instanceID) as GameObject; 353 | if (target == null) 354 | return; 355 | 356 | if (target.GetComponent() != null) 357 | { 358 | GUI.Label(selectionRect, new GUIContent(icon), iconStyle); 359 | } 360 | } 361 | } 362 | #endif 363 | } 364 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/WaypointGraph.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f7bf855f00871941ac9a4a41846c2b4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/Waypoints.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Waypoints", 3 | "references": [], 4 | "optionalUnityReferences": [], 5 | "includePlatforms": [ 6 | "Editor", 7 | "WindowsStandalone32", 8 | "WindowsStandalone64" 9 | ], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false 12 | } -------------------------------------------------------------------------------- /Packages/Waypoints/Scripts/Waypoints.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 719f19242b82ee249b241a315f0e121a 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/Waypoints/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.epiplon.waypoints", 3 | "displayName": "Waypoints", 4 | "description": "Draw waypoints to use with pathfinding tools", 5 | "unity": "2019.4", 6 | "version": "1.1.0", 7 | "category": "editor extensions", 8 | "dependencies": {}, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/epiplon-game-studio/Waypoints.git" 12 | }, 13 | "author": { 14 | "name": "Vinicius Castanheira", 15 | "email": "epiplonstudio@pm.me", 16 | "url": "https://github.com/epiplon-game-studio/Waypoints" 17 | }, 18 | "license": "MIT", 19 | "bugs": { 20 | "url": "https://github.com/epiplon-game-studio/UnityTile3D/issues" 21 | }, 22 | "homepage": "https://github.com/epiplon-game-studio/UnityTile3D#readme" 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Packages/Waypoints/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e1b85f118ab17c7998b99d7e8ad34c90 3 | PackageManifestImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.epiplon.waypoints": "1.1.0", 4 | "com.unity.2d.sprite": "1.0.0", 5 | "com.unity.2d.tilemap": "1.0.0", 6 | "com.unity.ai.navigation": "1.1.5", 7 | "com.unity.ide.visualstudio": "2.0.22", 8 | "com.unity.ide.vscode": "1.2.5", 9 | "com.unity.test-framework": "1.1.33", 10 | "com.unity.textmeshpro": "3.0.9", 11 | "com.unity.ugui": "1.0.0", 12 | "com.unity.modules.ai": "1.0.0", 13 | "com.unity.modules.androidjni": "1.0.0", 14 | "com.unity.modules.animation": "1.0.0", 15 | "com.unity.modules.assetbundle": "1.0.0", 16 | "com.unity.modules.audio": "1.0.0", 17 | "com.unity.modules.cloth": "1.0.0", 18 | "com.unity.modules.director": "1.0.0", 19 | "com.unity.modules.imageconversion": "1.0.0", 20 | "com.unity.modules.imgui": "1.0.0", 21 | "com.unity.modules.jsonserialize": "1.0.0", 22 | "com.unity.modules.particlesystem": "1.0.0", 23 | "com.unity.modules.physics": "1.0.0", 24 | "com.unity.modules.physics2d": "1.0.0", 25 | "com.unity.modules.screencapture": "1.0.0", 26 | "com.unity.modules.terrain": "1.0.0", 27 | "com.unity.modules.terrainphysics": "1.0.0", 28 | "com.unity.modules.tilemap": "1.0.0", 29 | "com.unity.modules.ui": "1.0.0", 30 | "com.unity.modules.uielements": "1.0.0", 31 | "com.unity.modules.umbra": "1.0.0", 32 | "com.unity.modules.unityanalytics": "1.0.0", 33 | "com.unity.modules.unitywebrequest": "1.0.0", 34 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 35 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 36 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 37 | "com.unity.modules.unitywebrequestwww": "1.0.0", 38 | "com.unity.modules.vehicles": "1.0.0", 39 | "com.unity.modules.video": "1.0.0", 40 | "com.unity.modules.vr": "1.0.0", 41 | "com.unity.modules.wind": "1.0.0", 42 | "com.unity.modules.xr": "1.0.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.epiplon.waypoints": { 4 | "version": "file:Waypoints", 5 | "depth": 0, 6 | "source": "embedded", 7 | "dependencies": {} 8 | }, 9 | "com.unity.2d.sprite": { 10 | "version": "1.0.0", 11 | "depth": 0, 12 | "source": "builtin", 13 | "dependencies": {} 14 | }, 15 | "com.unity.2d.tilemap": { 16 | "version": "1.0.0", 17 | "depth": 0, 18 | "source": "builtin", 19 | "dependencies": { 20 | "com.unity.modules.tilemap": "1.0.0", 21 | "com.unity.modules.uielements": "1.0.0" 22 | } 23 | }, 24 | "com.unity.ai.navigation": { 25 | "version": "1.1.5", 26 | "depth": 0, 27 | "source": "registry", 28 | "dependencies": { 29 | "com.unity.modules.ai": "1.0.0" 30 | }, 31 | "url": "https://packages.unity.com" 32 | }, 33 | "com.unity.ext.nunit": { 34 | "version": "1.0.6", 35 | "depth": 1, 36 | "source": "registry", 37 | "dependencies": {}, 38 | "url": "https://packages.unity.com" 39 | }, 40 | "com.unity.ide.visualstudio": { 41 | "version": "2.0.22", 42 | "depth": 0, 43 | "source": "registry", 44 | "dependencies": { 45 | "com.unity.test-framework": "1.1.9" 46 | }, 47 | "url": "https://packages.unity.com" 48 | }, 49 | "com.unity.ide.vscode": { 50 | "version": "1.2.5", 51 | "depth": 0, 52 | "source": "registry", 53 | "dependencies": {}, 54 | "url": "https://packages.unity.com" 55 | }, 56 | "com.unity.test-framework": { 57 | "version": "1.1.33", 58 | "depth": 0, 59 | "source": "registry", 60 | "dependencies": { 61 | "com.unity.ext.nunit": "1.0.6", 62 | "com.unity.modules.imgui": "1.0.0", 63 | "com.unity.modules.jsonserialize": "1.0.0" 64 | }, 65 | "url": "https://packages.unity.com" 66 | }, 67 | "com.unity.textmeshpro": { 68 | "version": "3.0.9", 69 | "depth": 0, 70 | "source": "registry", 71 | "dependencies": { 72 | "com.unity.ugui": "1.0.0" 73 | }, 74 | "url": "https://packages.unity.com" 75 | }, 76 | "com.unity.ugui": { 77 | "version": "1.0.0", 78 | "depth": 0, 79 | "source": "builtin", 80 | "dependencies": { 81 | "com.unity.modules.ui": "1.0.0", 82 | "com.unity.modules.imgui": "1.0.0" 83 | } 84 | }, 85 | "com.unity.modules.ai": { 86 | "version": "1.0.0", 87 | "depth": 0, 88 | "source": "builtin", 89 | "dependencies": {} 90 | }, 91 | "com.unity.modules.androidjni": { 92 | "version": "1.0.0", 93 | "depth": 0, 94 | "source": "builtin", 95 | "dependencies": {} 96 | }, 97 | "com.unity.modules.animation": { 98 | "version": "1.0.0", 99 | "depth": 0, 100 | "source": "builtin", 101 | "dependencies": {} 102 | }, 103 | "com.unity.modules.assetbundle": { 104 | "version": "1.0.0", 105 | "depth": 0, 106 | "source": "builtin", 107 | "dependencies": {} 108 | }, 109 | "com.unity.modules.audio": { 110 | "version": "1.0.0", 111 | "depth": 0, 112 | "source": "builtin", 113 | "dependencies": {} 114 | }, 115 | "com.unity.modules.cloth": { 116 | "version": "1.0.0", 117 | "depth": 0, 118 | "source": "builtin", 119 | "dependencies": { 120 | "com.unity.modules.physics": "1.0.0" 121 | } 122 | }, 123 | "com.unity.modules.director": { 124 | "version": "1.0.0", 125 | "depth": 0, 126 | "source": "builtin", 127 | "dependencies": { 128 | "com.unity.modules.audio": "1.0.0", 129 | "com.unity.modules.animation": "1.0.0" 130 | } 131 | }, 132 | "com.unity.modules.imageconversion": { 133 | "version": "1.0.0", 134 | "depth": 0, 135 | "source": "builtin", 136 | "dependencies": {} 137 | }, 138 | "com.unity.modules.imgui": { 139 | "version": "1.0.0", 140 | "depth": 0, 141 | "source": "builtin", 142 | "dependencies": {} 143 | }, 144 | "com.unity.modules.jsonserialize": { 145 | "version": "1.0.0", 146 | "depth": 0, 147 | "source": "builtin", 148 | "dependencies": {} 149 | }, 150 | "com.unity.modules.particlesystem": { 151 | "version": "1.0.0", 152 | "depth": 0, 153 | "source": "builtin", 154 | "dependencies": {} 155 | }, 156 | "com.unity.modules.physics": { 157 | "version": "1.0.0", 158 | "depth": 0, 159 | "source": "builtin", 160 | "dependencies": {} 161 | }, 162 | "com.unity.modules.physics2d": { 163 | "version": "1.0.0", 164 | "depth": 0, 165 | "source": "builtin", 166 | "dependencies": {} 167 | }, 168 | "com.unity.modules.screencapture": { 169 | "version": "1.0.0", 170 | "depth": 0, 171 | "source": "builtin", 172 | "dependencies": { 173 | "com.unity.modules.imageconversion": "1.0.0" 174 | } 175 | }, 176 | "com.unity.modules.subsystems": { 177 | "version": "1.0.0", 178 | "depth": 1, 179 | "source": "builtin", 180 | "dependencies": { 181 | "com.unity.modules.jsonserialize": "1.0.0" 182 | } 183 | }, 184 | "com.unity.modules.terrain": { 185 | "version": "1.0.0", 186 | "depth": 0, 187 | "source": "builtin", 188 | "dependencies": {} 189 | }, 190 | "com.unity.modules.terrainphysics": { 191 | "version": "1.0.0", 192 | "depth": 0, 193 | "source": "builtin", 194 | "dependencies": { 195 | "com.unity.modules.physics": "1.0.0", 196 | "com.unity.modules.terrain": "1.0.0" 197 | } 198 | }, 199 | "com.unity.modules.tilemap": { 200 | "version": "1.0.0", 201 | "depth": 0, 202 | "source": "builtin", 203 | "dependencies": { 204 | "com.unity.modules.physics2d": "1.0.0" 205 | } 206 | }, 207 | "com.unity.modules.ui": { 208 | "version": "1.0.0", 209 | "depth": 0, 210 | "source": "builtin", 211 | "dependencies": {} 212 | }, 213 | "com.unity.modules.uielements": { 214 | "version": "1.0.0", 215 | "depth": 0, 216 | "source": "builtin", 217 | "dependencies": { 218 | "com.unity.modules.ui": "1.0.0", 219 | "com.unity.modules.imgui": "1.0.0", 220 | "com.unity.modules.jsonserialize": "1.0.0" 221 | } 222 | }, 223 | "com.unity.modules.umbra": { 224 | "version": "1.0.0", 225 | "depth": 0, 226 | "source": "builtin", 227 | "dependencies": {} 228 | }, 229 | "com.unity.modules.unityanalytics": { 230 | "version": "1.0.0", 231 | "depth": 0, 232 | "source": "builtin", 233 | "dependencies": { 234 | "com.unity.modules.unitywebrequest": "1.0.0", 235 | "com.unity.modules.jsonserialize": "1.0.0" 236 | } 237 | }, 238 | "com.unity.modules.unitywebrequest": { 239 | "version": "1.0.0", 240 | "depth": 0, 241 | "source": "builtin", 242 | "dependencies": {} 243 | }, 244 | "com.unity.modules.unitywebrequestassetbundle": { 245 | "version": "1.0.0", 246 | "depth": 0, 247 | "source": "builtin", 248 | "dependencies": { 249 | "com.unity.modules.assetbundle": "1.0.0", 250 | "com.unity.modules.unitywebrequest": "1.0.0" 251 | } 252 | }, 253 | "com.unity.modules.unitywebrequestaudio": { 254 | "version": "1.0.0", 255 | "depth": 0, 256 | "source": "builtin", 257 | "dependencies": { 258 | "com.unity.modules.unitywebrequest": "1.0.0", 259 | "com.unity.modules.audio": "1.0.0" 260 | } 261 | }, 262 | "com.unity.modules.unitywebrequesttexture": { 263 | "version": "1.0.0", 264 | "depth": 0, 265 | "source": "builtin", 266 | "dependencies": { 267 | "com.unity.modules.unitywebrequest": "1.0.0", 268 | "com.unity.modules.imageconversion": "1.0.0" 269 | } 270 | }, 271 | "com.unity.modules.unitywebrequestwww": { 272 | "version": "1.0.0", 273 | "depth": 0, 274 | "source": "builtin", 275 | "dependencies": { 276 | "com.unity.modules.unitywebrequest": "1.0.0", 277 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 278 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 279 | "com.unity.modules.audio": "1.0.0", 280 | "com.unity.modules.assetbundle": "1.0.0", 281 | "com.unity.modules.imageconversion": "1.0.0" 282 | } 283 | }, 284 | "com.unity.modules.vehicles": { 285 | "version": "1.0.0", 286 | "depth": 0, 287 | "source": "builtin", 288 | "dependencies": { 289 | "com.unity.modules.physics": "1.0.0" 290 | } 291 | }, 292 | "com.unity.modules.video": { 293 | "version": "1.0.0", 294 | "depth": 0, 295 | "source": "builtin", 296 | "dependencies": { 297 | "com.unity.modules.audio": "1.0.0", 298 | "com.unity.modules.ui": "1.0.0", 299 | "com.unity.modules.unitywebrequest": "1.0.0" 300 | } 301 | }, 302 | "com.unity.modules.vr": { 303 | "version": "1.0.0", 304 | "depth": 0, 305 | "source": "builtin", 306 | "dependencies": { 307 | "com.unity.modules.jsonserialize": "1.0.0", 308 | "com.unity.modules.physics": "1.0.0", 309 | "com.unity.modules.xr": "1.0.0" 310 | } 311 | }, 312 | "com.unity.modules.wind": { 313 | "version": "1.0.0", 314 | "depth": 0, 315 | "source": "builtin", 316 | "dependencies": {} 317 | }, 318 | "com.unity.modules.xr": { 319 | "version": "1.0.0", 320 | "depth": 0, 321 | "source": "builtin", 322 | "dependencies": { 323 | "com.unity.modules.physics": "1.0.0", 324 | "com.unity.modules.jsonserialize": "1.0.0", 325 | "com.unity.modules.subsystems": "1.0.0" 326 | } 327 | } 328 | } 329 | } 330 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 1 23 | m_ClothInterCollisionSettingsToggle: 0 24 | m_ContactPairsMode: 0 25 | m_BroadphaseType: 0 26 | m_WorldBounds: 27 | m_Center: {x: 0, y: 0, z: 0} 28 | m_Extent: {x: 250, y: 250, z: 250} 29 | m_WorldSubdivisions: 8 30 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 9 7 | m_ExternalVersionControlSupport: Hidden Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 1 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 40 | type: 0} 41 | m_CustomRenderPipeline: {fileID: 0} 42 | m_TransparencySortMode: 0 43 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 44 | m_DefaultRenderingPath: 1 45 | m_DefaultMobileRenderingPath: 1 46 | m_TierSettings: [] 47 | m_LightmapStripping: 0 48 | m_FogStripping: 0 49 | m_InstancingStripping: 0 50 | m_LightmapKeepPlain: 1 51 | m_LightmapKeepDirCombined: 1 52 | m_LightmapKeepDynamicPlain: 1 53 | m_LightmapKeepDynamicDirCombined: 1 54 | m_LightmapKeepShadowMask: 1 55 | m_LightmapKeepSubtractive: 1 56 | m_FogKeepLinear: 1 57 | m_FogKeepExp: 1 58 | m_FogKeepExp2: 1 59 | m_AlbedoSwatchInfos: [] 60 | m_LightsUseLinearIntensity: 0 61 | m_LightsUseColorTemperature: 0 62 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_ScopedRegistriesSettingsExpanded: 1 16 | oneTimeWarningShown: 0 17 | m_Registries: 18 | - m_Id: main 19 | m_Name: 20 | m_Url: https://packages.unity.com 21 | m_Scopes: [] 22 | m_IsDefault: 1 23 | m_UserSelectedRegistryName: 24 | m_UserAddingNewScopedRegistry: 0 25 | m_RegistryInfoDraft: 26 | m_ErrorMessage: 27 | m_Original: 28 | m_Id: 29 | m_Name: 30 | m_Url: 31 | m_Scopes: [] 32 | m_IsDefault: 0 33 | m_Modified: 0 34 | m_Name: 35 | m_Url: 36 | m_Scopes: 37 | - 38 | m_SelectedScopeIndex: 0 39 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 14 7 | productGUID: c339eb0e44894684a97c53e4413138b6 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | defaultScreenOrientation: 4 11 | targetDevice: 2 12 | useOnDemandResources: 0 13 | accelerometerFrequency: 60 14 | companyName: DefaultCompany 15 | productName: Nodegraph 16 | defaultCursor: {fileID: 0} 17 | cursorHotspot: {x: 0, y: 0} 18 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 19 | m_ShowUnitySplashScreen: 1 20 | m_ShowUnitySplashLogo: 1 21 | m_SplashScreenOverlayOpacity: 1 22 | m_SplashScreenAnimation: 1 23 | m_SplashScreenLogoStyle: 1 24 | m_SplashScreenDrawMode: 0 25 | m_SplashScreenBackgroundAnimationZoom: 1 26 | m_SplashScreenLogoAnimationZoom: 1 27 | m_SplashScreenBackgroundLandscapeAspect: 1 28 | m_SplashScreenBackgroundPortraitAspect: 1 29 | m_SplashScreenBackgroundLandscapeUvs: 30 | serializedVersion: 2 31 | x: 0 32 | y: 0 33 | width: 1 34 | height: 1 35 | m_SplashScreenBackgroundPortraitUvs: 36 | serializedVersion: 2 37 | x: 0 38 | y: 0 39 | width: 1 40 | height: 1 41 | m_SplashScreenLogos: [] 42 | m_VirtualRealitySplashScreen: {fileID: 0} 43 | m_HolographicTrackingLossScreen: {fileID: 0} 44 | defaultScreenWidth: 1024 45 | defaultScreenHeight: 768 46 | defaultScreenWidthWeb: 960 47 | defaultScreenHeightWeb: 600 48 | m_StereoRenderingPath: 0 49 | m_ActiveColorSpace: 0 50 | m_MTRendering: 1 51 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 52 | iosShowActivityIndicatorOnLoading: -1 53 | androidShowActivityIndicatorOnLoading: -1 54 | tizenShowActivityIndicatorOnLoading: -1 55 | iosAppInBackgroundBehavior: 0 56 | displayResolutionDialog: 1 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidBlitType: 0 67 | defaultIsFullScreen: 1 68 | defaultIsNativeResolution: 1 69 | macRetinaSupport: 1 70 | runInBackground: 0 71 | captureSingleScreen: 0 72 | muteOtherAudioSources: 0 73 | Prepare IOS For Recording: 0 74 | Force IOS Speakers When Recording: 0 75 | deferSystemGesturesMode: 0 76 | hideHomeButton: 0 77 | submitAnalytics: 1 78 | usePlayerLog: 1 79 | bakeCollisionMeshes: 0 80 | forceSingleInstance: 0 81 | resizableWindow: 0 82 | useMacAppStoreValidation: 0 83 | macAppStoreCategory: public.app-category.games 84 | gpuSkinning: 0 85 | graphicsJobs: 0 86 | xboxPIXTextureCapture: 0 87 | xboxEnableAvatar: 0 88 | xboxEnableKinect: 0 89 | xboxEnableKinectAutoTracking: 0 90 | xboxEnableFitness: 0 91 | visibleInBackground: 1 92 | allowFullscreenSwitch: 1 93 | graphicsJobMode: 0 94 | macFullscreenMode: 2 95 | d3d11FullscreenMode: 1 96 | xboxSpeechDB: 0 97 | xboxEnableHeadOrientation: 0 98 | xboxEnableGuest: 0 99 | xboxEnablePIXSampling: 0 100 | metalFramebufferOnly: 0 101 | n3dsDisableStereoscopicView: 0 102 | n3dsEnableSharedListOpt: 1 103 | n3dsEnableVSync: 0 104 | xboxOneResolution: 0 105 | xboxOneSResolution: 0 106 | xboxOneXResolution: 3 107 | xboxOneMonoLoggingLevel: 0 108 | xboxOneLoggingLevel: 1 109 | xboxOneDisableEsram: 0 110 | xboxOnePresentImmediateThreshold: 0 111 | videoMemoryForVertexBuffers: 0 112 | psp2PowerMode: 0 113 | psp2AcquireBGM: 1 114 | wiiUTVResolution: 0 115 | wiiUGamePadMSAA: 1 116 | wiiUSupportsNunchuk: 0 117 | wiiUSupportsClassicController: 0 118 | wiiUSupportsBalanceBoard: 0 119 | wiiUSupportsMotionPlus: 0 120 | wiiUSupportsProController: 0 121 | wiiUAllowScreenCapture: 1 122 | wiiUControllerCount: 0 123 | m_SupportedAspectRatios: 124 | 4:3: 1 125 | 5:4: 1 126 | 16:10: 1 127 | 16:9: 1 128 | Others: 1 129 | bundleVersion: 1.0 130 | preloadedAssets: [] 131 | metroInputSource: 0 132 | wsaTransparentSwapchain: 0 133 | m_HolographicPauseOnTrackingLoss: 1 134 | xboxOneDisableKinectGpuReservation: 0 135 | xboxOneEnable7thCore: 0 136 | vrSettings: 137 | cardboard: 138 | depthFormat: 0 139 | enableTransitionView: 0 140 | daydream: 141 | depthFormat: 0 142 | useSustainedPerformanceMode: 0 143 | enableVideoLayer: 0 144 | useProtectedVideoMemory: 0 145 | minimumSupportedHeadTracking: 0 146 | maximumSupportedHeadTracking: 1 147 | hololens: 148 | depthFormat: 1 149 | depthBufferSharingEnabled: 0 150 | oculus: 151 | sharedDepthBuffer: 0 152 | dashSupport: 0 153 | protectGraphicsMemory: 0 154 | useHDRDisplay: 0 155 | m_ColorGamuts: 00000000 156 | targetPixelDensity: 30 157 | resolutionScalingMode: 0 158 | androidSupportedAspectRatio: 1 159 | androidMaxAspectRatio: 2.1 160 | applicationIdentifier: {} 161 | buildNumber: {} 162 | AndroidBundleVersionCode: 1 163 | AndroidMinSdkVersion: 16 164 | AndroidTargetSdkVersion: 0 165 | AndroidPreferredInstallLocation: 1 166 | aotOptions: 167 | stripEngineCode: 1 168 | iPhoneStrippingLevel: 0 169 | iPhoneScriptCallOptimization: 0 170 | ForceInternetPermission: 0 171 | ForceSDCardPermission: 0 172 | CreateWallpaper: 0 173 | APKExpansionFiles: 0 174 | keepLoadedShadersAlive: 0 175 | StripUnusedMeshComponents: 0 176 | VertexChannelCompressionMask: 177 | serializedVersion: 2 178 | m_Bits: 238 179 | iPhoneSdkVersion: 988 180 | iOSTargetOSVersionString: 7.0 181 | tvOSSdkVersion: 0 182 | tvOSRequireExtendedGameController: 0 183 | tvOSTargetOSVersionString: 9.0 184 | uIPrerenderedIcon: 0 185 | uIRequiresPersistentWiFi: 0 186 | uIRequiresFullScreen: 1 187 | uIStatusBarHidden: 1 188 | uIExitOnSuspend: 0 189 | uIStatusBarStyle: 0 190 | iPhoneSplashScreen: {fileID: 0} 191 | iPhoneHighResSplashScreen: {fileID: 0} 192 | iPhoneTallHighResSplashScreen: {fileID: 0} 193 | iPhone47inSplashScreen: {fileID: 0} 194 | iPhone55inPortraitSplashScreen: {fileID: 0} 195 | iPhone55inLandscapeSplashScreen: {fileID: 0} 196 | iPhone58inPortraitSplashScreen: {fileID: 0} 197 | iPhone58inLandscapeSplashScreen: {fileID: 0} 198 | iPadPortraitSplashScreen: {fileID: 0} 199 | iPadHighResPortraitSplashScreen: {fileID: 0} 200 | iPadLandscapeSplashScreen: {fileID: 0} 201 | iPadHighResLandscapeSplashScreen: {fileID: 0} 202 | appleTVSplashScreen: {fileID: 0} 203 | appleTVSplashScreen2x: {fileID: 0} 204 | tvOSSmallIconLayers: [] 205 | tvOSSmallIconLayers2x: [] 206 | tvOSLargeIconLayers: [] 207 | tvOSTopShelfImageLayers: [] 208 | tvOSTopShelfImageLayers2x: [] 209 | tvOSTopShelfImageWideLayers: [] 210 | tvOSTopShelfImageWideLayers2x: [] 211 | iOSLaunchScreenType: 0 212 | iOSLaunchScreenPortrait: {fileID: 0} 213 | iOSLaunchScreenLandscape: {fileID: 0} 214 | iOSLaunchScreenBackgroundColor: 215 | serializedVersion: 2 216 | rgba: 0 217 | iOSLaunchScreenFillPct: 100 218 | iOSLaunchScreenSize: 100 219 | iOSLaunchScreenCustomXibPath: 220 | iOSLaunchScreeniPadType: 0 221 | iOSLaunchScreeniPadImage: {fileID: 0} 222 | iOSLaunchScreeniPadBackgroundColor: 223 | serializedVersion: 2 224 | rgba: 0 225 | iOSLaunchScreeniPadFillPct: 100 226 | iOSLaunchScreeniPadSize: 100 227 | iOSLaunchScreeniPadCustomXibPath: 228 | iOSUseLaunchScreenStoryboard: 0 229 | iOSLaunchScreenCustomStoryboardPath: 230 | iOSDeviceRequirements: [] 231 | iOSURLSchemes: [] 232 | iOSBackgroundModes: 0 233 | iOSMetalForceHardShadows: 0 234 | metalEditorSupport: 1 235 | metalAPIValidation: 1 236 | iOSRenderExtraFrameOnPause: 0 237 | appleDeveloperTeamID: 238 | iOSManualSigningProvisioningProfileID: 239 | tvOSManualSigningProvisioningProfileID: 240 | appleEnableAutomaticSigning: 0 241 | clonedFromGUID: 00000000000000000000000000000000 242 | AndroidTargetDevice: 0 243 | AndroidSplashScreenScale: 0 244 | androidSplashScreen: {fileID: 0} 245 | AndroidKeystoreName: 246 | AndroidKeyaliasName: 247 | AndroidTVCompatibility: 1 248 | AndroidIsGame: 1 249 | AndroidEnableTango: 0 250 | androidEnableBanner: 1 251 | androidUseLowAccuracyLocation: 0 252 | m_AndroidBanners: 253 | - width: 320 254 | height: 180 255 | banner: {fileID: 0} 256 | androidGamepadSupportLevel: 0 257 | resolutionDialogBanner: {fileID: 0} 258 | m_BuildTargetIcons: [] 259 | m_BuildTargetBatching: [] 260 | m_BuildTargetGraphicsAPIs: [] 261 | m_BuildTargetVRSettings: [] 262 | m_BuildTargetEnableVuforiaSettings: [] 263 | openGLRequireES31: 0 264 | openGLRequireES31AEP: 0 265 | m_TemplateCustomTags: {} 266 | mobileMTRendering: 267 | Android: 1 268 | iPhone: 1 269 | tvOS: 1 270 | m_BuildTargetGroupLightmapEncodingQuality: [] 271 | wiiUTitleID: 0005000011000000 272 | wiiUGroupID: 00010000 273 | wiiUCommonSaveSize: 4096 274 | wiiUAccountSaveSize: 2048 275 | wiiUOlvAccessKey: 0 276 | wiiUTinCode: 0 277 | wiiUJoinGameId: 0 278 | wiiUJoinGameModeMask: 0000000000000000 279 | wiiUCommonBossSize: 0 280 | wiiUAccountBossSize: 0 281 | wiiUAddOnUniqueIDs: [] 282 | wiiUMainThreadStackSize: 3072 283 | wiiULoaderThreadStackSize: 1024 284 | wiiUSystemHeapSize: 128 285 | wiiUTVStartupScreen: {fileID: 0} 286 | wiiUGamePadStartupScreen: {fileID: 0} 287 | wiiUDrcBufferDisabled: 0 288 | wiiUProfilerLibPath: 289 | playModeTestRunnerEnabled: 0 290 | actionOnDotNetUnhandledException: 1 291 | enableInternalProfiler: 0 292 | logObjCUncaughtExceptions: 1 293 | enableCrashReportAPI: 0 294 | cameraUsageDescription: 295 | locationUsageDescription: 296 | microphoneUsageDescription: 297 | switchNetLibKey: 298 | switchSocketMemoryPoolSize: 6144 299 | switchSocketAllocatorPoolSize: 128 300 | switchSocketConcurrencyLimit: 14 301 | switchScreenResolutionBehavior: 2 302 | switchUseCPUProfiler: 0 303 | switchApplicationID: 0x01004b9000490000 304 | switchNSODependencies: 305 | switchTitleNames_0: 306 | switchTitleNames_1: 307 | switchTitleNames_2: 308 | switchTitleNames_3: 309 | switchTitleNames_4: 310 | switchTitleNames_5: 311 | switchTitleNames_6: 312 | switchTitleNames_7: 313 | switchTitleNames_8: 314 | switchTitleNames_9: 315 | switchTitleNames_10: 316 | switchTitleNames_11: 317 | switchTitleNames_12: 318 | switchTitleNames_13: 319 | switchTitleNames_14: 320 | switchPublisherNames_0: 321 | switchPublisherNames_1: 322 | switchPublisherNames_2: 323 | switchPublisherNames_3: 324 | switchPublisherNames_4: 325 | switchPublisherNames_5: 326 | switchPublisherNames_6: 327 | switchPublisherNames_7: 328 | switchPublisherNames_8: 329 | switchPublisherNames_9: 330 | switchPublisherNames_10: 331 | switchPublisherNames_11: 332 | switchPublisherNames_12: 333 | switchPublisherNames_13: 334 | switchPublisherNames_14: 335 | switchIcons_0: {fileID: 0} 336 | switchIcons_1: {fileID: 0} 337 | switchIcons_2: {fileID: 0} 338 | switchIcons_3: {fileID: 0} 339 | switchIcons_4: {fileID: 0} 340 | switchIcons_5: {fileID: 0} 341 | switchIcons_6: {fileID: 0} 342 | switchIcons_7: {fileID: 0} 343 | switchIcons_8: {fileID: 0} 344 | switchIcons_9: {fileID: 0} 345 | switchIcons_10: {fileID: 0} 346 | switchIcons_11: {fileID: 0} 347 | switchIcons_12: {fileID: 0} 348 | switchIcons_13: {fileID: 0} 349 | switchIcons_14: {fileID: 0} 350 | switchSmallIcons_0: {fileID: 0} 351 | switchSmallIcons_1: {fileID: 0} 352 | switchSmallIcons_2: {fileID: 0} 353 | switchSmallIcons_3: {fileID: 0} 354 | switchSmallIcons_4: {fileID: 0} 355 | switchSmallIcons_5: {fileID: 0} 356 | switchSmallIcons_6: {fileID: 0} 357 | switchSmallIcons_7: {fileID: 0} 358 | switchSmallIcons_8: {fileID: 0} 359 | switchSmallIcons_9: {fileID: 0} 360 | switchSmallIcons_10: {fileID: 0} 361 | switchSmallIcons_11: {fileID: 0} 362 | switchSmallIcons_12: {fileID: 0} 363 | switchSmallIcons_13: {fileID: 0} 364 | switchSmallIcons_14: {fileID: 0} 365 | switchManualHTML: 366 | switchAccessibleURLs: 367 | switchLegalInformation: 368 | switchMainThreadStackSize: 1048576 369 | switchPresenceGroupId: 370 | switchLogoHandling: 0 371 | switchReleaseVersion: 0 372 | switchDisplayVersion: 1.0.0 373 | switchStartupUserAccount: 0 374 | switchTouchScreenUsage: 0 375 | switchSupportedLanguagesMask: 0 376 | switchLogoType: 0 377 | switchApplicationErrorCodeCategory: 378 | switchUserAccountSaveDataSize: 0 379 | switchUserAccountSaveDataJournalSize: 0 380 | switchApplicationAttribute: 0 381 | switchCardSpecSize: -1 382 | switchCardSpecClock: -1 383 | switchRatingsMask: 0 384 | switchRatingsInt_0: 0 385 | switchRatingsInt_1: 0 386 | switchRatingsInt_2: 0 387 | switchRatingsInt_3: 0 388 | switchRatingsInt_4: 0 389 | switchRatingsInt_5: 0 390 | switchRatingsInt_6: 0 391 | switchRatingsInt_7: 0 392 | switchRatingsInt_8: 0 393 | switchRatingsInt_9: 0 394 | switchRatingsInt_10: 0 395 | switchRatingsInt_11: 0 396 | switchLocalCommunicationIds_0: 397 | switchLocalCommunicationIds_1: 398 | switchLocalCommunicationIds_2: 399 | switchLocalCommunicationIds_3: 400 | switchLocalCommunicationIds_4: 401 | switchLocalCommunicationIds_5: 402 | switchLocalCommunicationIds_6: 403 | switchLocalCommunicationIds_7: 404 | switchParentalControl: 0 405 | switchAllowsScreenshot: 1 406 | switchAllowsVideoCapturing: 1 407 | switchAllowsRuntimeAddOnContentInstall: 0 408 | switchDataLossConfirmation: 0 409 | switchSupportedNpadStyles: 3 410 | switchSocketConfigEnabled: 0 411 | switchTcpInitialSendBufferSize: 32 412 | switchTcpInitialReceiveBufferSize: 64 413 | switchTcpAutoSendBufferSizeMax: 256 414 | switchTcpAutoReceiveBufferSizeMax: 256 415 | switchUdpSendBufferSize: 9 416 | switchUdpReceiveBufferSize: 42 417 | switchSocketBufferEfficiency: 4 418 | switchSocketInitializeEnabled: 1 419 | switchNetworkInterfaceManagerInitializeEnabled: 1 420 | switchPlayerConnectionEnabled: 1 421 | ps4NPAgeRating: 12 422 | ps4NPTitleSecret: 423 | ps4NPTrophyPackPath: 424 | ps4ParentalLevel: 11 425 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 426 | ps4Category: 0 427 | ps4MasterVersion: 01.00 428 | ps4AppVersion: 01.00 429 | ps4AppType: 0 430 | ps4ParamSfxPath: 431 | ps4VideoOutPixelFormat: 0 432 | ps4VideoOutInitialWidth: 1920 433 | ps4VideoOutBaseModeInitialWidth: 1920 434 | ps4VideoOutReprojectionRate: 60 435 | ps4PronunciationXMLPath: 436 | ps4PronunciationSIGPath: 437 | ps4BackgroundImagePath: 438 | ps4StartupImagePath: 439 | ps4StartupImagesFolder: 440 | ps4IconImagesFolder: 441 | ps4SaveDataImagePath: 442 | ps4SdkOverride: 443 | ps4BGMPath: 444 | ps4ShareFilePath: 445 | ps4ShareOverlayImagePath: 446 | ps4PrivacyGuardImagePath: 447 | ps4NPtitleDatPath: 448 | ps4RemotePlayKeyAssignment: -1 449 | ps4RemotePlayKeyMappingDir: 450 | ps4PlayTogetherPlayerCount: 0 451 | ps4EnterButtonAssignment: 1 452 | ps4ApplicationParam1: 0 453 | ps4ApplicationParam2: 0 454 | ps4ApplicationParam3: 0 455 | ps4ApplicationParam4: 0 456 | ps4DownloadDataSize: 0 457 | ps4GarlicHeapSize: 2048 458 | ps4ProGarlicHeapSize: 2560 459 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 460 | ps4pnSessions: 1 461 | ps4pnPresence: 1 462 | ps4pnFriends: 1 463 | ps4pnGameCustomData: 1 464 | playerPrefsSupport: 0 465 | restrictedAudioUsageRights: 0 466 | ps4UseResolutionFallback: 0 467 | ps4ReprojectionSupport: 0 468 | ps4UseAudio3dBackend: 0 469 | ps4SocialScreenEnabled: 0 470 | ps4ScriptOptimizationLevel: 0 471 | ps4Audio3dVirtualSpeakerCount: 14 472 | ps4attribCpuUsage: 0 473 | ps4PatchPkgPath: 474 | ps4PatchLatestPkgPath: 475 | ps4PatchChangeinfoPath: 476 | ps4PatchDayOne: 0 477 | ps4attribUserManagement: 0 478 | ps4attribMoveSupport: 0 479 | ps4attrib3DSupport: 0 480 | ps4attribShareSupport: 0 481 | ps4attribExclusiveVR: 0 482 | ps4disableAutoHideSplash: 0 483 | ps4videoRecordingFeaturesUsed: 0 484 | ps4contentSearchFeaturesUsed: 0 485 | ps4attribEyeToEyeDistanceSettingVR: 0 486 | ps4IncludedModules: [] 487 | monoEnv: 488 | psp2Splashimage: {fileID: 0} 489 | psp2NPTrophyPackPath: 490 | psp2NPSupportGBMorGJP: 0 491 | psp2NPAgeRating: 12 492 | psp2NPTitleDatPath: 493 | psp2NPCommsID: 494 | psp2NPCommunicationsID: 495 | psp2NPCommsPassphrase: 496 | psp2NPCommsSig: 497 | psp2ParamSfxPath: 498 | psp2ManualPath: 499 | psp2LiveAreaGatePath: 500 | psp2LiveAreaBackroundPath: 501 | psp2LiveAreaPath: 502 | psp2LiveAreaTrialPath: 503 | psp2PatchChangeInfoPath: 504 | psp2PatchOriginalPackage: 505 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui 506 | psp2KeystoneFile: 507 | psp2MemoryExpansionMode: 0 508 | psp2DRMType: 0 509 | psp2StorageType: 0 510 | psp2MediaCapacity: 0 511 | psp2DLCConfigPath: 512 | psp2ThumbnailPath: 513 | psp2BackgroundPath: 514 | psp2SoundPath: 515 | psp2TrophyCommId: 516 | psp2TrophyPackagePath: 517 | psp2PackagedResourcesPath: 518 | psp2SaveDataQuota: 10240 519 | psp2ParentalLevel: 1 520 | psp2ShortTitle: Not Set 521 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF 522 | psp2Category: 0 523 | psp2MasterVersion: 01.00 524 | psp2AppVersion: 01.00 525 | psp2TVBootMode: 0 526 | psp2EnterButtonAssignment: 2 527 | psp2TVDisableEmu: 0 528 | psp2AllowTwitterDialog: 1 529 | psp2Upgradable: 0 530 | psp2HealthWarning: 0 531 | psp2UseLibLocation: 0 532 | psp2InfoBarOnStartup: 0 533 | psp2InfoBarColor: 0 534 | psp2ScriptOptimizationLevel: 0 535 | psmSplashimage: {fileID: 0} 536 | splashScreenBackgroundSourceLandscape: {fileID: 0} 537 | splashScreenBackgroundSourcePortrait: {fileID: 0} 538 | spritePackerPolicy: 539 | webGLMemorySize: 256 540 | webGLExceptionSupport: 1 541 | webGLNameFilesAsHashes: 0 542 | webGLDataCaching: 0 543 | webGLDebugSymbols: 0 544 | webGLEmscriptenArgs: 545 | webGLModulesDirectory: 546 | webGLTemplate: APPLICATION:Default 547 | webGLAnalyzeBuildSize: 0 548 | webGLUseEmbeddedResources: 0 549 | webGLUseWasm: 0 550 | webGLCompressionFormat: 1 551 | scriptingDefineSymbols: {} 552 | platformArchitecture: {} 553 | scriptingBackend: {} 554 | incrementalIl2cppBuild: {} 555 | additionalIl2CppArgs: 556 | scriptingRuntimeVersion: 0 557 | apiCompatibilityLevelPerPlatform: {} 558 | m_RenderingPath: 1 559 | m_MobileRenderingPath: 1 560 | metroPackageName: Nodegraph 561 | metroPackageVersion: 562 | metroCertificatePath: 563 | metroCertificatePassword: 564 | metroCertificateSubject: 565 | metroCertificateIssuer: 566 | metroCertificateNotAfter: 0000000000000000 567 | metroApplicationDescription: Nodegraph 568 | wsaImages: {} 569 | metroTileShortName: 570 | metroCommandLineArgsFile: 571 | metroTileShowName: 0 572 | metroMediumTileShowName: 0 573 | metroLargeTileShowName: 0 574 | metroWideTileShowName: 0 575 | metroDefaultTileSize: 1 576 | metroTileForegroundText: 2 577 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 578 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 579 | a: 1} 580 | metroSplashScreenUseBackgroundColor: 0 581 | platformCapabilities: {} 582 | metroFTAName: 583 | metroFTAFileTypes: [] 584 | metroProtocolName: 585 | metroCompilationOverrides: 1 586 | tizenProductDescription: 587 | tizenProductURL: 588 | tizenSigningProfileName: 589 | tizenGPSPermissions: 0 590 | tizenMicrophonePermissions: 0 591 | tizenDeploymentTarget: 592 | tizenDeploymentTargetType: -1 593 | tizenMinOSVersion: 1 594 | n3dsUseExtSaveData: 0 595 | n3dsCompressStaticMem: 1 596 | n3dsExtSaveDataNumber: 0x12345 597 | n3dsStackSize: 131072 598 | n3dsTargetPlatform: 2 599 | n3dsRegion: 7 600 | n3dsMediaSize: 0 601 | n3dsLogoStyle: 3 602 | n3dsTitle: GameName 603 | n3dsProductCode: 604 | n3dsApplicationId: 0xFF3FF 605 | XboxOneProductId: 606 | XboxOneUpdateKey: 607 | XboxOneSandboxId: 608 | XboxOneContentId: 609 | XboxOneTitleId: 610 | XboxOneSCId: 611 | XboxOneGameOsOverridePath: 612 | XboxOnePackagingOverridePath: 613 | XboxOneAppManifestOverridePath: 614 | XboxOnePackageEncryption: 0 615 | XboxOnePackageUpdateGranularity: 2 616 | XboxOneDescription: 617 | XboxOneLanguage: 618 | - enus 619 | XboxOneCapability: [] 620 | XboxOneGameRating: {} 621 | XboxOneIsContentPackage: 0 622 | XboxOneEnableGPUVariability: 0 623 | XboxOneSockets: {} 624 | XboxOneSplashScreen: {fileID: 0} 625 | XboxOneAllowedProductIds: [] 626 | XboxOnePersistentLocalStorageSize: 0 627 | XboxOneXTitleMemory: 8 628 | xboxOneScriptCompiler: 0 629 | vrEditorSettings: 630 | daydream: 631 | daydreamIconForeground: {fileID: 0} 632 | daydreamIconBackground: {fileID: 0} 633 | cloudServicesEnabled: {} 634 | facebookSdkVersion: 7.9.4 635 | apiCompatibilityLevel: 2 636 | cloudProjectId: 637 | projectName: 638 | organizationId: 639 | cloudEnabled: 0 640 | enableNativePlatformBackendsForNewInputSystem: 0 641 | disableOldInputManagerSupport: 0 642 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2022.3.59f1 2 | m_EditorVersionWithRevision: 2022.3.59f1 (630718f645a5) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 4 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 4 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 1 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 4 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 0 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 4 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 70 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 2 136 | antiAliasing: 2 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 4 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 2 164 | antiAliasing: 2 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 4 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSM: 5 183 | PSP2: 2 184 | Standalone: 5 185 | Tizen: 2 186 | WebGL: 3 187 | WiiU: 5 188 | Windows Store Apps: 5 189 | XboxOne: 5 190 | iPhone: 2 191 | tvOS: 2 192 | -------------------------------------------------------------------------------- /ProjectSettings/SceneTemplateSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "templatePinStates": [], 3 | "dependencyTypeInfos": [ 4 | { 5 | "userAdded": false, 6 | "type": "UnityEngine.AnimationClip", 7 | "defaultInstantiationMode": 0 8 | }, 9 | { 10 | "userAdded": false, 11 | "type": "UnityEditor.Animations.AnimatorController", 12 | "defaultInstantiationMode": 0 13 | }, 14 | { 15 | "userAdded": false, 16 | "type": "UnityEngine.AnimatorOverrideController", 17 | "defaultInstantiationMode": 0 18 | }, 19 | { 20 | "userAdded": false, 21 | "type": "UnityEditor.Audio.AudioMixerController", 22 | "defaultInstantiationMode": 0 23 | }, 24 | { 25 | "userAdded": false, 26 | "type": "UnityEngine.ComputeShader", 27 | "defaultInstantiationMode": 1 28 | }, 29 | { 30 | "userAdded": false, 31 | "type": "UnityEngine.Cubemap", 32 | "defaultInstantiationMode": 0 33 | }, 34 | { 35 | "userAdded": false, 36 | "type": "UnityEngine.GameObject", 37 | "defaultInstantiationMode": 0 38 | }, 39 | { 40 | "userAdded": false, 41 | "type": "UnityEditor.LightingDataAsset", 42 | "defaultInstantiationMode": 0 43 | }, 44 | { 45 | "userAdded": false, 46 | "type": "UnityEngine.LightingSettings", 47 | "defaultInstantiationMode": 0 48 | }, 49 | { 50 | "userAdded": false, 51 | "type": "UnityEngine.Material", 52 | "defaultInstantiationMode": 0 53 | }, 54 | { 55 | "userAdded": false, 56 | "type": "UnityEditor.MonoScript", 57 | "defaultInstantiationMode": 1 58 | }, 59 | { 60 | "userAdded": false, 61 | "type": "UnityEngine.PhysicMaterial", 62 | "defaultInstantiationMode": 0 63 | }, 64 | { 65 | "userAdded": false, 66 | "type": "UnityEngine.PhysicsMaterial2D", 67 | "defaultInstantiationMode": 0 68 | }, 69 | { 70 | "userAdded": false, 71 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", 72 | "defaultInstantiationMode": 0 73 | }, 74 | { 75 | "userAdded": false, 76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", 77 | "defaultInstantiationMode": 0 78 | }, 79 | { 80 | "userAdded": false, 81 | "type": "UnityEngine.Rendering.VolumeProfile", 82 | "defaultInstantiationMode": 0 83 | }, 84 | { 85 | "userAdded": false, 86 | "type": "UnityEditor.SceneAsset", 87 | "defaultInstantiationMode": 1 88 | }, 89 | { 90 | "userAdded": false, 91 | "type": "UnityEngine.Shader", 92 | "defaultInstantiationMode": 1 93 | }, 94 | { 95 | "userAdded": false, 96 | "type": "UnityEngine.ShaderVariantCollection", 97 | "defaultInstantiationMode": 1 98 | }, 99 | { 100 | "userAdded": false, 101 | "type": "UnityEngine.Texture", 102 | "defaultInstantiationMode": 0 103 | }, 104 | { 105 | "userAdded": false, 106 | "type": "UnityEngine.Texture2D", 107 | "defaultInstantiationMode": 0 108 | }, 109 | { 110 | "userAdded": false, 111 | "type": "UnityEngine.Timeline.TimelineAsset", 112 | "defaultInstantiationMode": 0 113 | } 114 | ], 115 | "defaultDependencyTypeInfo": { 116 | "userAdded": false, 117 | "type": "", 118 | "defaultInstantiationMode": 1 119 | }, 120 | "newSceneOverride": 0 121 | } -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: 7 | - Movable 8 | - Obstacle 9 | layers: 10 | - Default 11 | - TransparentFX 12 | - Ignore Raycast 13 | - 14 | - Water 15 | - UI 16 | - 17 | - 18 | - Solid 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | - 41 | - 42 | m_SortingLayers: 43 | - name: Default 44 | uniqueID: 0 45 | locked: 0 46 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate 14 | m_Enabled: 0 15 | m_CaptureEditorExceptions: 1 16 | UnityPurchasingSettings: 17 | m_Enabled: 0 18 | m_TestMode: 0 19 | UnityAnalyticsSettings: 20 | m_Enabled: 0 21 | m_InitializeOnStartup: 1 22 | m_TestMode: 0 23 | m_TestEventUrl: 24 | m_TestConfigUrl: 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Waypoints 2 | 3 | A simple 3D waypoint system and pathfinding tool with graphs. 4 | 5 | ## Requirements 6 | 7 | Unity 2020.3+ 8 | 9 | ## How to use 10 | 11 | 1. Clone the repository. 12 | 2. Go to the root project folder. 13 | 3. Copy the `Waypoints` folder inside `Packages` folder into the `Packages` folder of your own project. 14 | 4. The package must appear in the `Package Manager` window in your Editor. 15 | 4. (Optional) If your editor doesn't recognize the package, edit the `manifest.json` of your project and add the following line into the dependencies list: 16 | 17 | ```"com.epiplon.waypoints": "1.1.0"``` 18 | 19 | 5. Now you should be able to use the `Waypoint Graph` component. 20 | 6. This repository provides a sample scene with a simple waypoint graph and pathfinding example running. 21 | 7. If you have any trouble, you can go to the `Discussions` tab of this repository and ask. This project isn't being developed but I can respond to simple questions. 22 | 23 | 24 | ## The MIT License 25 | 26 | Copyright 2018-2023 Vinicius Castanheira 27 | 28 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 29 | 30 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 31 | 32 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 33 | -------------------------------------------------------------------------------- /UserSettings/EditorUserSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!162 &1 4 | EditorUserSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ConfigSettings: 8 | RecentlyUsedSceneGuid-0: 9 | value: 5a08575f5207595a0f5d59741173094444164f7d7d2a23317c7a4465bbe1646d 10 | flags: 0 11 | RecentlyUsedScenePath-0: 12 | value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d 13 | flags: 0 14 | vcSharedLogLevel: 15 | value: 0d5e400f0650 16 | flags: 0 17 | m_VCAutomaticAdd: 1 18 | m_VCDebugCom: 0 19 | m_VCDebugCmd: 0 20 | m_VCDebugOut: 0 21 | m_SemanticMergeMode: 2 22 | m_DesiredImportWorkerCount: 3 23 | m_StandbyImportWorkerCount: 2 24 | m_IdleImportWorkerShutdownDelay: 60000 25 | m_VCShowFailedCheckout: 1 26 | m_VCOverwriteFailedCheckoutAssets: 1 27 | m_VCProjectOverlayIcons: 1 28 | m_VCHierarchyOverlayIcons: 1 29 | m_VCOtherOverlayIcons: 1 30 | m_VCAllowAsyncUpdate: 1 31 | m_VCScanLocalPackagesOnConnect: 1 32 | m_ArtifactGarbageCollection: 1 33 | -------------------------------------------------------------------------------- /UserSettings/Search.index: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Assets", 3 | "roots": ["Assets"], 4 | "includes": [], 5 | "excludes": ["Assets/Temp/", "Assets/External/"], 6 | "options": { 7 | "types": true, 8 | "properties": true, 9 | "extended": false, 10 | "dependencies": false 11 | }, 12 | "baseScore": 999 13 | } -------------------------------------------------------------------------------- /UserSettings/Search.settings: -------------------------------------------------------------------------------- 1 | trackSelection = true 2 | refreshSearchWindowsInPlayMode = false 3 | pickerAdvancedUI = false 4 | fetchPreview = true 5 | defaultFlags = 0 6 | keepOpen = true 7 | queryFolder = "Assets" 8 | onBoardingDoNotAskAgain = true 9 | showPackageIndexes = false 10 | showStatusBar = false 11 | scopes = { 12 | } 13 | providers = { 14 | asset = { 15 | active = true 16 | priority = 25 17 | defaultAction = null 18 | } 19 | scene = { 20 | active = true 21 | priority = 50 22 | defaultAction = null 23 | } 24 | adb = { 25 | active = false 26 | priority = 2500 27 | defaultAction = null 28 | } 29 | find = { 30 | active = true 31 | priority = 25 32 | defaultAction = null 33 | } 34 | packages = { 35 | active = false 36 | priority = 90 37 | defaultAction = null 38 | } 39 | store = { 40 | active = false 41 | priority = 100 42 | defaultAction = null 43 | } 44 | performance = { 45 | active = false 46 | priority = 100 47 | defaultAction = null 48 | } 49 | profilermarkers = { 50 | active = false 51 | priority = 100 52 | defaultAction = null 53 | } 54 | log = { 55 | active = false 56 | priority = 210 57 | defaultAction = null 58 | } 59 | } 60 | objectSelectors = { 61 | } 62 | recentSearches = [ 63 | ] 64 | searchItemFavorites = [ 65 | ] 66 | savedSearchesSortOrder = 0 67 | showSavedSearchPanel = false 68 | hideTabs = false 69 | expandedQueries = [ 70 | ] 71 | queryBuilder = true 72 | ignoredProperties = "id;name;classname;imagecontentshash" 73 | helperWidgetCurrentArea = "all" 74 | disabledIndexers = "" 75 | minIndexVariations = 2 76 | findProviderIndexHelper = true --------------------------------------------------------------------------------