Как насчет использования только внешних пределов и игнорирования всего, что находится между
// ignores the cubes that are not placed on the limits
if (x != 0 && x != volume - 1 && y != 0 && y != volume - 1 && z != 0 && z != volume - 1) continue;
i++;
var go = Instantiate(cube);
go.name = "Cube " + i;
go.transform.position = new Vector3(x, y, z);
или, если это проще для понимания
// only spawns cubes that are placed on the limits
if (x == 0 || x == volume - 1 || y == 0 || y == volume - 1 || z == 0 || z == volume - 1)
{
i++;
var go = Instantiate(cube);
go.name = "Cube " + i;
go.transform.position = new Vector3(x, y, z);
}
, как упоминал Элиасар, я также рекомендовал бы использоватьлучшее имя переменной, чем i
, например, как сказал yourselve index
.В конце концов, это просто имя, но оно чище.Однако я бы также рекомендовал переместить его за пределы определения for
, например
int index = 0;
for(int x = 0; ...)
вместо
for(int index = 0 , x = 0; ...)
, которое очень трудно читать