- Home /
Question by
IsadoraRebelo · Jun 27, 2020 at 06:26 PM ·
objectscalegridcell
Scale GameObject Object to fit Screen
--- The maze is to be displayed in its entirety on the screen regardless of its size, with minimum white space surrounding it;
My maze has different numbers of columns and rows depending on what the user chooses, and every time it regenerates should fit the entire screen.
Right now I'm generating my cells this way:
void CreateMaze()
{
grid = new MazeCell[Rows, Columns];
float size = Wall.transform.localScale.x;
float height = Camera.main.orthographicSize * 2.0f;
float width = height * Screen.height / Screen.width;
gameObject.transform.localScale = (Vector3.one * size) * height / 6f;
gameObject.transform.localScale = (Vector3.one * size) * width / 6f;
i = 0;
while (i < Rows)
{
j = 0;
while (j < Columns)
{
GameObject floor = Instantiate(Floor, new Vector3(j * size, 0, -i * size), Quaternion.identity);
GameObject UpWall = Instantiate(Wall, new Vector3(j * size, 1.75f, -i * size + 1.25f), Quaternion.identity);
GameObject DownWall = Instantiate(Wall, new Vector3(j * size, 1.75f, -i * size - 1.25f), Quaternion.identity);
GameObject LeftWall = Instantiate(Wall, new Vector3(j * size -1.25f, 1.75f, -i * size), Quaternion.Euler(0, 90, 0));
GameObject RightWall = Instantiate(Wall, new Vector3(j * size +1.25f, 1.75f, -i * size), Quaternion.Euler(0, 90, 0));
grid[i, j] = new MazeCell();
grid[i, j].upWall = UpWall;
grid[i, j].downWall = DownWall;
grid[i, j].leftWall = LeftWall;
grid[i, j].rightWall = RightWall;
floor.transform.parent = transform;
UpWall.transform.parent = transform;
DownWall.transform.parent = transform;
LeftWall.transform.parent = transform;
RightWall.transform.parent = transform;
if (j == 0 && i == 0)
Destroy(LeftWall);
j++;
}
i++;
}
}
This being my attempts to change the scale:
float height = Camera.main.orthographicSize * 2.0f;
float width = height * Screen.height / Screen.width;
gameObject.transform.localScale = (Vector3.one * size) * height / 6f;
gameObject.transform.localScale = (Vector3.one * size) * width / 6f;
My walls are 3x3.
Comment
Your answer
Follow this Question
Related Questions
Newbiew question: how to size objects? 1 Answer
Scaling Object with Slider 1 Answer
Mesh gets squashed after parenting to camera. 0 Answers