C# 在Unity3D中,如何使我的电路板保持在不同屏幕大小的中心位置?
我正在开发一个棋盘游戏。我的电路板是使用C#脚本动态创建的,如下所示C# 在Unity3D中,如何使我的电路板保持在不同屏幕大小的中心位置?,c#,android,windows,unity3d,C#,Android,Windows,Unity3d,我正在开发一个棋盘游戏。我的电路板是使用C#脚本动态创建的,如下所示 /// <summary> /// Draws the board of the figure. Call the Load event of the form. /// </summary> public void DrawingBoard() { CubeDark.transform.localScale = new Vector3(3
/// <summary>
/// Draws the board of the figure. Call the Load event of the form.
/// </summary>
public void DrawingBoard()
{
CubeDark.transform.localScale = new Vector3(3f,2f,3f);
CubeLight.transform.localScale = new Vector3(3f,2f,3f);
for(int i = 0; i < _boardSize; i++)
{
for(int j = 0; j < _boardSize; j++)
{
if((i+j)%2 == 0)
{
UnityEngine.Object.Instantiate(CubeDark,new Vector3(i*3,_boardHeight,j*3), Quaternion.identity);
}
else
{
UnityEngine.Object.Instantiate(CubeLight,new Vector3(i*3,_boardHeight,j*3), Quaternion.identity);
}
}
}
}
但不幸的是,它没有起作用。董事会的一部分仍然没有出现
所以我的问题来了:
- 对于不同的屏幕分辨率和不同的平台(android和单机版),我如何使我的主板居中
- 在构建unity项目时,如何调整游戏窗口的大小
- 对于android平台,为什么只有一半的屏幕显示游戏?
谢谢。我想你的绘图板的中心不在坐标系(0,0,0)的中心 我认为您应该实例化从-size/2到+size/2,而不是从0到size:
UnityEngine.Object.Instantiate(CubeLight,new Vector3(i*3-_boardSize/2,_boardHeight,j*3-_boardSize/2), Quaternion.identity);
如果您这样做,电路板将始终位于坐标系的中心,因此它将始终位于屏幕的中心,以任何分辨率(如果您的相机正看着屏幕的中心-您应该检查相机的位置和旋转以确保)
此外,重要的是,你的CubeLight和CubeDark的中心在哪里。它应该在立方体的中间。
要调整大小和分辨率,请检查Unity Editor中“编辑/项目设置/播放器/分辨率和演示”下的设置
UnityEngine.Object.Instantiate(CubeLight,new Vector3(i*3-_boardSize/2,_boardHeight,j*3-_boardSize/2), Quaternion.identity);