我创建了一个游戏,你可以同时控制多个角色,但他们随时都可能死亡。我的问题是当我想让游戏相机包括所有这些游戏物体时。
我认为一个好的选择是计算场景中游戏物体之间的中心点,并使相机在一定距离内跟随该点。
我已经有了相机代码,但我仍然需要知道如何获取那个中心点或另一种方法来实现它。此外,相机不会沿任何轴(X、Y、Z)线性移动,因为它被放置在等距视图中(游戏是3D的)。
最后一个重要事实是,所有运行在游戏中的游戏物体(活着的)都存储在公共静态列表
我给你留下一个图形示例,其中包含三种不同的情况,黑色点是场景中的角色(游戏物体),红色点是我想找到的中心点(向量)。 此外,我留下了相机代码,以便您测试是否有任何解决方案:
非常感谢您的提前帮助!
我认为一个好的选择是计算场景中游戏物体之间的中心点,并使相机在一定距离内跟随该点。
我已经有了相机代码,但我仍然需要知道如何获取那个中心点或另一种方法来实现它。此外,相机不会沿任何轴(X、Y、Z)线性移动,因为它被放置在等距视图中(游戏是3D的)。
最后一个重要事实是,所有运行在游戏中的游戏物体(活着的)都存储在公共静态列表
public static List <GameObject>
中,以便随时访问这些游戏物体的组件。此外,如果一个角色(游戏物体)死亡或出生,列表将无问题更新。我给你留下一个图形示例,其中包含三种不同的情况,黑色点是场景中的角色(游戏物体),红色点是我想找到的中心点(向量)。 此外,我留下了相机代码,以便您测试是否有任何解决方案:
public class Camera_Movement : MonoBehaviour {
Vector3 newPos;
public static List<GameObject> playersInGame = new List<GameObject>();
void Update() {
// Get Central Vector
// Replace playersInGame[0].transform.position with central vector
//newPos = Vector3.Lerp(gameObject.transform.position, "central vector", Time.deltaTime);
newPos = Vector3.Lerp(gameObject.transform.position, playersInGame[0].transform.position, Time.deltaTime);
gameObject.transform.position = new Vector3(newPos.x, newPos.y, newPos.z);
}
}
非常感谢您的提前帮助!