Doxygen的语法糖将MonoBehaviour与Unity3D连接起来

时间:2016-01-06 17:47:27

标签: c# unity3d doxygen

我们刚刚为我们的项目添加了精彩的Doxygen,到目前为止,我们非常喜欢它,特别是Dot视觉图表最多可以使用。

我们喜欢的一个特定领域是,您能够正确跟踪某些服务的创建位置,因此您可以最好地记录某些区域的流量,例如:

enter image description here

这是流入移动应用程序的初始输入区域,我们有一个中心位置,您可以通过该位置访问我们提供的所有其他服务。此中心位置已初始化,如SMAppServicesMonoBehaviour中所示。

遗憾的是,未显示的是SMAppServicesMonoBehaviour的“创造点”。这样做的原因是您在MonoBehaviour中创建Unity3D的方式。只需将脚本附加到GameObject,您就可以在编辑器中创建一个脚本,或者在代码中类似地,您可以使用GameObject将脚本附加到AddComponent

new GameObject("SMAppServices").AddComponent<SMAppServicesMonoBehaviour>();

这意味着不会跟踪实际创建/实例化SMAppServicesMonoBehaviour之间的链接。

因此,问题是,是否有任何语法方法可以将Doxygen的一些元信息附加到此代码块中,以表达上述内容,“我们正在接触/访问SMAppServicesMonoBehaviour.Start”?

1 个答案:

答案 0 :(得分:0)

我在C中遇到了一个带有函数指针表的问题。 Doxygen无法看到访问该表的例程会调用这些函数。我发现如果我将表的声明作为本地静态函数移动到函数中,Doxygen会看到函数调用(或更好地说:会知道可以调用函数)。

void func() {
    funcptr calltable[] = { foo, bar, foobar };
    ...
}

你的场景可能过于抽象了。您可能会在代码中尝试其他技巧,但我不建议做任何复杂的事情;它违背了具有可读代码的目的。

可能会向Doxygen团队建议新命令\calls\calledby明确建立连接。但我不认为Doxygen支持特定实例化的文档。

执行调用的代码非常通用,是泛型类的模板成员?如果它是在调用图中连接的,那么你可能会对所有可能的引用感到困惑,当你真的只想表明SMAppServices已连接时,理想情况下只有基于{{1的特定实例化}}