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:
@@ -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:
|
||||||
Reference in New Issue
Block a user