I can’t wrap my head around an easier way to do this, because all values can be either positive or negative, but surely there must be a more efficient way:
bool isInsideEventGrid() {
float gridSize = 3.0f;
int posX = (eventGrid.x > 0 ? 1 : -1);
int posZ = (eventGrid.z > 0 ? 1 : -1);
float sizeX = eventGrid.x + (gridSize * posX);
float sizeZ = eventGrid.z + (gridSize * posZ);
float lowerX = Mathf.Min (eventGrid.x, sizeX);
float upperX = Mathf.Max (eventGrid.x, sizeX);
float lowerZ = Mathf.Min (eventGrid.z, sizeZ);
float upperZ = Mathf.Max (eventGrid.z, sizeZ);
//Debug.Log ("X between " + lowerX + " and " + upperX);
//Debug.Log ("Z between " + lowerZ + " and " + upperZ);
if (transform.position.x > lowerX transform.position.x < upperX) {
if (transform.position.z > lowerZ transform.position.z < upperZ) {
return true;
}
}
return false;
}