Hi, any tips for assigning each node a cube coordinate system ie 3 axes QRS. I’m struggling to get the formula for the S coordinate correct. For reference I am following a tutorial on Hexagonal Grids cube coord system.
void GenerateGridCells() {
var nodes = AstarPath.active.data.gridGraph.nodes ;
foreach ( GridNodeBase node in nodes ) {
var nodePosition = ( Vector3 ) node.position ;
var gridCell = Instantiate( _gridCell , nodePosition , Quaternion.identity ) ;
gridCell.transform.parent = transform ;
var xCoord = node.XCoordinateInGrid ;
var zCoord = node.ZCoordinateInGrid ;
var q = xCoord - ( zCoord + ( zCoord % 2 ) ) / 2 ;
var r = zCoord ;
var s = -q - r ;
gridCell.name = $"GridCell: {q} , {r}, {s}" ;
}
}
This code returns correct Q and R but S is not correct (with the goal that all coordinates add up to equal zero). The reason is to allow for grabbing certain tiles e.g. a ring using established formulas with the cube coord system.