我的播放器可以在x轴和y轴上自由行走,起初,我使用此代码将播放器从另一侧越过边界带回后台,但随后我不得不为其他播放器进行很多新的计算场景中的物体,例如硬币和敌人,以纠正其位置
private void MapControl()
{
if (transform.position.y > MapSize)
{
transform.position = new Vector3(transform.position.x, 0);
}
else if (transform.position.y < 0)
{
transform.position = new Vector3(transform.position.x, MapSize);
}
else if (transform.position.x > MapSize)
{
transform.position = new Vector3(0, transform.position.y);
}
else if (transform.position.x < 0)
{
transform.position = new Vector3(MapSize, transform.position.y);
}
}
我想知道哪个更好?将我的背景复制到播放器所在的位置(x和y轴),如何复制?还是使用上述代码将播放器保留在主要背景中?
答案 0 :(得分:1)
单击camera
。在检查器中,您可以将其设置为图像背景,然后设置图像,它将永久保留在视图中。
或者,您可以将背景添加为精灵图像,对其进行缩放以适合您的相机视图,然后使其成为相机的子级。请务必注意,如果您决定这样做,请确保将background
移到后台。即调整其z
(深度)
这两种解决方案都可以使用,并且为您提供静态背景(无论如何,背景都将保持静止状态)
但是,如果您希望背景随着玩家的移动而移动,则需要平铺纹理,这里有一些用于编程tileable
背景的教程。
类似(伪)的东西
int tileswide=10;
int tileswide=10;
float tilewidth=Screen.width;
float tileheight=Screen.height;
for(int x =0; x<tileswide;x++){
for(int y =0; y<tileswide;y++){
instantiate(object);
Vector3 pos = new Vector3(x*tilewidth,y*tileheight,3);
object.transform.position=pos;
}
}