![](/img/trans.png)
[英]The Unity Scripts edited in Visual studio don't provide autocomplete…2020
[英]Unity Scripts edited in Visual studio don't provide autocomplete
當我想編輯 C# Unity 腳本時,它們會在 Visual Studio 中打開。 它應該為所有與 Unity 相關的代碼提供自動完成功能,但它不起作用。
在這里您可以看到缺少的功能:
如圖所示, transform
對象沒有打開自動完成菜單。
統一版本:5.5.2f1
視覺工作室 2015
已安裝 Visual Studio Tools for Unity
沒有自動完成,因為腳本說“雜項文件”而不是項目名稱。 看一下來自您問題中的視頻的下圖:
出現“雜項文件”消息的原因有很多:
當您從另一個文件夾打開 Unity C# 文件而不是從 Unity 編輯器打開它時,可能會發生這種情況。
這也可能發生,因為 Unity 在 Visual Studio 仍處於打開狀態時崩潰,因此損壞了一些文件。
這可能是因為 Unity 已關閉然后重新打開但不再連接到 Visual Studio。 打開 Visual Studio 時,您會看到“雜項文件”並且沒有自動完成功能。
當未安裝Visual Studio Tools for unity時,可能會發生這種情況。
當您從 Unity 創建腳本時,然后在 Unity 完成處理它之前或在圓形圖標動畫完成動畫之前快速打開它。
大多數情況下,重新啟動 Unity 和 Visual Studio 應該可以解決此問題。
我不知道是哪一個導致了問題,但我將介紹最有可能解決此問題的解決方案。
修復第 1 部分:
從此鏈接下載並安裝Visual Studio Tools for unity 。 在 Unity 和 Visual Studio 都關閉時執行此操作。
在 Unity Editor 中,轉到Edit → Preferences ... → External Tools 。 在External Script Editor下拉菜單中,將其更改為Visual Studio 2015 。
修復第 2 部分:
如果新創建的 C# 文件顯示為Miscellaneous ,請按照以下說明進行操作:
在 Visual Studio 中,轉到Tools → Options... → Tools for Unity → Miscellaneous 。 在顯示連接圖標下,將其設置為true
,然后重新啟動 Visual Studio。
重新啟動時,連接圖標現在應該在 Visual Studio 中可用。 單擊它,然后選擇要連接的 Unity 實例。 紅色的“x”圖標現在應該變成棕色的復選標記圖標。 現在,當您在 Unity 中創建一個新的 C# 文件時,它應該打開而不說Miscellaneous 。
修復第 3 部分:
還沒修好?
重新導入項目,然后打開 C# 項目。
關閉 Visual Studio。
在 Unity 中,通過轉到Assets → Reimport All重新導入項目。
現在,通過轉到Assets → Open C# Project在 Visual Studio 中打開項目。 這將重新加載項目並修復可能的解決方案文件問題。
修復第 4 部分:
還沒修好?
分別修復每個 C# 文件。
修復第 5 部分:
還沒修好?
這個特殊的解決方案似乎對多人有效,這要歸功於 chrisvarnz 。
關閉 Visual Studio
轉到您的項目目錄並刪除所有生成的 Visual Studio 文件。
這些是要刪除的文件擴展名:
.csproj
.user
.sln
例子:
假設您的項目的名稱稱為Target_Shoot
,這些是要刪除的文件應如下所示:
Target_Shoot.csproj
Target_Shoot.Editor.csproj
Target_Shoot.Editor.csproj.user
Target_Shoot.Player.csproj
Target_Shoot.Player.csproj.user
Target_Shoot.sln
不要刪除任何其他內容。
再次從 Unity雙擊腳本,它應該會生成新的 Visual Studio 文件,然后打開 Visual Studio。 這可能會解決您的問題。
修復第 6 部分:
如果不起作用,請檢查您是否遇到此錯誤:
未找到“GetReferenceNearestTargetFrameworkTask”任務
從這里安裝Nuget PackageManager 。
重新啟動 Visual Studio。
有關更多信息,請參閱此答案。
修復第 7 部分
確保所有項目都已加載。 在解決方案資源管理器中,它應該告訴您 # of # 個項目。 如果未顯示所有項目,請右鍵單擊“解決方案(# of # 個項目)”,然后單擊“加載項目”。
嘗試這個,
在 Unity 編輯器中轉到菜單,單擊編輯 -> 首選項 -> 外部工具 -> 外部腳本編輯器。 將其設置為 Visual Studio(您安裝的 VS 版本)。
現在在菜單欄中轉到編輯 -> 項目設置 -> 播放器設置 -> 其他設置 -> 在配置下 -> 檢查 API 兼容性級別 -> 將其更改為您安裝的 .Net 版本。 就我而言,我將其設置為 .Net 4.x
現在如果 Visual Studio 已經在運行,請轉到 Visual Studio,它會要求重新加載項目。 重新加載項目。 檢查它是否有效,如果沒有關閉 Visual Studio。 現在從 Unity Editor 中打開 cs 文件,現在它應該可以工作了。
我找到了另一種以更方便的方式解決此問題的方法:
這將以某種方式終止 Unity 和 Visual Studio 之間的同步。
下次 Visual Studio 將重新加載項目時,它會提示警告。 只需點擊“丟棄”即可。
在 Visual Studio 中卸載並重新加載項目:
固定的!
我發現這個解決方案效果最好(最簡單),多次遇到問題。
資料來源: https ://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/
這個頁面幫助我解決了這個問題。
修復 Unity 與 Visual Studio 斷開連接的問題
在 Unity 編輯器中,選擇編輯 > 首選項菜單。
選擇左側的外部工具選項卡。
對於外部腳本編輯器,選擇您擁有的 Visual Studio 版本。
點擊重新生成文件
你完成了
我今天使用 Visual Studio 2017 15.4.5 和 Unity 2017 遇到了同樣的問題。
我可以通過右鍵單擊 Visual Studio 中的項目並將目標框架從 3.5 更改為 4.5 來解決此問題。
希望這可以幫助其他類似情況的人。
兩種備選方案:
修復 1
@singleton 向我指出了這個方向。 與其在 Visual Studio 中更改目標,不如在 Unity 中更改它,因為項目是自動生成的。
首先刪除自動生成的 Visual Studio 文件: .csproj .user .sln
然后從 Unity 中轉到 PlayerSettings 並在“其他設置”下將“腳本運行時版本”從 Stable 3.5 更改為 Experimental 4.6。
但是,這並沒有為我解決問題。
修復 2
我注意到所有對 Unity 相關代碼的引用都標有黃色警告。 檢查您的錯誤日志,看看是否是這種情況。 特別是看看你是否收到以下錯誤:getreferenceNearestTargetframeworkTask
如果是這樣,請嘗試:再次啟動 Visual Studio 安裝程序。
在 Build Tools 2017 上,單擊 Modify,
確保勾選“Nuget 目標和構建任務”。 如果您單擊通用 Windows 平台開發,這應該會被勾選。
使用 Visual Studio Community 2019 和 Unity 2019.3 更新 2020:
以管理員身份打開 Visual Studio Installer,選擇修改當前安裝並添加“Game development for Unity”
如果您現在在 Unity 中添加一個新的 c# 腳本,並使用 Visual Studio (自動)打開它,它不會在窗口頂部描述為“Miscellaneous”,而是使用“Assembly-CSharp”,並且自動完成功能有效。
我通過從 Visual Studio 本身而不是統一編輯器創建 .cs 文件找到了我的解決方案
就我而言,我的 PC 上沒有安裝正確的 .net 版本。 我在我的電腦上安裝了 .net 3.5,這對我有用。
對於 Windows 或 macOS:
下載/安裝Visual Studio IDE(使用 Unity 工具)
安裝時,請確保包括安裝
使用 Unity 進行游戲開發
然后使用 Unity(您可以雙擊您的 C# 文件之一),打開一個新的 C# 項目,Visual Studio IDE 應該以您的新項目結構打開。
從那里,您應該能夠看到您要查找的內容。
例如:
對於 Linux(建議):
試試Monodevelop - Additional Information ,它提供代碼完成/提示。
我的自動完成功能也沒有工作,因為沒有安裝Visual Studio Tools for Unity 。 因此,安裝后,請刪除自動生成的 Visual Studio 文件。 其他人說你再次打開文件,問題就解決了,但事實並非如此。
訣竅是:您需要通過右鍵單擊從 Unity 打開 C# 文件,然后單擊“打開 C# 項目”,而不是通常雙擊該文件。
我面臨的問題是 C# 項目的目標是不同的 .NET Framework (4.7.2),而 Unity 項目的目標不同 (.NET 3.5)。
我通過將 Unity 中的目標更改為 -
文件 -> 構建設置 -> 播放器設置 -> 其他設置 -> API 兼容級別:將其設置為您已經安裝的 .NET 版本( 在此處檢查您的 .NET 版本)。 就我而言,它是 4.x
此后,Visual Studio 完美運行,自動更正也得到修復。
嘗試按Ctrl + Alt + Space
(在建議和標准完成模式之間切換)
出於某種奇怪的原因,“使用 Unity 進行游戲開發”工具可能會在 Visual Studio 中被禁用。
要解決這個..
感謝 Yuli Levtov在另一個線程上的回答
我解決了在我的 Unity 項目中配置的 WIN 上安裝相同版本的 .NET。 (播放器設置)
以上解決方案都不適合我。 但是我打開了ProjectName.CSPROJ
文件並手動添加了新文件,它就像魅力一樣
學分: https ://stackoverflow.com/a/47662523/10471480
如果 Scripts 文件夾不可見:
對我有用的是我復制了損壞的類中的所有代碼並刪除了該文件。 然后,我打開一個同名的空文件並粘貼回來。
結果:漂亮的語法亮點回來了!
請記住,如果您使用的是 ReSharper 工具,它將覆蓋 IntelliSense 並顯示它自己的。 要改變這一點,在 VS 上,轉到 Extensions -> ReSharper -> Options -> IntelliSense -> General 然后選擇 Visual Studio 而不是 ReSharper。
在重新啟動和/或重新安裝 VS 之前,首先嘗試打開任何其他項目以查看 Intellisence 是否有效,如果有效,則問題可能在於您當前的項目。 首先,最可能的受害者是帶有待更新的 NUGET 包。 要解決此問題,
我嘗試了所有這些,但最終發現我需要在解決方案資源管理器中右鍵單擊解決方案並添加現有項目並在 Window 的資源管理器中找到 C# 程序集文件。 似乎有無數不同的問題會導致您出現此錯誤,這可能是最簡單的解決方案。 如果您從統一雙擊腳本,它似乎不會拖動程序集。
另一個可能的解決方法:
出於某種原因,這項工作。
嘗試組合: Ctrl + Alt + Space
“首選項”->“外部工具”->設置你的外部工具
那是一個修復。 同樣對於 VS,您可以使用 JetBrains 的 ReSharper,但我建議使用 Rider。 那個對學生也是免費的。 它提供的性能不如 Visual Studio,但絕對超過 VS+Resharper。
祝你有個美好的一天,伙計)
當我想編輯 C# Unity 腳本時,它們會在 Visual Studio 中打開。 它應該為所有與 Unity 相關的代碼提供自動完成功能,但它不起作用。
在這里您可以看到缺少的功能:
正如所見, transform
對象不會打開自動完成菜單。
統一版本:5.5.2f1
視覺工作室 2015
安裝了 Visual Studio Tools for Unity
當我想編輯 C# Unity 腳本時,它們會在 Visual Studio 中打開。 它應該為所有與 Unity 相關的代碼提供自動完成功能,但它不起作用。
在這里您可以看到缺少的功能:
正如所見, transform
對象不會打開自動完成菜單。
統一版本:5.5.2f1
視覺工作室 2015
安裝了 Visual Studio Tools for Unity
嗯,也許您可以將我的指南視為可選方法。 我在將 Unity 2020 與 Visual Studio Code 1.26 一起使用時遇到了這個問題要解決問題,我按照以下步驟操作:
which mono
來看看 Mono 在你的 Mac 中的安裝位置。 例如,在我的 Mac 中,它是/Library/Frameworks/Mono.framework/Versions/Current
"omnisharp.monoPath": "/Library/Frameworks/Mono.framework/Versions/Current",
"omnisharp.useGlobalMono": "always"
開始了....
如果您在 Microsoft Visual Studio 中使用 Resharper,則需要轉到“擴展 -> ReSharper -> 擴展管理器”並安裝擴展“Unity 支持”。 像魔術一樣工作!
從 Unity 中選擇Edit
選項,然后 ~> Preferences...
~> External Tools
,然后打開Built-In Packages
。 我嘗試了所有解決方案,只有這個對我有幫助,我偶然打開了它!
這解決了我在 Visual Studio 2022 中的項目的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.