Pelengkapan otomatis tidak berfungsi di Visual studio

151

Saya punya sedikit masalah dengan skrip. Ketika saya sedang menulis skrip C # untuk Unity dengan Visual studio sepertinya saya sedang bekerja di notepad, tidak ada pelengkapan otomatis (benar?) Dan saya harus menulisnya dengan sangat lambat.

Tolong, tonton videonya. Pada mulanya adalah situasi normal (dari tutorial), bagian kedua menunjukkan masalah saya.

Video bermasalah

Misalnya, transformkelas tidak menunjukkan saran atau pelengkapan otomatis.

Gambar dengan Masalah:

masukkan deskripsi gambar di sini

Versi kesatuan: 5.5.2f1
Visual studio 2015
Alat Visual Studio untuk Unity diinstal

CorbenDalas
sumber
1
translate.google.com :) Membuat video dan mengunggahnya ke YouTube untuk menjelaskan kesalahan +1 xd
Timon Post
Ok, A ll try... I have a Little problem with scripts. When Imenulis skrip C # untuk Unity dengan Visual studio sepertinya saya bekerja di notepad, tidak ada "tips" (betul?) Dan saya harus menulisnya dengan sangat lambat. Tolong, tonton videonya. Pada awalnya adalah situasi normal (dari tutorial), bagian kedua adalah masalah saya.
CorbenDalas
1
Saya akan mengatakan Anda bertanya tentang 'pelengkapan otomatis', bukan tooltips.
Martijn Pieters
Apa versi Visual Studio dan apa versi Unity?
Programmer
Versi Unity: 5.5.2f1 / Visual studio 2015 / Visual Studio Tools for Unity diinstal
CorbenDalas

Jawaban:

341

Tidak ada penyelesaian otomatis karena skrip mengatakan " File Lain-Lain ", bukan nama Proyek. Lihatlah gambar di bawah ini yang berasal dari video di pertanyaan Anda:

masukkan deskripsi gambar di sini

Pesan " File Lain-Lain " dapat terjadi karena berbagai alasan:

1. Ini bisa terjadi ketika Anda membuka file C # Unity Anda dari folder lain alih-alih membukanya dari Unity Editor.

2. Ini juga dapat terjadi karena Unity macet sementara Visual Studio masih terbuka sehingga merusak beberapa file.

3. Ini bisa terjadi karena Unity ditutup lalu dibuka kembali tetapi tidak lagi terhubung ke Visual Studio. Ketika Visual Studio dibuka, Anda mendapatkan " Miscellaneous Files " dan tidak ada penyelesaian otomatis.

4. Hal ini dapat terjadi ketika Visual Studio Tools for unity tidak diinstal.

5. Ketika Anda membuat skrip dari Unity, lalu cepat-cepat membukanya sebelum Unity selesai memprosesnya atau sebelum ikon bulat animasi selesai.


Sebagian besar waktu, memulai ulang Unity dan Visual Studio akan memperbaikinya.

Saya tidak tahu yang mana yang menyebabkan masalah tetapi saya akan membahas solusi yang paling mungkin untuk memperbaikinya.

Perbaiki Bagian 1 :

1. Unduh dan Instal Alat Visual Studio untuk persatuan dari tautan ini . Lakukan ini saat Unity dan Visual Studio keduanya ditutup.

2. Dari Unity Editor, buka Edit -> Preferences ... -> Tools Eksternal . Pada menu tarik-turun External Script Editor , ubah itu ke Visual Studio 2015 .

masukkan deskripsi gambar di sini


Perbaiki Bagian 2 :

Jika file C # yang baru dibuat muncul sebagai Miscellaneous kemudian ikuti instruksi di bawah ini:

1. Dari Visual Studio, buka Tools -> Options ... -> Tools for Unity -> Miscellaneous . Di bawah Tampilkan ikon konektivitas , atur untuk truelalu mulai ulang Visual Studio.

masukkan deskripsi gambar di sini

2. Ketika Anda memulai kembali, ikon koneksi sekarang harus tersedia di Visual Studio. Klik itu lalu pilih contoh Unity untuk terhubung. Ikon 'x' merah sekarang harus berubah menjadi ikon tanda centang coklat. Sekarang, ketika Anda membuat file C # baru di Unity, itu harus terbuka tanpa mengatakan Lain-lain .

masukkan deskripsi gambar di sini


Perbaiki Bagian 3 :

Masih belum diperbaiki?

Impor ulang proyek kemudian buka Proyek C #.

1. Tutup Visual Studio.

