- Home /
Question by
betaFlux · Feb 22, 2014 at 07:31 PM ·
positiongridgizmogeneric list
How to store Gizmo (grid) Cube positions in Vector3 list at game start?
I have written this script to create a grid of gizmo cubes:
using UnityEngine;
using System.Collections.Generic;
public class Grid : MonoBehaviour {
public int[] rows;
//public int[] columns; //not integrated yet
public float gizmoSize = 0.3f;
public int width = 15;
//public int length = 15; //I still don't know how to integrate this; for now width controls both width and length
public List<Vector3> storedPositions;
float storedPositionX = 0;
float storedPositionZ = 0;
int rowIndex = 0;
//int columnIndex = 0;
public float spacingX = 0.3f;
public float spacingZ = 0.3f;
public Color gizmoColor;
void Start()
{
storedPositions = new List<Vector3>(); // this is where I want to store the gizmo cube positions
}
void OnDrawGizmosSelected()
{
rows = new int[width];
//columns = new int[length];
Gizmos.color = gizmoColor;
foreach(int row in rows)
{
for(int x = 0; x < width; x++)
{
Gizmos.DrawCube(new Vector3(transform.position.x + x * spacingX, transform.position.y, transform.position.z + storedPositionZ), new Vector3(gizmoSize, gizmoSize, gizmoSize));
}
if(rowIndex < rows.Length - 1)
{
storedPositionZ += spacingZ;
rowIndex++;
}
else
{
storedPositionZ = 0;
rowIndex = 0;
}
}
}
}
I tried to store the cube positions in the Vector3 List in the start method, but failed, because I don't know how to add every single position just once in the list, as the OnDrawGizmo Methods are being called every frame. Please help!
Comment
Your answer
Follow this Question
Related Questions
transform.position error 1 Answer
How to make a Vector3 A = Vector3 B EXACTLY 1 Answer
How to instantiate the prefabs on grid in Unity? 1 Answer
2D Board game grid placement 0 Answers