diff --git a/Pathfinding Visualizer/Assets/Scenes/MainScene.unity b/Pathfinding Visualizer/Assets/Scenes/MainScene.unity index 2be1b50..580cecd 100644 --- a/Pathfinding Visualizer/Assets/Scenes/MainScene.unity +++ b/Pathfinding Visualizer/Assets/Scenes/MainScene.unity @@ -123,7 +123,7 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &480666364 +--- !u!1 &45376067 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -131,42 +131,95 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 480666365} - - component: {fileID: 480666366} + - component: {fileID: 45376070} + - component: {fileID: 45376069} + - component: {fileID: 45376068} m_Layer: 0 - m_Name: Testing + m_Name: MeshTesting m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &480666365 -Transform: +--- !u!33 &45376068 +MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 480666364} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &480666366 + m_GameObject: {fileID: 45376067} + m_Mesh: {fileID: 0} +--- !u!114 &45376069 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 480666364} + m_GameObject: {fileID: 45376067} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 8fb3c49ddde2d804487b586bfbf43cc3, type: 3} + m_Script: {fileID: 11500000, guid: 2f03132b374e88b42a1e696cdfdf2a5c, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!4 &45376070 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 45376067} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 10.190587, y: 4.699326, z: -7.144069} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &144141393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 144141395} + - component: {fileID: 144141394} + m_Layer: 0 + m_Name: Big Boss + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &144141394 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144141393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 240ade3f16cf736479449e5fca9a29e1, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &144141395 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144141393} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 6.1189265, y: 0.17161107, z: -7.555224} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &519420028 GameObject: m_ObjectHideFlags: 0 @@ -264,4 +317,5 @@ SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 519420032} - - {fileID: 480666365} + - {fileID: 144141395} + - {fileID: 45376070} diff --git a/Pathfinding Visualizer/Assets/Scripts/Main.cs b/Pathfinding Visualizer/Assets/Scripts/Main.cs new file mode 100644 index 0000000..a4434c6 --- /dev/null +++ b/Pathfinding Visualizer/Assets/Scripts/Main.cs @@ -0,0 +1,70 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Main : MonoBehaviour +{ + + private LogicGrid world; + char placementMode; + int placementValue; + + // Start is called before the first frame update + void Start() + { + // Create world + world = new LogicGrid(5, 5, 10f, new Vector3(-100, -30)); + + // Set default placement to Obstacle + placementValue = -1; + placementMode = 'o'; + Debug.Log("Loaded. Placing Mode: Obstacle"); + + } + + // Update is called once per frame + void Update() + { + // Change Placement Modes: + // Place Agent in grid + // TODO change modes via UI button + if(Input.GetKeyDown("a")) + { + Debug.Log("Placing Mode: Agent"); + placementMode = 'a'; + placementValue = 2; + } + // Place Sample in grid + if(Input.GetKeyDown("s")) + { + Debug.Log("Placing Mode: Sample"); + placementMode = 's'; + placementValue = 1; + } + // Place Obstacle in grid + if(Input.GetKeyDown("o")) + { + Debug.Log("Placing Mode: Obstacle"); + placementMode = 'o'; + placementValue = -1; + } + + + // Update Cell: + // Change cell to obstacle + if (Input.GetMouseButtonDown(0)) + { + world.SetValue(CodeMonkey.Utils.UtilsClass.GetMouseWorldPosition(), placementValue); + } + // Clear cell + if (Input.GetMouseButtonDown(1)) + { + world.SetValue(CodeMonkey.Utils.UtilsClass.GetMouseWorldPosition(), 0); + } + + // Make functionality for when "start" button is pressed. + // should call some sort of function that will take in the world + // and perform the selected algorithm + + } +} diff --git a/Pathfinding Visualizer/Assets/Scripts/Main.cs.meta b/Pathfinding Visualizer/Assets/Scripts/Main.cs.meta new file mode 100644 index 0000000..fa84d9e --- /dev/null +++ b/Pathfinding Visualizer/Assets/Scripts/Main.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 240ade3f16cf736479449e5fca9a29e1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Pathfinding Visualizer/Assets/Scripts/MeshTesting.cs b/Pathfinding Visualizer/Assets/Scripts/MeshTesting.cs new file mode 100644 index 0000000..06c8090 --- /dev/null +++ b/Pathfinding Visualizer/Assets/Scripts/MeshTesting.cs @@ -0,0 +1,39 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class MeshTesting : MonoBehaviour +{ + void Start() + { + + Debug.Log("Mesh Testing"); + + Mesh mesh = new Mesh(); + + + // Build required data-structures for triangle mesh + Vector3[] vertices = new Vector3[3]; + Vector2[] uv = new Vector2[3]; + int[] triangles = new int[3]; + + // Set vertices of polygon (triangle) + vertices[0] = new Vector3( 0, 0); + vertices[1] = new Vector3( 0, 100); + vertices[2] = new Vector3(100, 100); + + // Set order of indexes of vertices to draw polygon (v1 -> v2 -> v3 -> v1) + // Note: always set clockwise, otherwise mesh will be facing backwards + triangles[0] = 0; + triangles[1] = 1; + triangles[2] = 2; + + + mesh.vertices = vertices; + mesh.uv = uv; + mesh.triangles = triangles; + + GetComponent().mesh = mesh; + + } +} diff --git a/Pathfinding Visualizer/Assets/Scripts/MeshTesting.cs.meta b/Pathfinding Visualizer/Assets/Scripts/MeshTesting.cs.meta new file mode 100644 index 0000000..49560ea --- /dev/null +++ b/Pathfinding Visualizer/Assets/Scripts/MeshTesting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f03132b374e88b42a1e696cdfdf2a5c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: