Otomatik tamamlama Visual Studio'da çalışmıyor


152

Senaryolarla ilgili küçük bir problemim var. Unity with Visual studio için C # betikleri yazarken not defterinde çalışıyormuşum gibi görünüyor, otomatik tamamlama yok (doğru mu?) Ve çok yavaş yazmalıyım.

Lütfen videoyu izleyin. Başlangıçta normal durum (öğreticiden), ikinci bölüm sorunumu gösteriyor.

Sorunlu video

Örneğin, transformsınıf öneri veya otomatik tamamlama göstermez.

Sorunlu Görüntü:

görüntü açıklamasını buraya girin

Unity sürümü: 5.5.2f1
Visual studio 2015
Unity için Visual Studio Araçları yüklü


1
translate.google.com :) Hatayı açıklamak için bir video hazırlayıp YouTube'a yükleyerek +1 xd
Timon Post

Tamam, ll try... I have a Little problem with scripts. When IUnity with Visual studio için C # betikleri yazıyorum, not defterinde çalışıyorum gibi görünüyor, "ipuçları" yok (doğru mu?) Ve çok yavaş yazmalıyım. Lütfen videoyu izleyin. Başlangıçta normal durum (öğreticiden), ikinci kısım benim sorunum.
CorbenDalas

1
Araç ipuçları değil, 'otomatik tamamlama' hakkında soru sorduğunuzu söyleyebilirim.
Martijn Pieters

Hangi Visual Studio sürümü ve hangi Unity sürümü?
Programcı

Unity sürümü: 5.5.2f1 / Visual studio 2015 / Visual Studio Tools for Unity yüklendi
CorbenDalas

Yanıtlar:


345

Komut dosyası , Proje adı yerine " Çeşitli Dosyalar " yazdığından otomatik tamamlama yoktur . Sorunuzdaki videodan gelen aşağıdaki resme bir göz atın:

görüntü açıklamasını buraya girin

" Çeşitli Dosyalar " mesajı birçok nedenden dolayı ortaya çıkabilir:

1. Unity C # dosyanızı Unity Editor'dan açmak yerine başka bir klasörden açtığınızda gerçekleşebilir.

2 Bu durum, Visual Studio hala açıkken Unity'nin çökmesi nedeniyle bazı dosyaları bozması nedeniyle de olabilir.

3. Unity kapatılıp yeniden açıldığı için ancak artık Visual Studio'ya bağlı olmadığı için olabilir. Visual Studio açıldığında " Çeşitli Dosyaları " alırsınız ve otomatik tamamlama olmaz.

4. Bu, Unity için Visual Studio Araçları yüklü olmadığında ortaya çıkabilir .

5. Unity'den bir komut dosyası oluşturduğunuzda, Unity onu işlemeyi bitirmeden veya yuvarlak simge animasyon öğeleri animasyonu bitirmeden önce hızlıca açın.


Çoğu zaman, Unity ve Visual Studio'nun yeniden başlatılması bunu düzeltmelidir.

Soruna hangisinin neden olduğunu anlayamıyorum, ancak bunu düzeltmek için en olası çözümü ele alacağım.

Bölüm 1'i Düzeltin :

1 .Download ve Yükle birlik için Visual Studio Araçları gelen bu linke. Bunu Unity ve Visual Studio kapalıyken yapın.

2. Unity Editor'den Düzenle -> Tercihler ... -> Harici Araçlar'a gidin . On Harici Script Editor buna açılır menüden, değişim Visual Studio 2015 .

görüntü açıklamasını buraya girin


Bölüm 2'yi Düzeltin :

Yeni oluşturulan C # dosyaları Çeşitli olarak geliyorsa , aşağıdaki talimatları izleyin:

1 .from Visual Studio, gidin Araçlar -> Seçenekler ... -> Birlik Araçlar -> Çeşitli . Bağlantı simgesini göster altında , bunu trueVisual Studio'yu yeniden başlatacak şekilde ayarlayın .

görüntü açıklamasını buraya girin

2. Yeniden başlattığınızda, bağlantı simgesi artık Visual Studio'da mevcut olmalıdır. Tıklayın, ardından bağlanacağınız Unity örneğini seçin. Kırmızı 'x' simgesi şimdi kahverengi bir onay işareti simgesine dönüşmelidir. Şimdi, Unity'de yeni bir C # dosyası oluşturduğunuzda, Miscellaneous demeden açılmalıdır .

görüntü açıklamasını buraya girin


Bölüm 3'ü Düzelt :

Hala düzelmedi mi?

Projeyi yeniden içe aktarın ve ardından C # Projesini açın.

1. Visual Studio'yu kapatın.

2. Unity'den Varlıklar -> Tümünü Yeniden İçe Aktar'a giderek projeyi yeniden içe aktarın .

görüntü açıklamasını buraya girin

3. Şimdi, Assets -> Open C # Project'e giderek projeyi Visual Studio'da açın . Bu, projeyi yeniden yükleyecek ve olası çözüm dosyası sorunlarını çözecektir.

görüntü açıklamasını buraya girin


Bölüm 4'ü Düzeltin :

Hala düzelmedi mi?

Her C # dosyasını ayrı ayrı düzeltin.

1 tarihinde .Tıklama Tüm dosyaları göster simgesi.

görüntü açıklamasını buraya girin

2. Otomatik tamamlamayan komut dosyasını seçin, ardından sağ tıklayın ve Projeye Dahil Et'i seçin .

görüntü açıklamasını buraya girin


Bölüm 5'i Düzeltin :

Henüz düzeltilmedi mi?

Birden çok kişi için işe yaramış gibi görünen bu özel çözüm için kredi chrisvarnz'a gidiyor .

1. Visual Studio'yu kapatın

2. Proje dizininize gidin ve oluşturulan tüm Visual Studio dosyalarını silin.

Silinecek dosya uzantıları şunlardır:

  • .Csproj
  • .user
  • .Sln

Misal:

Diyelim ki Projenizin adı "Hedef Vuruşu" , bunlar silinecek dosyaların nasıl görünmesi gerektiğidir:

  • Hedef Shoot.csproj
  • Hedef Shoot.Editor.csproj
  • Hedef Ateş.Editor.csproj.user
  • Hedef Shoot.Player.csproj
  • Hedef Shoot.Player.csproj.user
  • Hedef Shoot.sln

Başka hiçbir şeyi silmeyin.

3. Yeni Visual Studio dosyası oluşturması ve ardından Visual Studio'yu açması gereken Unity'den komut dosyasına tekrar çift tıklayın . Bu sorununuzu çözebilir.


Bölüm 6'yı Düzeltin :

Çalışmıyorsa, şu hatayı alıp almadığınızı kontrol edin :

"GetReferenceNearestTargetFrameworkTask" görevi bulunamadı

1 .Install Nuget PackageManager dan burada .

2. Görsel Görsel'i Yeniden Başlatın.

Görmek fazla bilgi için bu yanıta .


4
Çeşitli dosya işaretçisi için teşekkürler! VS'yi kapatmak, VS projelerini ve sln'yi silmek ve ardından Unity'de bir betiğe çift tıklamak (bu nedenle proje dosyalarını yeniden oluşturmak ve VS'yi yeniden açmak) benim için düzeltdi. Önemsiz projeler için öğle yemeği / geceleme olduğundan, bunu "tümünü yeniden içe aktar" düğmesinden önce denemenizi tavsiye ederim.
chrisvarnz

2
Bu iyi bir tavsiye. Umarım bunu okuyan herkes bu yorumu görebilir
Programcı

