Tự động hoàn thành không hoạt động trong Visual studio


150

Tôi có một vấn đề nhỏ với các kịch bản. Khi tôi viết tập lệnh C # cho Unity với Visual studio, có vẻ như tôi đang làm việc trong notepad, không có tự động hoàn thành (đúng không?) Và tôi phải viết nó rất chậm.

Xin vui lòng, xem video. Lúc bắt đầu là tình huống bình thường (từ hướng dẫn), phần thứ hai cho thấy vấn đề của tôi.

Video có vấn đề

Ví dụ, transformlớp không hiển thị đề xuất hoặc tự động hoàn thành.

Hình ảnh có vấn đề:

nhập mô tả hình ảnh ở đây

Phiên bản Unity: 5.5.2f1
Visual studio 2015
Công cụ Visual Studio cho Unity được cài đặt


1
translate.google.com :) Tạo video và tải nó lên YouTube để mô tả lỗi +1 xd
Timon Post

Ok, tôi đang ll try... I have a Little problem with scripts. When Iviết kịch bản C # cho Unity với Visual studio, có vẻ như tôi đang làm việc trong notepad, không có "mẹo" (chính xác?) Và tôi phải viết nó rất chậm. Xin vui lòng, xem video. Lúc bắt đầu là tình huống bình thường (từ hướng dẫn), phần thứ hai là vấn đề của tôi.
CorbenDalas

1
Tôi muốn nói rằng bạn đang hỏi về 'tự động hoàn thành', không phải là chú giải công cụ.
Martijn Pieters

Phiên bản Visual Studio nào và phiên bản Unity nào?
Lập trình viên

Phiên bản Unity: 5.5.2f1 / Visual studio 2015 / Visual Studio Tools for Unity được cài đặt
CorbenDalas

Câu trả lời:


339

Không có tự động hoàn thành vì tập lệnh nói " Tệp khác " thay vì tên của Dự án. Hãy xem hình ảnh dưới đây xuất phát từ video trong câu hỏi của bạn:

nhập mô tả hình ảnh ở đây

Thông báo " Tệp khác " có thể xảy ra vì nhiều lý do:

1. Nó có thể xảy ra khi bạn mở tệp Unity C # của mình từ một thư mục khác thay vì mở nó từ Unity Editor.

2. Điều này cũng có thể xảy ra vì Unity bị sập trong khi Visual Studio vẫn đang mở do đó làm hỏng một số tệp.

3. Điều đó có thể xảy ra vì Unity đã bị đóng rồi mở lại nhưng không còn kết nối với Visual Studio. Khi Visual Studio được mở, bạn nhận được " Tệp khác " và không tự động hoàn thành.

4 Điều này có thể xảy ra khi Visual Studio Tools cho sự thống nhất chưa được cài đặt.

5. Khi bạn tạo tập lệnh từ Unity, sau đó nhanh chóng mở nó trước khi Unity xử lý xong tập lệnh hoặc trước khi công cụ biểu tượng hoạt hình tròn kết thúc hoạt hình.


Hầu hết các lần, khởi động lại Unity và Visual Studio sẽ khắc phục điều này.

Tôi không thể biết cái nào gây ra sự cố nhưng tôi sẽ đề cập đến giải pháp khả thi nhất để khắc phục vấn đề này.

Sửa phần 1 :

1. Tải xuống và Cài đặt Công cụ Visual Studio để thống nhất từ liên kết này . Làm điều này trong khi Unity và Visual Studio đều đóng cửa.

2. Từ Unity Editor, chuyển đến Chỉnh sửa -> Tùy chọn ... -> Công cụ bên ngoài . Trên menu thả xuống Trình biên tập tập lệnh bên ngoài , hãy đổi nó thành Visual Studio 2015 .

nhập mô tả hình ảnh ở đây


Sửa phần 2 :

Nếu các tệp C # mới được tạo sắp tới là Khác thì hãy làm theo hướng dẫn bên dưới:

1. Từ Visual Studio, đi đến Công cụ -> Tùy chọn ... -> Công cụ cho sự thống nhất -> Khác . Trong Hiển thị biểu tượng kết nối , đặt nó để truesau đó khởi động lại Visual Studio.

