我正在制作一款具有动态相机的2D平台游戏。相机必须同时跟踪4个玩家,以便他们全部在屏幕上。此外,相机不得移动超出预定义的矩形边界。我已经尝试过实现它,但我似乎无法完成缩放相机的过程,因此它总是尽可能接近四个物体。
我到目前为止的通用算法是 1.通过使用被跟踪的4个对象位置计算2D轴对齐边界框来定义观察空间,并将其中心用作相机位置(或平均) 2.使用从摄像机位置到被跟踪每个对象的矢量,使用最大的x OR y值计算正交尺寸。
这在纸面上看起来很简单,但我似乎无法得到正确的工作实施。
答案 0 :(得分:0)
为什么不拿这4个玩家的平均位置并将其用作相机位置,同时检查玩家是否超出界限,何时缩小。
float x = 0;
float y = 0;
GameObject[] players = new GameObjects[5];
foreach(GameObject _ply in players)
{
x += _ply.transform.position.x;
y += _ply.transform.position.y;
}
x = x/players.Length;
y = y/players.Length;
foreach(GameObject _ply in players)
{
if(_ply.transform.position.x > (x + (Screen.Width / 2)))
//zoom out
if(_ply.transform.position.y > (y + (Screen.Height / 2)))
//zoom out
}
但你必须修理Zoomin。