Bunun nedeni çoğu zaman yeni komut dosyaları oluşturmak veya bunları Unity içindeki farklı klasörlere taşımaktır. Unity'yi yeniden başlatmak ve VS sorunu çözmediğinde, simoly *.csprojve *.slndosyalarını da silip Unity'yi başlatıyorum . Bu genellikle işe
yarar

1
@chrisvarnz çözümü, diğer tüm önerileri denedikten sonra benim için çalıştı.
gollumullog

1
@gollumullog İyi. Birden fazla kişi için işe yaradığından, cevabımı bunu da içerecek şekilde güncelledim.
Programcı

41

Bunu dene,

Unity Editor'da Menüye gidin, Düzenle -> Tercihler -> Harici Araçlar -> Harici Komut Dosyası Düzenleyicisi seçeneklerine tıklayın. Visual Studio (yüklü VS sürümünüz) olarak ayarlayın.

Şimdi Menü çubuğunda Düzenle -> Proje Ayarları -> Oynatıcı Ayarları -> Diğer Ayarlar -> Yapılandırma Altında -> API Uyumluluk Düzeyini Kontrol Et -> Kurulu .Net sürümünüze değiştirin. Benim durumumda .Net 4.x olarak ayarladım

Şimdi, Visual Studio zaten çalışıyorsa, Visual Studio'ya gidin, projeyi yeniden yüklemenizi isteyecektir. Projeyi yeniden yükleyin. Visual Studio kapatılmıyorsa çalışıp çalışmadığını kontrol edin. Şimdi Unity Editor'dan cs dosyasını açın ve şimdi çalışmalıdır.


Benim için aynısı, teşekkür ederim! Her şeyi denedim ama sadece bu onu düzeltti.
Shadowmak

1
bu GERÇEK cevaptır. Bu en üstte olmalı!
Mark Purnell

Bu benim için de çalıştı. Ayrıca, Unity 2020.2.0a13'te yaptığım bir diğer şey de, Düzenle / Proje Ayarları / Oynatıcı / Diğer Ayarlar: Otomatik Grafik API'sindeki işareti kaldırıp tekrar işaretlemekti. Visual Studio yeniden başlatıldıktan sonra, otomatik tamamlama geri döndü: D
Ant100

14

Bu sorunu daha rahat bir şekilde çözmenin başka bir yolunu buldum:

  1. Çözüm Gezgini'nde bozuk dosyayı seçin.
  2. Özelliklerini açın.
  3. "Eylem Oluştur" alanını "Derleme" yerine "Yok" olarak değiştirin.
  4. Ardından "Derleme" ye geri dönün.

Bu, Unity ve Visual Studio arasındaki senkronizasyonu bir şekilde öldürecektir.

Visual Studio projeyi bir sonraki sefer yeniden yükleyeceği zaman, bir uyarı verecektir. "Sil" e tıklamanız yeterlidir.


7

Visual Studio'da projeyi kaldırın ve yeniden yükleyin:

  • Çözüm Gezgini'nde projenize sağ tıklayın
  • Projeyi Kaldır'ı seçin
  • Projeyi Yeniden Yükle'yi seçin

Sabit!

Sorunla birçok kez karşılaştığım için bu çözümü en iyi (en kolay) çalışmak için buldum.

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


Yardım için teşekkürler! Bu işe yaradı, ancak 90'lara geri döndüğümüzü hissediyorum ve Windows'u yeniden başlatmamız gerekiyor, ancak bu sefer VS 2017.
user3053247

4
  1. Visual Studio'da proje seçin
  2. "Yenile" düğmesini tıklayın

görüntü açıklamasını buraya girin


1
Oha! Bana başka hiçbir şey yardımcı olmadı; VS'yi yeniden yükleyin, hatta Unity'yi yeniden yükleyerek VS'yi yeniden yükleyerek .sln ve .cjsproj dosyalarını yeniden oluşturacak şekilde silerek. hiçbir şey yardımcı olmadı .. ama sonunda klasörleri göstermek için çözüm gezginine basit bir tıklama
yeterliydi

3

Yukarıdakilerin hepsini yaptıysanız ve hala çalışmıyorsanız, şunu deneyin: Not: VS'yi güncellemiş olmalısınız. Visual stüdyodan ekran görüntüsü

Goto Unity> düzenle> tercih> Harici araçlar> harici komut dosyası düzenleyicisine gidin. Unity ekran görüntüsü Her nasılsa benim için harici senaryo editörü için "görsel stüdyo" seçmedim ve çalışmıyordu. Bunu seçip iki katına çıkardığımda birlikten c # dosyasına tıkladığımda çalışmaya başladı.

Umarım sana da yardımcı olur.


2

Unity 2017 ile Visual Studio 2017 15.4.5 kullanarak bugün aynı sorunları yaşıyorum.

Visual Studio'da projeye sağ tıklayarak ve hedef çerçeveyi 3.5'ten 4.5'e değiştirerek sorunu çözebildim.

Umarım bu benzer bir senaryodaki herkese yardımcı olur.


2

İki Alternatif Seçenek:

Düzeltme 1

@singleton beni bu yönde gösterdi. Visual Studio'da hedefi değiştirmek yerine, proje otomatik olarak oluşturulduğundan bunu Unity'de değiştirmelisiniz.

Önce otomatik olarak oluşturulan Visual Studio dosyalarını silin: .csproj .user .sln

Ardından Unity içinden PlayerSettings'e gidin ve 'Diğer Ayarlar'ın altında' Komut Dosyası Çalıştırma Sürümü Sürümünü Kararlı 3.5'ten Deneysel 4.6'ya değiştirin.

Ancak bu benim için düzeltmedi.

Düzeltme 2

Unity ile ilgili koda yapılan tüm referansların sarı bir uyarı ile işaretlendiğini fark ettim. Hata günlüklerinizi kontrol edin ve durumun bu olup olmadığına bakın. Özellikle şu hatayı alıp almadığınıza bakın: getreferenceNearestTargetframeworkTask

Öyleyse deneyin: Visual Studio Installer'ı yeniden başlatın.

Derleme Araçları 2017'de Değiştir'e tıklayın,

"Nuget hedefleri ve derleme görevleri" seçeneğinin işaretli olduğundan emin olun. Evrensel Windows Platformu geliştirmeye tıklarsanız bu işaretlenmelidir.


1

çözümümü, .cs dosyasını unity editörü yerine visual studio kendisinden oluşturarak buldum

  • çözüm gezgininde proje klasörüne sağ tıklayın
  • ekle> yeni öğe
  • sağ üstteki arama alanına "birlik" yazın
  • "CSharp MonoBehaviour" u seçin
  • komut dosyanızı altta adlandırın ve Ekle'yi tıklayın

1
Ya komut dosyalarını zaten oluşturduysanız ancak birdenbire bu sorun ortaya çıkarsa, tüm komut dosyalarını silip bunları Visual Studio'dan yeniden oluşturacak mısınız?
Programcı

@Programmer, zaten hata olan komut dosyasını düzeltmek için Bölüm 4 çözümünüzü kullanırdım, ancak yeni komut dosyası oluşturmak için her zaman görsel stüdyoyu kullanırım çünkü dosyayı görsel stüdyodan oluşturmadıysam, çözümünüzün hiçbiri yeni komut dosyasının hata almasını engellemedi
Fredy Rommy Sianturi

1

Benim durumumda doğru .net sürümü bilgisayarıma yüklenmedi. .Net 3.5'i bilgisayarıma yükledim ve bu benim için çalıştı.


Cevabınız bana Unity Player Ayarlarında API Uyumluluk Düzeyini .Net 2.0'dan .Net 4.x'e Değiştirme Fikrini verdi. Ve sonra projeyi Visual Studio'da yeniden yükleyin. Şimdi her şey yolunda gidiyor.
Juned Khan Momin

1

Karşılaştığım sorun, C # Projesi'nin farklı bir .NET Framework'ü (4.7.2) hedeflemesiydi, oysa Unity projesinin farklı bir hedefi vardı (.NET 3.5).

Bunu, Unity'deki hedefi şu şekilde değiştirerek düzelttim:

Dosya -> Yapı Ayarları -> Oynatıcı Ayarları -> Diğer Ayarlar -> API Uyumluluk Düzeyi: Önceden yüklediğiniz .NET sürümüne ayarlayın (.NET Sürümünüzü buradan kontrol edin ). Benim durumumda 4.x idi

Bundan sonra, Visual Studio mükemmel çalıştı ve otomatik düzeltme de düzeltildi.


Bu benim için çalıştı. API Uyumluluk Düzeyimi .Net 4.x olarak değiştirdim ve ardından Visual Studio Projeyi Yeniden Yüklememi istedi. Projeyi yeniden yükledim. Sonra Unity Editor'dan Visual Studio, Opened cs dosyasını kapattım ve şimdi her şey yolunda gidiyor.
Juned Khan Momin

1

Ctrl + Alt + SpaceBasmayı deneyin (öneri ve standart tamamlama modları arasında geçiş yapar)


0

Windows veya macOS için:

Visual Studio IDE'yi İndirin / Yükleyin (Unity Araçları ile)

Kurulum sırasında, kurulumunu dahil ettiğinizden emin olun.

Unity ile oyun geliştirme

görüntü açıklamasını buraya girin

Ardından Unity kullanarak (C # dosyalarınızdan birine çift tıklayabilirsiniz), yeni bir C # projesi açın ve Visual Studio IDE yeni proje yapınızla açılmalıdır.

görüntü açıklamasını buraya girin

Oradan ne aradığınızı görebilmelisiniz.

Örneğin:

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

Linux için (öneri):

Deneyin MonoDevelop - Ek Bilgi , bu kod tamamlama / ipuçları sağlar.


0

Unity projemde yapılandırılan aynı .NET sürümünü WIN'e yüklemeyi çözdüm. (Oyuncu Ayarları)


0

Otomatik tamamlamam da çalışmadı çünkü Unity için Visual Studio Araçları yüklü değil. Yani, bunu yükledikten sonra, otomatik olarak oluşturulan Visual Studio dosyalarını silin. Diğerleri dosyayı tekrar açtığınızı ve sorunun çözüldüğünü ancak çözülmediğini söyledi.

İşin püf noktası: normalde dosyayı çift tıklamak yerine, Unity'den C # dosyasını sağ tıklayıp ardından "C # Projesini Aç" ı açmanız gerekir.


0

Yukarıdaki çözümlerden hiçbiri benim için işe yaramadı. Ancak ProjectName.CSPROJ dosyasını açtım ve yeni dosyayı manuel olarak ekledim ve cazibesi gibi çalıştı


0
  • Araçlar menüsünde Seçenekler'e gidin ve ardından Ortam düğümünde Belgeler'i seçin. (Belgeler listede görünmüyorsa, Seçenekler iletişim kutusunda Tüm ayarları göster'i seçin.)
  • Çözüm Gezgini'nde "Çeşitli dosyalar" seçeneğini işaretleyin ve Tamam'ı tıklayın. (Bu seçenek, Solution Explorer'da "Miscellaneous Files" düğümünü görüntüler. Çeşitli dosyalar, bir proje veya çözümle ilişkili olmayan dosyalardır, ancak bu seçeneği işaretlerseniz size kolaylık sağlamak için Solution Explorer'da görünebilirler.)
  • Dosyanızı Çözüm Gezgini'nde "Çeşitli Dosyalar" altında bulun. Ardından dosyanızı ait olması gereken yere sürükleyip bırakın ve işte! Bu, dosyayı bıraktığınız yere kopyalayacaktır. Artık isterseniz eski dosyayı Miscellaneous Files klasörü altında güvenle silebilirsiniz.

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


Komut Dosyaları klasörünün görünmemesi durumunda:

  • Solution Explorer'da "Show all files" seçeneğine tıklayın
  • Scripts klasörünü bulun.
  • Komut Dosyalarına sağ tıklayın ve "Projeye Dahil Et" i seçin

0

Beni işe yarayan şey, bozuk sınıftaki tüm kodu kopyalayıp bu dosyayı kaldırmamdı. Sonra boş bir dosya açtım ve yapıştırdım.

Sonuç : güzel sözdizimi vurguları geri geldi!


0

ReSharper aracını kullanıyorsanız, IntelliSense'i geçersiz kılacak ve kendisine ait olduğunu göstereceğini unutmayın. Bunu değiştirmek için, VS'de Extensions -> ReSharper -> Options -> IntelliSense -> General'a gidin ve ReSharper'ı değil Visual Studio'yu seçin.


0

VS'yi yeniden başlatmadan ve / veya yeniden kurmadan önce, İlk olarak, Intellisence'ın çalışıp çalışmadığını görmek için diğer projelerinizi açmayı deneyin, çalışıyorsa, sorun muhtemelen mevcut projenizde yatıyor. Birincisi, en olası kurban, bekleyen güncellemeleri olan NUGET paketleri olacaktır. Bunu düzeltmek için,

  1. Referanslara sağ tıklayın
  2. NUGET Paketlerini NUGET Paketleri Altında Yönetmeye Devam Edin
  3. güncellemelere devam et Güncellemeleri Yükle ve Intellisence'ı yeniden kontrol et

0

Bunların hepsini denedim, ancak Çözüm Gezgini'nde çözüme sağ tıklayıp mevcut öğeleri eklemem ve Windows Gezgini'nde C # montaj dosyasını bulmam gerektiğini öğrendim. Size bu hatayı veren bazilyonlarca farklı sorun var gibi görünüyor, bu muhtemelen en basit çözümdür. Unity'den betiğinize çift tıklarsanız, montajı sürüklemiyor gibi görünüyor.


0

Yukarıdaki yöntemlerden biri benim için çalıştı ve bu soruna bir çözüm buldum,
1. Önce proje dizinine gidin ve .slndosyayı silin
2. İkinci olarak, unity'ye gidin ve betiğinize çift tıklayın. Daha sonra Visual Studio bir hata ile açılacaktır, görüntü açıklamasını buraya girin

  1. Ardından Tamam'a tıklayın ve Visual Studio düzenleyicisini kapatın.
  2. Son olarak, Windows Defender'ınızı kapatın ve ardından proje dizininize gidin ve orada .csprojdosya olacaktır . Bunu Visual Studio düzenleyicinizden çift tıklayın ve açın ve varlıklar klasörünün içindeki komut dosyaları klasörünü açın ve komut dosyalarını açın; otomatik tamamlama mükemmel şekilde çalışacaktır.

0

2020'yi Visual Studio Community 2019 ve Unity 2019.3 ile güncelleyin:

1) Visual Studio Installer'ı Yönetici olarak açın, mevcut kurulumunuzu değiştirmeyi seçin ve "Unity için oyun geliştirme" ekleyin

2) Unity'ye şimdi yeni bir c # betiği eklerseniz ve bunu (otomatik olarak) Visual Studio ile açarsanız, pencerenin üst kısmında "Çeşitli" olarak değil "Assembly-CSharp" olarak tanımlanır ve otomatik tamamlama çalışır.


0

Başka bir olası düzeltme:

  1. Proje penceresinde Varlıklar klasörüne tıklayın
  2. Sağ tıklayın ve Oluştur -> C # Komut Dosyası
  3. Bunu çift tıklayın ve bekleyin.

Nedense bu iş.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.