nhập mô tả hình ảnh ở đây

2. Khi bạn khởi động lại, biểu tượng kết nối sẽ có sẵn trong Visual Studio. Nhấp vào nó sau đó chọn đối tượng Unity để kết nối. Biểu tượng 'x' màu đỏ bây giờ sẽ chuyển thành biểu tượng dấu kiểm màu nâu. Bây giờ, khi bạn tạo tệp C # mới trong Unity, nó sẽ mở mà không cần nói linh tinh .

nhập mô tả hình ảnh ở đây


Sửa phần 3 :

Vẫn chưa sửa?

Nhập lại dự án sau đó mở Dự án C #.

1. Đóng cửa Studio trực quan.

2. Từ Unity, nhập lại dự án bằng cách vào Tài sản -> Nhập lại tất cả .

nhập mô tả hình ảnh ở đây

3. Bây giờ, hãy mở dự án trong Visual Studio bằng cách đi tới Tài sản -> Mở Dự án C # . Điều này sẽ tải lại dự án và khắc phục các sự cố tệp giải pháp có thể.

nhập mô tả hình ảnh ở đây


Sửa phần 4 :

Vẫn chưa sửa?

Sửa từng tệp C # riêng lẻ.

1. Nhấp vào biểu tượng Hiển thị tất cả tệp .

nhập mô tả hình ảnh ở đây

2. Chọn tập lệnh không tự động hoàn tất, sau đó nhấp chuột phải và chọn Bao gồm trong dự án .

nhập mô tả hình ảnh ở đây


Sửa phần 5 :

Chưa sửa xong?

Tín dụng cho chrisvarnz cho giải pháp đặc biệt này dường như đã làm việc cho nhiều người.

1. Đóng cửa Studio

2. Đi thư mục dự án của bạn và xóa tất cả các tệp Visual Studio được tạo.

Đây là những phần mở rộng tập tin cần xóa:

  • .csproj
  • .người sử dụng
  • .sln

Thí dụ:

Giả sử tên của Dự án của bạn được gọi là "Bắn mục tiêu" , đây là những gì các tệp cần xóa sẽ trông như sau:

  • Mục tiêu Shoot.csproj
  • Bắn mục tiêu.Editor.csproj
  • Bắn mục tiêu.Editor.csproj.user
  • Bắn mục tiêu.Player.csproj
  • Bắn mục tiêu.Player.csproj.user
  • Bắn mục tiêu

Đừng xóa bất cứ điều gì khác.

3. Đôi khi nhấp vào tập lệnh một lần nữa từ Unity để tạo tệp Visual Studio mới, sau đó mở Visual Studio. Điều này có thể giải quyết vấn đề của bạn.


Sửa phần 6 :

Nếu không hoạt động, hãy kiểm tra xem bạn có gặp lỗi này không :

Không tìm thấy tác vụ "GetReferenceNearestTargetFrameworkTask"

1 .Install NuGet PackageManager từ đây .

2. Bắt đầu trực quan trực quan.

Xem câu trả lời này để biết thêm thông tin.


4
Cảm ơn các con trỏ tập tin linh tinh! Đóng VS, xóa các dự án VS và sln, sau đó bấm đúp vào tập lệnh trong Unity (do đó tạo lại các tệp dự án và mở lại VS) đã sửa nó cho tôi. Tôi khuyên bạn nên thử trước nút "nhập lại tất cả" vì đó là bữa trưa / qua đêm cho các dự án không tầm thường.
chrisvarnz

2
Đó là một lời khuyên tốt. Hy vọng bất cứ ai đọc nó có thể thấy bình luận này
Lập trình viên

Điều này thường xảy ra do tạo tập lệnh mới hoặc di chuyển chúng vào các thư mục khác nhau trong Unity. Bất cứ khi nào khởi động lại Unity và VS không giải quyết nó, tôi simoly cũng xóa *.csproj*.slnfile và bắt đầu Unity hơn. Điều này thường hoạt động
derHugo

1
Giải pháp @chrisvarnz làm việc cho tôi sau khi thử tất cả các đề xuất khác.
gollumullog

1
@gollumullog Tốt. Vì điều đó đã làm việc cho nhiều người, tôi đã cập nhật câu trả lời của mình để bao gồm điều đó.
Lập trình viên

37

Thử cái này,

Trong Unity Editor Chuyển đến Menu, Nhấp vào Chỉnh sửa -> Tùy chọn -> Công cụ bên ngoài -> Trình chỉnh sửa tập lệnh bên ngoài. Đặt nó vào Visual Studio (phiên bản VS đã cài đặt của bạn).

Bây giờ trong Menubar, đi tới Chỉnh sửa -> Cài đặt dự án -> Cài đặt trình phát -> Cài đặt khác -> Trong Cấu hình -> Kiểm tra mức độ tương thích API -> Thay đổi thành phiên bản .Net đã cài đặt của bạn. Trong trường hợp của tôi, tôi đặt nó thành .Net 4.x

Bây giờ nếu Visual Studio đang chạy đã đi đến Visual Studio, nó sẽ yêu cầu tải lại dự án. Tải lại dự án. Kiểm tra nếu nó hoạt động, nếu không đóng Visual Studio. Bây giờ Mở tệp cs từ Unity Editor, và bây giờ nó sẽ hoạt động.


Tương tự cho tôi, cảm ơn bạn! Đã thử tất cả mọi thứ nhưng chỉ có điều này cố định nó.
Shadowmak

1
Đây là câu trả lời THỰC SỰ. Điều này cần phải được đứng đầu!
Mark Purnell

Điều này làm việc cho tôi quá. Ngoài ra, một điều nữa tôi đã làm trong Unity 2020.2.0a13 là bỏ chọn và kiểm tra lại nhãn hiệu tại Chỉnh sửa / Cài đặt dự án / Trình phát / Cài đặt khác: API đồ họa tự động. Sau khi khởi động lại Visual Studio, tự động hoàn tất đã trở lại: D
Ant100

14

Tôi đã tìm thấy một cách khác để khắc phục vấn đề này theo cách thuận tiện hơn:

  1. Chọn tệp bị hỏng trong Solution Explorer.
  2. Mở thuộc tính của nó.
  3. Chuyển trường "Xây dựng hành động" từ "Biên dịch" sang "Không".
  4. Sau đó chuyển nó trở lại thành "Biên dịch".

Điều này sẽ giết chết sự đồng bộ giữa Unity và Visual Studio bằng cách nào đó.

Lần sau Visual Studio sẽ tải lại dự án, nó sẽ nhắc cảnh báo. Chỉ cần nhấp vào "Hủy".


7

Dỡ bỏ và tải lại dự án, trong Visual Studio:

  • bấm chuột phải vào dự án của bạn trong Solution Explorer
  • chọn dỡ tải dự án
  • chọn Tải lại dự án

Đã sửa!

Tôi tìm thấy giải pháp này để làm việc tốt nhất (dễ nhất), đã gặp phải vấn đề nhiều lần.

Nguồn: https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/


Cảm ơn đã giúp đỡ! Điều này đã hoạt động, nhưng tôi cảm thấy rằng chúng tôi đã trở lại vào thập niên 90 và chúng tôi cần khởi động lại Windows, chỉ lần này là VS 2017.
user3053247

4
  1. Chọn dự án trong Visual Studio
  2. Nhấp vào nút "Làm mới"

nhập mô tả hình ảnh ở đây


1
Ái chà! Không có gì khác giúp tôi; Cài đặt lại VS, thậm chí cài đặt lại Unity để cài đặt lại VS, xóa các tệp .sln và .cjsproj để chúng được tạo lại. không có gì giúp được .. nhưng cuối cùng, một cú nhấp chuột đơn giản vào trình khám phá giải pháp để hiển thị các thư mục dường như làm điều đó: o
antont

3

Nếu bạn đã thực hiện tất cả các cách trên mà vẫn không hoạt động, chỉ cần thử điều này: Lưu ý: bạn nên cập nhật VS. Ảnh chụp màn hình từ studio hình ảnh

