簡體   English   中英

Doxygen將MonoBehaviour與Unity3D鏈接的語法糖

[英]Syntactical sugar for Doxygen to link a MonoBehaviour with Unity3D

我們剛剛將精彩的Doxygen添加到了我們的項目中,到目前為止,我們一直很喜歡它,尤其是將Dot可視圖形調到最大。

我們喜歡的一個特殊領域是何時能夠正確跟蹤某些服務的創建位置,因此您可以最好地記錄某些領域的流程,例如:

在此處輸入圖片說明

這是最初進入移動應用程序流程的一個區域,我們擁有一個中心位置,您可以通過該中心位置訪問我們提供的所有其他服務。 中心位置已初始化,如SMAppServicesMonoBehaviour所示。

不幸的是,未顯示的是SMAppServicesMonoBehaviour的“創建點”。 原因是在Unity3D創建MonoBehaviour的方式。 您可以在編輯器中創建一個腳本,只需將腳本附加到GameObject ,或者類似地,在代碼GameObject使用AddComponent將腳本附加到AddComponent

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

這意味着在實際創建/實例化SMAppServicesMonoBehaviour位置之間的鏈接不會被跟蹤。

因此,問題是,是否有任何語法方法可以將Doxygen一些元信息附加到此代碼塊,以按照上述類似的方式聲明某些內容:“我們正在接觸/訪問SMAppServicesMonoBehaviour.Start”?

我在C中使用函數指針表遇到了這個問題。 Doxygen看不到訪問表的例程會調用那些函數。 我發現,如果將表的聲明作為該函數的局部靜態變量移動,Doxygen隨后將看到該函數的調用(或者更好的說法:將知道可以進行調用)。

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

您的場景可能太抽象了。 您可能會在代碼中嘗試其他技巧,但是我不建議您做任何復雜的事情。 它破壞了具有可讀代碼的目的。

一種想法可能是建議Doxygen團隊使用新的命令\\calls\\calledby顯式建立連接。 但是我不認為Doxygen支持特定實例的文檔。

進行調用的代碼非常通用,是通用類的模板成員? 如果要在調用圖中進行連接,那么您可能會對所有可能的引用產生迷惑,實際上,您僅想顯示SMAppServices已連接,理想情況下僅顯示基於SMAppServicesMonoBehaviour的特定實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM