C# 跟踪变量的一般方法

C# 跟踪变量的一般方法,c#,xna,C#,Xna,我有一个相机类,我希望它能够跟踪一个物理对象。然而,在我的游戏引擎中(这是camera类的一部分),你可以使用不同的物理引擎(甚至一些我没有开发的)。我如何使我的相机能够跟踪一个物体,而不管我使用的是什么物理引擎?如果有帮助,我将有一个包装类来帮助抽象处理特定引擎物理实现的一些细节。这完全取决于图形引擎的设置方式 大多数图形引擎都有某种形式的场景图,以及将摄影机附加到场景图中节点的方法。这将使摄影机继承其父节点的变换,这意味着它可以轻松地“跟随”另一个节点 如果物理系统干净地集成,它将在场景周围

我有一个相机类,我希望它能够跟踪一个物理对象。然而,在我的游戏引擎中(这是camera类的一部分),你可以使用不同的物理引擎(甚至一些我没有开发的)。我如何使我的相机能够跟踪一个物体,而不管我使用的是什么物理引擎?如果有帮助,我将有一个包装类来帮助抽象处理特定引擎物理实现的一些细节。

这完全取决于图形引擎的设置方式

大多数图形引擎都有某种形式的场景图,以及将摄影机附加到场景图中节点的方法。这将使摄影机继承其父节点的变换,这意味着它可以轻松地“跟随”另一个节点

如果物理系统干净地集成,它将在场景周围移动对象,从而影响其节点。这将自动传播到相机中


如果您想指定正在使用的游戏引擎+物理集成包,我可能会提供更多详细信息。

用包含标准位置对象(可能是矢量3)的东西包装您的对象。然后,只需添加一个Camera.LookAt(GameObject)方法,即可跟踪该对象。此外,这也很好地用于引擎中的其他对象,它只是让您能够使用任何摄影机跟踪任何对象。这是我在前两个游戏应用程序中使用的方法。

我甚至不知道场景图是什么,因此无法使用。我正在编写自己的引擎,它将使用www.codeplex.com/farseerphysics以及来自www.walaber.com的jelly物理库,以及我开发的自定义物理库作为物理选项。基本上,我需要一种方法来存储对向量2的引用,以便跟踪它。也许我应该问这个?如果你在写你自己的引擎,我会研究场景图。大多数物理库都假设您有一种修改变换的方法,这种方法与场景图紧密结合。否则,只需保留对对象本身的引用(带有位置),并跟随它。你不能(轻松地)保留对Vector2的引用(因为它是一种值类型),但你可以保留对包含Vector2的对象的引用。这实际上可能会起作用,因为我想对我想要的物理引擎进行包装。。。谢谢