Goto Unity> chỉnh sửa> tùy chọn> Công cụ bên ngoài> Trình chỉnh sửa tập lệnh bên ngoài. Ảnh chụp màn hình đoàn kết Bằng cách nào đó đối với tôi, tôi đã không chọn "studio hình ảnh" cho trình chỉnh sửa tập lệnh bên ngoài và nó không hoạt động. Ngay sau khi tôi chọn cái này và nhấp đúp vào tập tin c # từ sự thống nhất, nó bắt đầu hoạt động.

Tôi hy vọng nó cũng giúp bạn.


2

Tôi đã gặp vấn đề tương tự ngày hôm nay khi sử dụng Visual Studio 2017 15.4.5 với Unity 2017.

Tôi đã có thể khắc phục sự cố bằng cách nhấp chuột phải vào dự án trong Visual Studio và thay đổi khung mục tiêu từ 3,5 sang 4,5.

Hy vọng điều này sẽ giúp bất cứ ai khác trong một kịch bản tương tự.


2

Hai lựa chọn thay thế:

Sửa 1

@singleton chỉ tôi theo hướng này. Thay vì thay đổi mục tiêu trong Visual Studio, bạn nên thay đổi mục tiêu trong Unity vì dự án được tạo tự động.

Đầu tiên xóa các tệp Visual Studio được tạo tự động: .csproj .user .sln

Sau đó, từ bên trong Unity, chuyển đến PlayerS Settings và trong 'Cài đặt khác' thay đổi 'Phiên bản thời gian chạy tập lệnh' từ Ổn định 3.5 thành Thử nghiệm 4.6.

Tuy nhiên, điều đó đã không sửa chữa nó cho tôi.

Sửa 2

Tôi nhận thấy tất cả các tham chiếu đến mã liên quan đến Unity được đánh dấu bằng một cảnh báo màu vàng. Kiểm tra nhật ký lỗi của bạn và xem nếu đây là trường hợp. Cụ thể hãy xem nếu bạn gặp lỗi sau: getreferenceNearestTargetframeworkTask

Nếu vậy hãy thử: Khởi động lại Visual Studio Installer.

Trên Công cụ xây dựng 2017, nhấp vào Sửa đổi,

Đảm bảo rằng "mục tiêu Nuget và nhiệm vụ xây dựng" được đánh dấu. Điều này sẽ bị đánh dấu nếu bạn nhấp vào phát triển Nền tảng Windows phổ quát.


1

tôi đã tìm thấy giải pháp của mình bằng cách tạo tệp .cs từ chính studio trực quan thay vì trình soạn thảo thống nhất

  • nhấp chuột phải vào thư mục dự án trong giải pháp thám hiểm
  • thêm> mục mới
  • nhập "thống nhất" trên trường tìm kiếm ở trên cùng bên phải
  • chọn "CSharp MonoBehaviour"
  • Đặt tên cho tập lệnh của bạn ở phía dưới và nhấp vào Thêm

1
Điều gì sẽ xảy ra nếu bạn đã tạo các tập lệnh nhưng đột nhiên, vấn đề này phát sinh, bạn sẽ xóa tất cả các tập lệnh và tạo lại chúng từ Visual Studio?
Lập trình viên

@ Programmer tôi sẽ sử dụng giải pháp Phần 4 của bạn để sửa tập lệnh đã có lỗi nhưng tôi luôn sử dụng visual studio để tạo tập lệnh mới vì không có giải pháp nào của bạn ngăn tập lệnh mới bị lỗi trừ khi tôi tạo tập tin từ visual studio
Fredy Rommy Sianturi

1

Trong trường hợp của tôi, phiên bản .net chính xác không được cài đặt trên PC của tôi. Tôi cài đặt .net 3.5 trên máy tính của mình và nó hoạt động với tôi.


Câu trả lời của bạn đã cho tôi Ý tưởng thay đổi cấp độ tương thích API trong Cài đặt trình phát Unity từ .Net 2.0 thành .Net 4.x. Và sau đó tải lại dự án trong Visual Studio. Bây giờ mọi thứ hoạt động tốt.
Juned Khan Momin

1

Vấn đề tôi gặp phải là Dự án C # đang nhắm mục tiêu một .NET Framework khác (4.7.2), trong khi dự án Unity có một mục tiêu khác (.NET 3.5).

Tôi đã sửa lỗi này bằng cách thay đổi mục tiêu trong Unity as-

Tệp -> Cài đặt bản dựng -> Cài đặt trình phát -> Cài đặt khác -> Mức tương thích API: Đặt nó thành phiên bản .NET bạn đã cài đặt (Kiểm tra phiên bản .NET của bạn tại đây ). Trong trường hợp của tôi, nó là 4.x

Sau này, Visual Studio đã hoạt động hoàn hảo và tự động sửa lỗi cũng được sửa.


Điều này làm việc cho tôi. Tôi đã thay đổi Cấp độ tương thích API của mình thành .Net 4.x và sau đó Visual Studio yêu cầu Tải lại Dự án. Tôi tải lại dự án. Sau đó, tôi đóng Visual Studio, mở tệp cs từ Unity Editor và bây giờ mọi thứ đều hoạt động tốt.
Juned Khan Momin

1

Hãy thử nhấn Ctrl + Alt + Space(chuyển đổi giữa chế độ hoàn thành đề xuất và tiêu chuẩn)


0

Đối với Windows hoặc macOS:

Tải xuống / Cài đặt Visual Studio IDE (với Unity Tools)

Khi cài đặt, đảm bảo bạn bao gồm cài đặt

Phát triển trò chơi với Unity

nhập mô tả hình ảnh ở đây