2. Dari Unity, impor kembali proyek dengan membuka Aset -> Impor Ulang Semua .

masukkan deskripsi gambar di sini

3. Sekarang, buka proyek di Visual Studio dengan pergi ke Aset -> Buka C # Project . Ini akan memuat ulang proyek dan memperbaiki kemungkinan masalah file solusi.

masukkan deskripsi gambar di sini


Perbaiki Bagian 4 :

Masih belum diperbaiki?

Perbaiki setiap file C # secara terpisah.

1. Klik ikon Tampilkan Semua File .

masukkan deskripsi gambar di sini

2. Pilih skrip yang tidak melakukan pelengkapan otomatis lalu klik kanan dan pilih Sertakan Dalam Proyek .

masukkan deskripsi gambar di sini


Perbaiki Bagian 5 :

Belum diperbaiki?

Penghargaan diberikan kepada chrisvarnz untuk solusi khusus ini yang tampaknya telah bekerja untuk banyak orang.

1. Tutup Visual Studio

2. Buka direktori proyek Anda dan hapus semua file Visual Studio yang dihasilkan.

Ini adalah ekstensi file yang akan dihapus:

  • .csproj
  • .user
  • .sln

Contoh:

Katakanlah nama Proyek Anda disebut "Target Shoot" , seperti inilah file yang akan dihapus:

  • Targetkan Shoot.csproj
  • Target Shoot.Editor.csproj
  • Target Shoot.Editor.csproj.user
  • Targetkan Shoot.Player.csproj
  • Target Shoot.Player.csproj.user
  • Target Shoot.sln

Jangan hapus yang lain.

3. Klik dua kali pada skrip lagi dari Unity yang akan menghasilkan file Visual Studio baru kemudian buka Visual Studio. Ini dapat menyelesaikan masalah Anda.


Perbaiki Bagian 6 :

Jika tidak berfungsi, periksa apakah Anda mengalami kesalahan ini :

Tugas "GetReferenceNearestTargetFrameworkTask" tidak ditemukan

1. Instal Package Nugget Manager dari sini .

2. Mulai kembali Visual Visual.

Lihat jawaban ini untuk informasi lebih lanjut.

Programmer
sumber
4
Terima kasih atas penunjuk file lainnya! Menutup VS, menghapus proyek VS dan sln, dan kemudian mengklik dua kali skrip di Unity (karena itu meregenerasi file proyek dan membuka kembali VS) memperbaikinya untuk saya. Saya akan merekomendasikan mencobanya sebelum tombol "masukkan kembali semua" karena itu adalah makan siang / malam untuk proyek non-sepele.
chrisvarnz
2
Itu saran yang bagus. Semoga siapa pun yang membaca ini dapat melihat komentar ini
Programmer
Ini paling sering disebabkan oleh membuat skrip baru atau memindahkannya ke folder yang berbeda dalam Unity. Setiap kali restart Unity dan VS tidak menyelesaikannya, saya juga menghapus *.csprojdan *.slnfile dan memulai Unity daripada. Ini biasanya berfungsi
derHugo
1
Solusi @chrisvarnz bekerja untuk saya setelah mencoba semua saran lainnya.
gollumullog
1
@ gollumullog Bagus. Karena itu berfungsi untuk banyak orang, saya telah memperbarui jawaban saya untuk juga memasukkan itu.
Programmer
38

Coba ini,

Di Unity Editor Buka Menu, Klik Edit -> Preferences -> Tools Eksternal -> Editor Script Eksternal. Atur ke Visual Studio (versi VS Anda yang terpasang).

Sekarang di Menubar pergi ke Edit -> Pengaturan Proyek -> Pengaturan Pemain -> Pengaturan Lainnya -> Di bawah Konfigurasi -> Periksa Tingkat Kompatibilitas API -> Ubah ke versi .Net yang diinstal. Dalam kasus saya, saya atur ke .Net 4.x

Sekarang jika Visual Studio berjalan sudah masuk ke Visual Studio, itu akan meminta untuk memuat ulang proyek. Muat ulang proyek. Periksa apakah itu berfungsi, jika tidak menutup Visual Studio. Sekarang buka file cs dari Unity Editor, dan sekarang seharusnya sudah berfungsi.

Juned Khan Momin
sumber
Sama untuk saya, terima kasih! Mencoba segalanya tetapi hanya ini yang memperbaikinya.
Shadowmak
1
ini adalah jawaban NYATA. Ini harus di atas!
Mark Purnell
Ini juga berhasil bagi saya. Juga, satu hal tambahan yang saya lakukan di Unity 2020.2.0a13 adalah hapus centang dan periksa lagi tanda di Edit / Pengaturan Proyek / Player / Pengaturan Lainnya: Auto Graphics API. Setelah restart Visual Studio, autocomplete kembali: D
Ant100
14

Saya menemukan cara lain untuk memperbaiki masalah ini dengan cara yang lebih nyaman:

  1. Pilih file yang rusak di Solution Explorer.
  2. Buka Properties-nya.
  3. Ganti bidang "Bangun Tindakan" dari "Kompilasi" ke "Tidak Ada".
  4. Kemudian alihkan kembali ke "Kompilasi".

Ini akan mematikan sinkronisasi antara Unity dan Visual Studio.

Waktu berikutnya Visual Studio akan memuat ulang proyek, itu akan meminta peringatan. Cukup klik "Buang".

Michaël Nguyen
sumber
7

Bongkar dan muat ulang proyek, di Visual Studio:

  • klik kanan proyek Anda di Solution Explorer
  • pilih Unload Project
  • pilih Muat Ulang Proyek

Tetap!

Saya menemukan solusi ini untuk bekerja yang terbaik (termudah), setelah mengalami masalah beberapa kali.

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

Xonatron
sumber
Terima kasih untuk bantuannya! Ini berhasil, tetapi saya merasa bahwa kami kembali di tahun 90-an dan kami harus memulai ulang Windows, hanya saja kali ini VS 2017.
user3053247
4
  1. Pilih proyek di Visual Studio
  2. Klik tombol "Refresh"

masukkan deskripsi gambar di sini

GLeBaTi
sumber
1
Wah! Tidak ada yang membantu saya; Instal ulang VS, bahkan instal ulang Unity sehingga menginstal ulang VS, hapus file .sln dan .cjsproj sehingga mereka dibuat ulang. tidak ada yang membantu .. tetapi akhirnya klik sederhana pada solusi explorer untuk memperlihatkan folder sepertinya melakukannya: o
antont
3

Jika Anda telah melakukan semua hal di atas dan masih tidak berfungsi, coba saja ini: Catatan: Anda harus memperbarui VS. Tangkapan layar dari studio visual

Kesatuan Goto> edit> preferensi> Alat eksternal> editor skrip eksternal. Tangkapan layar kesatuan Entah bagaimana bagi saya saya belum memilih "studio visual" untuk editor skrip eksternal dan itu tidak berfungsi. Segera setelah saya memilih ini dan klik dua kali pada file c # dari persatuan itu mulai bekerja.

Saya harap ini membantu Anda juga.

yOhaan
sumber
2

Saya mendapatkan masalah yang sama hari ini menggunakan Visual Studio 2017 15.4.5 dengan Unity 2017.

Saya bisa memperbaiki masalah dengan mengklik kanan pada proyek di Visual Studio dan mengubah kerangka target dari 3,5 menjadi 4,5.

Semoga ini bisa membantu orang lain dalam skenario yang sama.

singleton
sumber
2

Dua Pilihan Alternatif:

Perbaiki 1

@singleton menunjuk saya ke arah ini. Alih-alih mengubah target di Visual Studio Anda harus mengubahnya di Unity karena proyek dibuat secara otomatis.

Pertama menghapus file Visual Studio yang dihasilkan secara otomatis: .csproj .user .sln

Kemudian dari dalam Unity pergi ke PlayerSettings dan di bawah 'Pengaturan Lainnya' ubah 'Versi Runtime Scripting' dari Stable 3.5 ke Experimental 4.6.

Namun, itu tidak memperbaikinya bagi saya.

Perbaiki 2

Saya perhatikan semua referensi untuk kode terkait Unity ditandai dengan peringatan kuning. Periksa log kesalahan Anda dan lihat apakah ini masalahnya. Khususnya lihat apakah Anda mendapatkan kesalahan berikut: getreferenceNearestTargetframeworkTask

Jika demikian coba: Mulai lagi Visual Studio Installer.

Pada Alat Bangun 2017, klik Ubah,

Pastikan bahwa "target Nuget dan bangun tugas" dicentang. Ini harus dicentang jika Anda mengklik pengembangan Universal Windows Platform.

ickydime
sumber
1

saya menemukan solusi saya dengan membuat file .cs dari visual studio itu sendiri, bukan editor persatuan

  • klik kanan pada folder proyek di solution explorer
  • tambahkan> item baru
  • ketik "unity" pada bidang pencarian di kanan atas
  • pilih "CSharp MonoBehaviour"
  • beri nama skrip Anda di bagian bawah dan klik Tambah
