2015-04-23 30 views
4

我們已經有了一個包含所有代碼的visualstudio解決方案,它完全與我們的統一項目分離。 當我們將代碼從visualstudio內部構建到dll時,dll被複制到unity項目插件文件夾中,因此我們可以在unity項目中使用它。在外部dll中重命名類,而不會在統一編輯器中引用它編輯器

這一切工作正常,但問題是當我們在我們的Visual Studio解決方案中重命名一個類,重建DLL並返回到統一項目,重命名類的引用丟失在我們的場景和/或預製...

我看着現場&預製文件,發現在DLL中的類的引用定義如下:

m_Script:{FILEID:698634159,GUID:aa20b9c3579870b40bb96d13672546a3,類型:3}

我在論壇上看到fileID是基於名稱生成的步伐&這個類文件的名字,所以邏輯上當這個類被重命名時,這個fileID的變化和統一併不知道它需要引用被重命名的類。

有沒有辦法定義某種硬引用,所以引用在重命名類時不會丟失?或者任何其他建議,以防止引用迷路。

我也嘗試過在dll中包含一個帶有guid的元文件,但是unity並沒有考慮到這個元文件,因爲它總是使用dll的guid和生成的fileId一起使用。

回答

1

Unity不能自動找到你已經重命名DLL中的某個類。對於任何形式的項目都是如此:如果您依賴某個DLL,並且DLL中的類發生更改,則沒有重命名的跡象。

鏈接它們的最好方法是在解決方案中添加Unity項目,並在Unity項目和其他項目之間放置一個依賴項。那麼也許重構工具會建議你在Unity項目中重命名。

+0

嗯,我不是真的要求統一性自動地發現,我想找到一種方法來從團結到我的課程,所以當我重命名或移動我的課程時,依賴不會丟失。類似於帶有指向類的引用的註釋將非常方便,但統一性似乎與基於名稱和命名空間生成的fileid鏈接 – z3bu

+0

不要認爲類與類可能存在太多的硬鏈接。請注意,它存在於腳本值中:[FormerlySerializedAs(「myValue」)]。但是這並不能解決你的問題。 – Kamalen

+0

問題是,您無法真正使用重構工具重新命名預製/場景上的引用 – z3bu