Sau đó, sử dụng Unity (bạn có thể nhấp đúp vào một trong các tệp C # của mình), mở dự án C # mới và Visual Studio IDE sẽ mở với cấu trúc dự án mới của bạn.

nhập mô tả hình ảnh ở đây

Từ đó, bạn sẽ có thể thấy những gì bạn đang tìm kiếm.

Ví dụ:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Đối với Linux (đề xuất):

Hãy thử Monodevelop - Thông tin bổ sung , nó cung cấp hoàn thành / gợi ý mã.


0

Tôi đã giải quyết để cài đặt cùng một phiên bản .NET trên WIN được cấu hình trong dự án Unity của tôi. (Cài đặt trình phát)


0

Tự động hoàn tất của tôi cũng không hoạt động vì Visual Studio Tools for Unity chưa được cài đặt. Vì vậy, sau khi bạn cài đặt xong, hãy xóa các tệp Visual Studio được tạo tự động. Những người khác nói rằng bạn mở lại tệp và vấn đề đã được giải quyết nhưng không được.

Mẹo nhỏ là: thay vì nhấp đúp vào tệp, bạn cần mở tệp C # từ Unity bằng cách nhấp chuột phải và sau đó "Mở dự án C #".


0

Không có giải pháp nào ở trên làm việc cho tôi. Tuy nhiên, tôi đã mở tệp ProjectName.CSPROJ và thêm thủ công tệp mới và nó hoạt động như bùa mê


0
  • Đi đến Tùy chọn trên menu Công cụ, sau đó chọn Tài liệu trong nút Môi trường. (Nếu Tài liệu không xuất hiện trong danh sách, hãy chọn Hiển thị tất cả cài đặt trong hộp thoại Tùy chọn.)
  • Đánh dấu vào "Các tệp khác trong Solution Explorer" và nhấp vào OK. (Tùy chọn này hiển thị nút "Tệp khác" trong Solution Explorer. Các tệp khác là các tệp không được liên kết với dự án hoặc giải pháp nhưng có thể xuất hiện trong Solution Explorer để thuận tiện nếu bạn đánh dấu tùy chọn này.)
  • Định vị tệp của bạn trong Solution Explorer trong "Tệp khác". Sau đó kéo và thả tệp của bạn đến nơi cần thuộc về và thì đấy! Điều này sẽ sao chép các tập tin vào nơi bạn thả nó. Bây giờ bạn có thể xóa tệp cũ một cách an toàn trong thư mục Tệp khác nếu bạn muốn làm như vậy

Tín dụng: https://stackoverflow.com/a/47662523/10471480


Trong trường hợp thư mục ScScript không hiển thị:

  • Nhấp vào "Hiển thị tất cả các tệp" trong Solution Explorer
  • Xác định vị trí thư mục ScScript.
  • Nhấp chuột phải vào Tập lệnh và chọn "Bao gồm trong dự án"

0

Điều làm việc với tôi là tôi đã sao chép tất cả mã bên trong lớp bị hỏng và xóa tệp đó. Sau đó, tôi mở một tập tin trống và dán.

Kết quả : cú pháp nổi bật đẹp đã trở lại!


0

Hãy nhớ rằng nếu bạn đang sử dụng công cụ ReSharper, nó sẽ ghi đè lên IntelliSense và hiển thị nó. Để thay đổi điều đó, trên VS, đi tới Tiện ích mở rộng -> ReSharper -> Tùy chọn -> IntelliSense -> Chung sau đó chọn Visual Studio và không ReSharper.


0

Trước khi khởi động lại và / hoặc cài đặt lại VS, Đầu tiên hãy thử mở bất kỳ dự án nào khác của bạn để xem Intellisence có hoạt động không, nếu có, thì vấn đề có lẽ nằm ở dự án hiện tại của bạn. Đầu tiên, hầu hết nạn nhân có thể xảy ra sẽ là các gói NUGET với các bản cập nhật đang chờ xử lý. Để khắc phục điều này,

  1. Nhấp chuột phải vào tài liệu tham khảo
  2. Tiến hành quản lý các gói NUGET trong các gói NUGET
  3. tiến hành cập nhật Cài đặt Cập nhật và kiểm tra lại Intellisence

0

Tôi đã thử tất cả những thứ này nhưng cuối cùng phát hiện ra rằng tôi cần nhấp chuột phải vào giải pháp trong Solution Explorer và thêm các mục hiện có và tìm tệp lắp ráp C # trong Window's Explorer. Dường như có một số vấn đề khác nhau gây ra lỗi này, đây có thể là giải pháp đơn giản nhất. Nếu bạn nhấp đúp chuột vào tập lệnh của bạn từ sự thống nhất, nó dường như không kéo theo tập hợp.


0

một trong những phương pháp trên được áp dụng cho tôi và tôi vừa tìm ra giải pháp cho vấn đề này,
1. Đầu tiên, vào thư mục dự án và xóa .slntệp
2. Thứ hai, đi đến thống nhất và nhấp đúp vào tập lệnh của bạn. Sau đó, Visual Studio sẽ được mở với một lỗi, nhập mô tả hình ảnh ở đây

  1. Sau đó bấm ok và đóng trình soạn thảo Visual Studio.
  2. Cuối cùng, tắt Windows Defender của bạn và sau đó vào thư mục dự án của bạn và sẽ có .csprojtệp. Chỉ cần nhấp đúp chuột và mở tệp này từ trình soạn thảo Visual Studio của bạn và mở thư mục tập lệnh bên trong thư mục tài sản và mở tập lệnh và tự động hoàn thành sẽ hoạt động rất tốt.

0

Cập nhật 2020 với Visual Studio Community 2019 và Unity 2019.3:

1) Mở Trình cài đặt Visual Studio với tư cách Quản trị viên, chọn để sửa đổi cài đặt hiện tại của bạn và thêm "Phát triển trò chơi cho Unity"

2) Nếu bây giờ bạn thêm tập lệnh c # mới trong Unity và mở nó (tự động) bằng Visual Studio, thì nó không được mô tả là "Khác" ở đầu cửa sổ mà với "Hội-CSharp" và tự động hoàn tất hoạt động.


0

Một cách khắc phục khác:

  1. Trong cửa sổ dự án, nhấp vào thư mục Tài sản
  2. Nhấp chuột phải và Tạo -> C # Script
  3. Nhấp đúp chuột vào đó và chờ đợi.

Vì một số lý do, công việc này.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.