Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu bölümde, Unity için Visual Studio Araçları ile ilgili yaygın sorunların çözümlerini, bilinen sorunların açıklamalarını ve hataları bildirerek Unity için Visual Studio Araçları geliştirmeye nasıl yardımcı olabileceğinizi öğreneceksiniz.
Unity ile Visual Studio arasındaki bağlantı sorunlarını giderme
Etkinleştirildiğini veya Code Optimization On Startup
olarak ayarlandığını onaylayın Editor Attaching
Debug
Unity Menüsünde öğesini seçin Edit / Preferences
.
Kullanılan Unity sürümüne bağlı olarak:
Code Optimization On Startup
değerininDebug
olarak ayarlandığını onaylayın.- Veya sekmeyi
External Tools
seçin. Onay kutusunun etkinleştirildiğiniEditor Attaching
onaylayın.
Daha fazla bilgi için Unity Tercihleri belgelerine bakın.
Eklenemedi
- Virüsten koruma yazılımınızı geçici olarak devre dışı bırakmaya veya hem VS hem de Unity için dışlama kuralları oluşturmaya çalışın.
- VS ve Unity arasında TCP/UDP ağına izin vermek için güvenlik duvarınızı geçici olarak devre dışı bırakmaya veya kurallar oluşturmaya çalışın.
- Takım Görüntüleyicisi gibi bazı programlar işlem algılamayı etkileyebilir. Bir şeyi değiştirip değiştirmediğini görmek için ek yazılımları geçici olarak durdurmayı deneyebilirsiniz.
- VSTU yalnızca "Unity.exe" işlemlerini izlediğinden ana Unity yürütülebilir dosyasını yeniden adlandırmayın.
Visual Studio kilitleniyor
Bu sorun Visual Studio MEF önbelleğinin bozulmasından kaynaklanıyor olabilir.
MEF önbelleğini sıfırlamak için aşağıdaki klasörü kaldırmayı deneyin (bunu yapmadan önce Visual Studio'yu kapatın):
%localappdata%\Microsoft\VisualStudio\<version>\ComponentModelCache
Bu, sorununuzu çözmelidir. Sorun yaşamaya devam ediyorsanız visual studio için bir Geliştirici Komut İstemi'ni Yönetici istrator olarak çalıştırın ve aşağıdaki komutu kullanın:
devenv /setup
Visual Studio yanıt vermeyi durduruyor
Parse, FMOD, UMP (Evrensel Medya Oynatıcı), ZFBrowser veya Embedded Browser gibi çeşitli Unity eklentileri yerel iş parçacıkları kullanıyor. Eklentinin çalışma zamanına yerel bir iş parçacığı eklemesi ve ardından işletim sistemine yapılan çağrıları engellemesi sorunudur. Bu, Unity'nin hata ayıklayıcı (veya etki alanı yeniden yüklemesi) için bu iş parçacığını kesintiye uğratıp yanıt vermeyi durdurabileceği anlamına gelir.
FMOD için geçici bir çözüm vardır. Zaman uyumsuz işlemeyi devre dışı bırakmak ve ana iş parçacığında tüm işlemleri gerçekleştirmek için başlatma bayrağı geçirebilirsinizFMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE
.
Kendi yerel eklentinizi geliştiriyorsanız, hata ayıklayıcının iş parçacıklarını askıya alması gerektiğinde Unity ve Mono ile düzgün işbirliği yapmak için zaman uyumsuz yordam çağrıları (APC) ve özellikle SleepEx
SignalObjectAndWait
, MsgWaitForMultipleObjectsEx
, , WaitForMultipleObjectsEx
veya WaitForSingleObjectEx
işlevlerini kullanmanızı öneririz.
Visual Studio'da uyumsuz proje
Bilinmesi gereken en önemli şey, Visual Studio'nın "Uyumsuz" durumunu proje ayarlarına kaydetmesi ve açıkça kullanana Reload Project
kadar projeyi yeniden yüklemeyi denememesidir. Bu nedenle, her sorun giderme adımından sonra çözümü yeniden açmayı denediğinizden emin olun ve uyumsuz tüm projelere sağ tıklayıp öğesini seçin Reload Project
.
- Visual Studio'yu kullanarak
Edit / Preferences / External Tools
Unity'de dış betik düzenleyiciniz olarak ayarlandığını denetleyin. - Unity sürümünüze bağlı olarak:
- Visual Studio eklentisinin Unity'de yüklü olup olmadığını denetleyin.
Help / About
altta Microsoft Unity için Visual Studio Araçları etkin gibi bir ileti görüntülenmelidir. - Unity 2020.x+: içinde
Window / Package Manager
en son Visual Studio Düzenleyicisi paketini kullanıp kullanmadığınıza bakın.
- Visual Studio eklentisinin Unity'de yüklü olup olmadığını denetleyin.
- Tüm projeleri/çözüm dosyalarını ve projenizdeki klasörü silmeyi
.vs
deneyin. - veya
Edit / Preferences / External tools / Regenerate Project files
kullanarakOpen C# Project
projeleri/çözümü yeniden oluşturmayı deneyin. - Visual Studio'da Game/Unity iş yükünü yüklediğinizden emin olun.
- Burada açıklandığı gibi MEF önbelleğini temizlemeyi deneyin.
- Visual Studio'yu yeniden yüklemeyi deneyin (yalnızca başlamak için Game/Unity iş yükünü kullanarak).
- uygulamasındaKi Unity uzantısını etkileyebileceğinden üçüncü taraf uzantılarını
Tools / Extensions
devre dışı bırakmaya çalışın.
Ek yeniden yüklemeler veya Visual Studio tüm açık pencereleri kaybediyor
Proje dosyalarına hiçbir zaman doğrudan bir varlık işlemcisinden veya başka bir araçtan dokunmamaya özen gösterin. Proje dosyasını gerçekten işlemeniz gerekiyorsa bunun için bir API kullanıma sunarız. Lütfen Derleme başvuruları sorunları bölümünü denetleyin.
Ek yeniden yüklemelerle karşılaşırsanız veya Visual Studio yeniden yüklemede tüm açık Windows'u kaybediyorsa, düzgün .NET hedefleme paketlerinin yüklü olduğundan emin olun. Daha fazla bilgi için çerçeveler hakkında aşağıdaki bölüme bakın.
Hata ayıklayıcısı özel durumlarda bozulmaz
Eski Unity çalışma zamanını (.NET 3.5 eşdeğeri) kullanırken, özel durum işlenmemiş olduğunda (=try/catch bloğunun dışında) hata ayıklayıcı her zaman bozulacaktır. Özel durum işlenirse, hata ayıklayıcı bir kesmenin gerekli olup olmadığını belirlemek için Özel Durum Ayarlar Penceresini kullanır.
Yeni çalışma zamanıyla (.NET 4.6 eşdeğeri), Unity kullanıcı özel durumlarını yönetmek için yeni bir yol ekledi ve sonuç olarak, tüm özel durumlar bir try/catch bloğunun dışında olsalar bile "kullanıcı tarafından işlenir" olarak görülür. Bu nedenle, hata ayıklayıcının bozulması için özel durum Ayarlar penceresinde bunları açıkça denetlemeniz gerekir.
Özel Durum Ayarlar penceresinde (Hata Ayıklama > Windows > Özel Durumu Ayarlar), bir özel durum kategorisinin düğümünü genişletin (örneğin, .NET özel durumları anlamına gelen Ortak Dil Çalışma Zamanı Özel Durumları) ve bu kategoride yakalamak istediğiniz özel durumun onay kutusunu seçin (örneğin System.NullReferenceException). Özel durumlar kategorisinin tamamını da seçebilirsiniz.
Windows'da Visual Studio Unity hedef çerçevesini indirmeyi ister
Eski Unity çalışma zamanını (.NET 3.5 eşdeğeri) kullanırken Unity için Visual Studio Araçları, Windows 8 veya 10'da varsayılan olarak yüklenmeyen .NET Framework 3.5 gerektirir. Bu sorunu çözmek için yönergeleri izleyerek .NET framework 3.5'i indirip yükleyin.
Yeni Unity çalışma zamanını kullanırken Unity sürümüne bağlı olarak .NET hedefleme paketleri sürüm 4.6 veya 4.7.1 de gereklidir. Bunları hızla yüklemek için Visual Studio yükleyicisini kullanmak mümkündür (yüklemenizi, tek tek bileşenlerinizi, .NET kategorinizi değiştirin, tüm 4.x hedefleme paketlerini seçin).
Derleme başvurusu veya proje özelliği sorunları
Projeniz karmaşık başvuru açısından ise veya bu oluşturma adımını daha iyi denetlemek istiyorsanız, oluşturulan proje veya çözüm içeriğini işlemek için API'mizi kullanabilirsiniz. Unity projenizde yanıt dosyalarını da kullanabilirsiniz ve bunları işleyeceğiz.
Son Visual Studio ve Unity sürümlerinde en iyi yaklaşım, oluşturduğunuz projelerle birlikte özel Directory.Build.props
bir dosya kullanıyor gibi görünüyor. Daha sonra, oluşturma işlemine müdahale etmeden proje yapısına katkıda bulunabileceksiniz.
Uyarı içeren kesme noktaları
Visual Studio belirli bir kesme noktası için kaynak konum bulamazsa kesme noktanızın çevresinde bir uyarı görürsünüz. Kullandığınız betiğin geçerli Unity sahnesinde düzgün yüklendiğinden/kullanıldığından emin olun.
Kesme noktalarına isabet edilmedi
Kullandığınız betiğin geçerli Unity sahnesinde düzgün yüklendiğinden/kullanıldığından emin olun. Hem Visual Studio'dan hem de Unity'den çıkın ve ardından oluşturulan tüm dosyaları (*.csproj, *.sln), .vs
klasörü ve Kitaplık klasörünün tamamını silin. Unity web sitesinde C# hata ayıklaması hakkında daha fazla bilgi bulabilirsiniz.
Android oynatıcılarda hata ayıklama yapılamıyor
Player algılaması için çok noktaya yayın kullanıyoruz (Unity tarafından kullanılan varsayılan mekanizmadır), ancak bundan sonra hata ayıklayıcıyı eklemek için normal bir TCP bağlantısı kullanırız. Algılama aşaması, Android cihazlar için ana sorundur.
Wi-Fi, gecikme süresi nedeniyle USB ile karşılaştırıldığında çok yönlü ama süper yavaştır. Bazı yönlendiriciler veya cihazlar için uygun çok noktaya yayın desteğinin eksik olduğunu gördük (Nexus serisi bunun için iyi bilinir).
USB, hata ayıklama için çok hızlıdır ve Unity için Visual Studio Araçları artık USB cihazlarını algılayabilir ve hata ayıklama için bağlantı noktalarını düzgün bir şekilde iletmek için adb sunucusuyla konuşabilir.
IntelliSense veya kod renklendirmesi ile ilgili sorunlar
Visual Studio'nuzu en son sürüme yükseltmeyi deneyin. Uyumsuz projeler ile aynı sorun giderme adımlarını deneyin.
Bilinen sorunlar
Unity için Visual Studio Araçları'de hata ayıklayıcının Unity'nin C# derleyicisinin eski sürümüyle nasıl etkileşime geçtiğini gösteren bilinen sorunlar vardır. Bu sorunları çözmeye yardımcı olmak için çalışıyoruz, ancak bu sırada aşağıdaki sorunlarla karşılaşabilirsiniz:
Hata ayıklama sırasında Unity bazen kilitlenir.
Hata ayıklama sırasında Unity bazen donar.
Yöntemlere girip çıkmak bazen, özellikle yineleyicilerde veya switch deyimleri içinde yanlış davranır.
Rapor hataları
Kilitlenme, donma veya diğer hatalarla karşılaştığınızda hata raporları göndererek Unity için Visual Studio Araçları kalitesini geliştirmemize yardımcı olun. Bu, Unity için Visual Studio Araçları sorunlarını araştırmamıza ve düzeltmemize yardımcı olur. Teşekkürler!
Visual Studio donduğunda hata bildirme
Unity için Visual Studio Araçları ile hata ayıklarken Visual Studio'yu bazen dondurduğunu ancak bu sorunu anlamak için daha fazla veriye ihtiyacımız olduğunu bildiren raporlar vardır. Aşağıdaki adımları izleyerek araştırmamıza yardımcı olabilirsiniz.
Unity için Visual Studio Araçları ile hata ayıklarken Visual Studio'yu dondurduğunu bildirmek için
Windows'da:
Visual Studio'nun yeni bir örneğini açın.
İşleme Ekle iletişim kutusunu açın. Visual Studio'nun yeni örneğinde, ana menüde Hata Ayıkla, İşleme Ekle'yi seçin.
Hata ayıklayıcısını Visual Studio'nun donmuş örneğine ekleyin. İşleme Ekle iletişim kutusunda, Kullanılabilir İşlemler tablosundan Visual Studio'nun donmuş örneğini seçin ve ardından Ekle düğmesini seçin.
Hata Ayıklayıcıyı duraklatın. Visual Studio'nun yeni örneğinde, ana menüde Hata Ayıkla, Tümünü Kes'i seçin veya yalnızca Ctrl+Alt+Break tuşlarına basın.
İş parçacığı dökümü oluşturma. Komut penceresinde aşağıdaki komutu girin ve Enter tuşuna basın:
Debug.ListCallStack /AllThreads /ShowExternalCode
Önce Komut penceresini görünür hale getirmeniz gerekebilir. Visual Studio'da, ana menüde Görünüm, Diğer Pencereler, Komut Penceresi'ni seçin.
Mac'te:
Bir terminal açın ve Mac için Visual Studio PID'sini alın:
ps aux | grep "[V]isual Studio.app"
lldb hata ayıklayıcısını başlatın:
lldb
PID kullanarak Mac için Visual Studio örneğine ekleyin:
process attach --pid THE_PID_OF_THE_VSFM_PROCESS
Tüm iş parçacıkları için stacktrace'i alın:
bt all
Son olarak, visual Studio dondurulurken yaptığınız işin açıklamasının yanı sıra iş parçacığı dökümünü vstusp@microsoft.comadresine gönderin.