Fredy Rommy Sianturi
sumber
1
Bagaimana jika Anda sudah membuat skrip tetapi tiba-tiba, masalah ini muncul, apakah Anda akan menghapus semua skrip dan membuatnya lagi dari Visual Studio?
Programmer
@Programmer, saya akan menggunakan solusi Bagian 4 Anda untuk memperbaiki skrip yang sudah ada tetapi saya selalu menggunakan studio visual untuk membuat skrip baru karena tidak ada solusi Anda menghentikan skrip baru dari mendapatkan kesalahan kecuali saya membuat file dari studio visual
Fredy Rommy Sianturi
1

Dalam kasus saya, versi .net yang benar tidak diinstal pada PC saya. Saya menginstal. Net 3.5 pada pc saya dan itu berhasil untuk saya.

Habibur Rahman Ovie
sumber
Jawaban Anda memberi saya Gagasan untuk Mengubah Tingkat Kompatibilitas API di Pengaturan Unity Player dari .Net 2.0 ke .Net 4.x. Dan kemudian memuat kembali proyek di Visual Studio. Sekarang semuanya bekerja dengan baik.
Juned Khan Momin
1

Masalah yang saya hadapi adalah bahwa Proyek C # menargetkan .NET Framework (4.7.2) yang berbeda, sedangkan proyek Unity memiliki target yang berbeda (.NET 3.5).

Saya memperbaikinya dengan mengubah target di Unity as-

File -> Pengaturan Bangun -> Pengaturan Pemain -> Pengaturan Lainnya -> Tingkat Kompatibilitas API: Setel ke versi .NET yang telah Anda instal (Periksa Versi .NET Anda di sini ). Dalam kasus saya, itu 4.x

Setelah ini, Visual Studio bekerja dengan sempurna dan koreksi otomatis diperbaiki juga.

rkbroach
sumber
Ini berhasil untuk saya. Saya mengubah Tingkat Kompatibilitas API saya menjadi .Net 4.x, dan kemudian Visual Studio meminta untuk memuat ulang Proyek. Saya memuat ulang proyek. Lalu saya menutup Visual Studio, Membuka file cs dari Unity Editor dan sekarang semuanya berfungsi dengan baik.
Juned Khan Momin
1

Coba tekan Ctrl + Alt + Space(yang berganti-ganti antara saran dan mode penyelesaian standar)

maitrunghieuit
sumber
0

Untuk Windows atau macOS:

Unduh / Instal Visual Studio IDE (dengan Unity Tools)

Saat memasang, pastikan Anda menyertakan instalasi

Pengembangan game dengan Unity

masukkan deskripsi gambar di sini

Kemudian menggunakan Unity (Anda dapat mengklik dua kali salah satu file C # Anda), buka proyek C # baru dan Visual Studio IDE akan terbuka dengan struktur proyek baru Anda.

masukkan deskripsi gambar di sini

Dari sana, Anda harus dapat melihat apa yang Anda cari.

Sebagai contoh:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Untuk Linux (saran):

Coba Monodevelop - Informasi Tambahan , ini memberikan penyelesaian / petunjuk kode.

Brien Foss
sumber
0

Saya memutuskan untuk menginstal versi .NET yang sama pada WIN yang dikonfigurasi dalam proyek Unity saya. (Pengaturan Player)

Bruno Araujo
sumber
0

Autocomplete saya juga tidak berfungsi karena Visual Studio Tools for Unity tidak diinstal. Jadi, setelah Anda menginstalnya, hapus file Visual Studio yang dibuat secara otomatis. Yang lain mengatakan bahwa Anda membuka file lagi dan masalahnya selesai tetapi tidak.

Caranya adalah: alih-alih mengklik dua kali file secara normal, Anda perlu membuka file C # dari Unity dengan klik kanan lalu "Open C # Project".

Thayakorn Rakwetpakorn
sumber
0

Tidak ada solusi di atas yang berfungsi untuk saya. Namun saya membuka file ProjectName.CSPROJ dan secara manual menambahkan file baru dan itu berfungsi seperti pesona

Sebinjude Shaolin
sumber
0
  • Buka Opsi pada menu Alat dan kemudian pilih Dokumen di simpul Lingkungan. (Jika Dokumen tidak muncul dalam daftar, pilih Tampilkan semua pengaturan di kotak dialog Opsi.)
  • Beri tanda centang pada "File lain-lain di Solution Explorer" dan Klik OK. (Pilihan ini menampilkan simpul "File Lain-Lain" di Solution Explorer. File lain-lain adalah file yang tidak terkait dengan proyek atau solusi tetapi dapat muncul di Solution Explorer untuk kenyamanan Anda jika Anda mencentang opsi ini.)
  • Temukan file Anda di Solution Explorer di bawah "Miscellaneous Files". Kemudian seret dan taruh file Anda ke tempat seharusnya dan voila! Ini akan menyalin file ke tempat Anda menjatuhkannya. Anda sekarang dapat menghapus file yang lebih lama dengan aman di folder Miscellaneous Files jika Anda ingin melakukannya

Kredit: https://stackoverflow.com/a/47662523/10471480


Jika folder Script tidak terlihat:

  • Klik "Tampilkan semua file" di Solution Explorer
  • Temukan folder Script.
  • Klik kanan pada Skrip dan pilih "Sertakan dalam Proyek"
Mangaldeep Pannu
sumber
0

Apa yang berhasil saya adalah bahwa saya menyalin semua kode di dalam kelas yang rusak dan menghapus file itu. Kemudian, saya membuka file kosong dan menempel.

Hasil : highlight sintaks yang indah kembali!

Eray Alparslan
sumber
0

Ingatlah bahwa jika Anda menggunakan alat ReSharper, itu akan menggantikan IntelliSense dan menunjukkannya sendiri. Untuk mengubahnya, pada VS, buka Extensions -> ReSharper -> Options -> IntelliSense -> General lalu pilih Visual Studio dan bukan ReSharper.

pengguna11897507
sumber
0

Sebelum memulai kembali dan / atau menginstal ulang VS, Pertama coba buka proyek Anda yang lain untuk melihat apakah Intellisence berfungsi, jika itu terjadi, maka masalah mungkin terletak pada proyek Anda saat ini. Pertama, korban yang paling mungkin adalah paket NUGET dengan pembaruan yang tertunda. Untuk Memperbaiki ini,

  1. Klik kanan pada referensi
  2. Lanjutkan untuk Mengelola Paket NUGET Di Bawah Paket NUGET
  3. lanjutkan ke pembaruan Instal Pembaruan dan periksa kembali Intellisence
David.Ambuka
sumber
0

Saya mencoba semua ini tetapi akhirnya menemukan bahwa saya perlu mengklik kanan solusi di Solution Explorer dan menambahkan item yang ada dan menemukan file perakitan C # di Window's Explorer. Tampaknya ada bazillion masalah berbeda yang memberi Anda kesalahan ini, ini mungkin solusi yang paling sederhana. Jika Anda mengklik dua kali pada skrip Anda dari unity, sepertinya tidak menyeret majelis.

Kevin Martin
sumber
0

salah satu metode di atas bekerja untuk saya dan saya baru saja menemukan solusi untuk masalah ini,
1. Pertama, buka direktori proyek dan hapus .slnfile
2. Kedua, pergi ke unity dan klik dua kali skrip Anda. Kemudian Visual Studio akan terbuka dengan kesalahan, masukkan deskripsi gambar di sini

  1. Kemudian klik ok dan tutup editor Visual Studio.
  2. Akhirnya, matikan Windows Defender Anda dan kemudian pergi ke direktori proyek Anda dan akan ada .csprojfile. Cukup klik dua kali dan buka ini dari editor Visual Studio Anda dan buka folder skrip di dalam folder aset dan buka skrip dan pelengkapan otomatis akan berfungsi dengan baik.
Indrajith Ekanayake
sumber
0

Perbarui 2020 dengan Visual Studio Community 2019 dan Unity 2019.3:

1) Buka Visual Studio Installer sebagai Administrator, pilih untuk memodifikasi instalasi Anda saat ini dan menambahkan "Pengembangan game untuk Persatuan"

2) Jika Anda menambahkan skrip c # baru di Unity sekarang, dan membukanya (secara otomatis) dengan Visual Studio, itu tidak digambarkan sebagai "Lain-lain" di bagian atas jendela tetapi dengan "Assembly-CSharp", dan autocomplete berfungsi.

Andi Schroff
sumber
0

Kemungkinan perbaikan lain:

  1. Di jendela proyek, klik pada folder Aset
  2. Klik kanan, dan Buat -> Skrip C #
  3. Klik dua kali, dan tunggu.

Untuk beberapa alasan, ini berfungsi.

Kale_Surfer_Dude
sumber
-1

Coba dengan kombinasi: Ctrl + Alt + Space

Barna Kadar
sumber