屏幕上居中的卡片

时间:2018-10-12 13:23:03

标签: c# unity3d

我按照一个统一的教程制作了一个记忆游戏,但是在添加更多卡之后,它们现在从屏幕的右侧消失。

该代码在Unity设计器中使用一张卡,所有其他卡都被实例化并从中定位(使用startpos)

public const float offset = 2.5f;
Vector3 startpos = originalCard.transform.position;

for (int i = 0; i < numCols; i++)
{
    for (int j = 0; j < numRows; j++)
    {
        card = Instantiate(originalCard) as MemoryCard;
        float posX = (offset * i) + startpos.x;
        float posY = - (offset * j) + startpos.y;
        card.transform.position = new Vector3(posX, posY, startpos.z);
    }
}

我想在屏幕上居中放置卡片,但不确定如何通过Screen.width来确定屏幕尺寸以像素为单位,而矢量代码不是,而原始卡片的x分量(startpos.x)实际上是否定的。

1 个答案:

答案 0 :(得分:0)

最简单的方法是在场景视图中移动原始卡。如果单击相机,您会看到它的边界,因此单击相机,然后将起始卡尽可能向左移动,仍然可以看到它。如果它们仍然不能完全容纳在相机中,则可以更改卡的宽度并进行一些数学运算以查看可以容纳多少张卡。

另一种解决方案(但也很简单)是调整相机范围以包围卡片所在的位置。