2015-12-16 25 views
1

據我所知,一個C#項目可以以2種形式添加到Unity3d中。作爲DLL或未編譯的項目。編譯一個C#項目作爲Unity3d的DLL

兩者的優缺點是什麼?他們會跨平臺工作嗎(Android/iOS/WinPhone)?

編譯爲DLL - 我只是使用的MonoDevelop或Visual Studio新的類庫項目,並選擇.NET 3.5和編譯?

如何將未編譯的項目添加到Unity3d?

+0

下面是一個方便的快速入門指南,以做到這一點... https://purplelilgirl.wordpress.com/2015/01/07/how-to-create-dlls-for-unity/ – Fattie

回答

1

那麼在一篇文章中有太多問題。試着回答一個接一個: 統一官方文檔提供太多的幫助:

問題

據我知道C#項目可以在2種形式加入到Unity3d。作爲DLL或未編譯的項目。 要編譯爲DLL - 我是否只使用MonoDevelop或Visual Studio來創建新的類庫項目並選擇.NET 3.5並編譯?

通常情況下,腳本都保存在一個項目作爲源文件和 統一每當源改變編譯。但是,也可以使用外部編譯器 將腳本編譯爲動態鏈接庫(DLL)。生成的DLL然後可以被添加到項目 ,它包含的類可以附加到對象,就像 正常腳本。

這是通常更容易使用腳本比在統一的DLL才能工作。 但是,您可能有權訪問以DLL形式提供的第三方Mono代碼,即 。在開發自己的代碼時,您可以使用編譯器不支持的編譯器(例如F#) 將代碼編譯爲DLL並將其添加到Unity項目中。另外,您可能希望提供Unity代碼而不使用源代碼(對於資產 存儲產品,例如),並且DLL是實現此目的的簡單方法。 More

哪些利弊

關於DLL:分別

優點

  • 您可以構建的DLL。
  • 它可以更快地重新建立一個DLL

缺點

  • 從DLL調用代碼較慢
  • 這將是比較慢的所有DLL來重新構建孔項目
  • 函數名稱是可見的。這是比較容易逆轉使用 動態DLL的代碼 你可以找到更多關於herehere以及專門在谷歌,我們最好的朋友:)

你如何添加一個未編譯項目Unity3d? Ans:未編譯的項目是什麼意思?你的意思是腳本?那麼它通常是複製\粘貼在資產文件夾裏面。

1

將他們工作的跨平臺(Android/iOS版/ WinPhone)?

是的。您可以在Xamarin Studio/MonoDevelop /或Visual Studio中創建一個庫項目。如果您沒有包含特定於平臺的功能,那麼它將跨平臺。

要編譯爲DLL - 我只是使用MonoDevelop或Visual Studio新建類庫項目並選擇.NET 3.5並編譯?

看到這個tutorial

+0

PCL不支持Unity 。 – Bartosz

+0

PCL現在在Mono中非常出色。 https://www.reddit.com/comments/1ofiyj/net_team_makes_portable_class_library_pcl/ – David

+0

@Bartosz,爲什麼downvote? – David

1

當您在IDE中打開您的團結項目(例如Visual Studio中),它與兩個項目,一個是遊戲腳本,一個用於編輯腳本的解決方案。您可以通過您選擇的IDE將更多項目添加到解決方案中。爲了實現這個目標,您需要將項目目標框架設置爲與Unity兼容的項目(其使用的子集),例如Unity 3.5 .net完整基本類庫。不幸的是,.NET PCL不受支持。

你可以引用任何項目照常您(或第三方)庫,只記得它也有與統一兼容。

閹你的代碼將在所有的平臺上工作實際上取決於你用什麼。有關平臺特定的限制,請參閱http://docs.unity3d.com/Manual/PlatformSpecific.html

+0

不幸的是PCL不受支持。任何鏈接來證明這一點? – David