void OurInnerRotate(TurnFromToOffsets whereToTurn, int rotationZ, GameObject turnSegment) { GameObject lastSegment = tail.Peek(); transform.position = lastSegment.transform.position + whereToTurn.first; GameObject newSegment = Instantiate(turnSegment, new Vector3(transform.position.x, transform.position.y, segmentsZ), transform.rotation); segmentsZ -= 0.01f; transform.Rotate(0, 0, rotationZ); transform.position += whereToTurn.second; isReadyToTurn = false; tail.Push(newSegment); }
void RotateAntiClockwise(TurnFromToOffsets whereToTurn) => OurInnerRotate(whereToTurn, 90, leftTurnSegment);
void RotateClockwise(TurnFromToOffsets whereToTurn) => OurInnerRotate(whereToTurn, -90, rightTurnSegment);