added placementModes and mesh testing

can place varying values into grid, starting to work on rendering meshes to represent the cells
This commit is contained in:
Simon O'Shea
2023-08-03 13:57:45 -04:00
parent 6451c901fd
commit 374125ba34
5 changed files with 204 additions and 19 deletions
@@ -123,7 +123,7 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &480666364 --- !u!1 &45376067
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@@ -131,42 +131,95 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 480666365} - component: {fileID: 45376070}
- component: {fileID: 480666366} - component: {fileID: 45376069}
- component: {fileID: 45376068}
m_Layer: 0 m_Layer: 0
m_Name: Testing m_Name: MeshTesting
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!4 &480666365 --- !u!33 &45376068
Transform: MeshFilter:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 480666364} m_GameObject: {fileID: 45376067}
serializedVersion: 2 m_Mesh: {fileID: 0}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} --- !u!114 &45376069
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
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 480666364} m_GameObject: {fileID: 45376067}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8fb3c49ddde2d804487b586bfbf43cc3, type: 3} m_Script: {fileID: 11500000, guid: 2f03132b374e88b42a1e696cdfdf2a5c, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: 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 --- !u!1 &519420028
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -264,4 +317,5 @@ SceneRoots:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_Roots: m_Roots:
- {fileID: 519420032} - {fileID: 519420032}
- {fileID: 480666365} - {fileID: 144141395}
- {fileID: 45376070}
@@ -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
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 240ade3f16cf736479449e5fca9a29e1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -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<MeshFilter>().mesh = mesh;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2f03132b374e88b42a1e696cdfdf2a5c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: