Lingkungan pengembangan terintegrasi (IDE) dukungan
Stack trace logging

Debug C# kode dalam Unity

Anda dapat menggunakan debugger untuk memeriksa kode sumber Anda saat aplikasi Anda berjalan. Unity mendukung editor kode berikut ke kode debug C #:

  • Visual Studio (dengan Alat Studio Visual untuk plug-in Unity)
  • Visual Studio untuk Mac
  • Jetbrains Rider
  • Visual Studio Code (experimental)

Meskipun editor kode ini bervariasi sedikit dalam fitur debugging mereka mendukung, mereka semua menyediakan fungsi dasar seperti titik istirahat, langkah tunggal, dan inspeksi variabel. Anda dapat melampirkan editor kode ini ke Unity Editor atau Pemain Unity ke debug kode Anda.

Kode terkelola debugging dalam pekerjaan Unity di semua platform kecuali WebGLLogin API yang membuat grafis 2D dan 3D di browser web. Opsi build Unity WebGL memungkinkan Unity untuk mempublikasikan konten sebagai program JavaScript yang menggunakan teknologi HTML5 dan WebGL rendering API untuk menjalankan konten Unity di browser web. More info
Lihat di Glossary
. Ini bekerja dengan kedua MonoBackend scripting digunakan dalam Unity. More info
Lihat di Glossary
dan IL2CPPBack-end scripting bersatu yang dapat Anda gunakan sebagai alternatif untuk Mono ketika proyek bangunan untuk beberapa platform. More info
Lihat di Glossary
scripting backendsKerangka kerja yang skrip di Unity. Unity mendukung tiga backend scripting yang berbeda tergantung pada platform target: Mono, .NET dan IL2CPP. Platform Windows Universal, namun hanya mendukung dua: .NET dan IL2CPP. More info
Lihat di Glossary
.

Sitemap Konfigurasikan editor kode Configure the code editor

Visual Studio (Windows)

Installer Editor Unity mencakup opsi untuk menginstal Studio Visual dengan Alat Studio Visual untuk Unity plug-inA set of code created outside of Unity that creates functionality in Unity. There are two kinds of plug-ins you can use in Unity: Managed plug-ins (managed .NET assemblies created with tools like Visual Studio) and Native plug-ins (platform-specific native code libraries). More info
See in Glossary
. Ini adalah cara yang disarankan untuk mengatur Studio Visual untuk debugging dengan Unity.

Jika Visual Studio sudah dipasang di komputer Anda, buka dan bukalah ke Tools > Get Tools and Features… untuk menemukan dan instal plug-in Visual Studio Tools for Unity.

Visual Studio untuk Mac

Installer Editor Unity mencakup opsi untuk menginstal Studio Visual untuk Mac. Ini adalah cara yang disarankan untuk mengatur Visual Studio untuk Mac untuk debugging dengan Unity.

Jika Visual Studio untuk Mac sudah diinstal pada komputer Anda, buka dan bukalah ke Visual Studio > Extensions > Install from file… untuk menemukan dan instal Visual Studio Tools untuk Unity plug-in.

JetBrains Rider

Anda dapat menggunakan instalasi default JetBrains Rider ke kode debug di Unity di Windows atau Mac. Kunjungi Situs Web JetBrains untuk menginstalnya.

Visual Studio Kode

Untuk debug dalam Unity menggunakan Visual Studio Code, Anda perlu menginstal ekstensi. Visual Studio Code's dokumentasi untuk mengkonfigurasi Kode Visual Studio sebagai editor kode untuk proyek Unity Anda. Ikuti Visual Studio Code's instruksi spesifik untuk Debugger untuk ekstensi Unity untuk menginstalnya. Dukungan Unity untuk Kode Visual Studio bereksperimen sebagai Unity tidak secara resmi mendukung Debugger untuk ekstensi Unity.

Tentukan Editor Script Eksternal di Unity

Setelah Anda menginstal editor kode, open Unity, pergi ke Preferences > External Tools dan mengatur External Script Editor ke editor kode Anda.

The External Tools settings
Pengaturan Alat Eksternal

Breakpoints

Breakpoints memungkinkan Anda untuk menentukan poin dalam kode Anda di mana Anda ingin menghentikan eksekusinya. Dalam editor kode eksternal Anda, Anda dapat mengatur breakpoint pada garis kode di mana Anda ingin debugger untuk berhenti. Sementara editor kode berada di breakpoint, Anda dapat melihat isi variabel langkah demi langkah.

Jika Anda telah memasang editor kode Anda ke Editor Unity (lihat Pasang editor kode Anda ke Editor Unity), Editor Unity menjadi tidak responsif sampai Anda memilih opsi terus dalam editor kode Anda, atau menghentikan mode debugging.

Untuk melihat bagaimana Anda dapat mengatur breakpoints di Visual Studio melihat Set breakpoints di Visual Studio.

Sitemap Debug di Editor Unity Debug in the Unity Editor

Anda dapat debug C# kode saat berjalan di Editor Unity sementara Editor Unity dalam Mode Bermain.

Untuk debug di Editor, Anda perlu mengatur mode Optimisasi Kode Editor ke Debug Mode, maka Anda dapat melampirkan editor kode dengan fitur debugging.

Untuk mengubah mode Optimisasi Kode, pilih tombol Debug di kanan bawah Unity Editor Status Bar.

The Debug Button in the bottom right of the Unity Editor Status Bar
Tombol Debug di bagian bawah kanan Bar Status Editor Unity

Pengaturan Optimasi Kode Unity memiliki dua mode:

  • Debug Mode, yang dapat Anda gunakan untuk melampirkan perangkat lunak debugger eksternal, tetapi memberikan kinerja C# yang lebih lambat ketika Anda menjalankan Proyek Anda di Play Mode di Editor.
  • Release Mode, yang memberikan kinerja C# yang lebih cepat ketika Anda menjalankan Proyek Anda di Play Mode di Editor, tetapi Anda tidak dapat melampirkan debugger eksternal.

Ketika Anda mengklik tombol Debug di bar status, jendela pop-up kecil terbuka yang berisi tombol yang dapat Anda gunakan untuk beralih mode. Jendela juga menampilkan informasi tentang mode saat ini, dan menjelaskan apa yang terjadi jika Anda beralih mode.

The Debug Mode popup, which shows the current mode, allows you to switch modes, and describes what happens if you switch mode.
Debug Mode popup, yang menunjukkan mode saat ini, memungkinkan Anda untuk beralih mode, dan menggambarkan apa yang terjadi jika Anda beralih mode.

Untuk mengubah mode Unity Editor mulai dari, pergi ke Edit (macOS: Unity) > Preferences > General > Code Optimization On Startup.

In Preferences, you can change the Code Optimization mode that Unity starts in.
Di Preferensi, Anda dapat mengubah mode Optimasi Kode yang dimulai pada Unity.

Untuk mengontrol pengaturan ini menggunakan script, gunakan API berikut:

Anda juga dapat menimpa mode bahwa Editor dimulai, atau mematikan soket mendengarkan debugger. Untuk melakukan ini, gunakan perintah baris argumen berikut ketika Anda meluncurkan Editor:

  • -releaseCodeOptimization. Mulai Editor dalam mode optimasi kode Release.
  • -debugCodeOptimization. Mulai Editor dalam mode optimasi kode Debug.
  • -disableManagedDebugger. Mulai Editor dengan soket mendengarkan debugger dinonaktifkan.

Sitemap Pasang editor kode Anda ke Editor Unity Attach your code editor to the Unity Editor

Cara untuk melampirkan editor kode Anda ke Editor Unity tergantung pada editor kode apa yang Anda gunakan, dan sering merupakan pilihan yang berbeda dari proses debugging normal editor kode Anda. Beberapa editor kode memungkinkan Anda untuk memilih contoh Unity ke debug. Untuk instruksi spesifik untuk editor kode Anda, lihat Editor kode dokumentasi eksternal. Untuk melihat bagaimana Anda dapat melakukan ini di Visual Studio, lihat Pasang Visual Studio ke Editor Unity.

Ketika Anda telah memasang editor kode ke Editor Unity dan Anda siap untuk memulai debugging, kembali ke Editor Unity dan masukkan Mode Play.

Sitemap Debug di Pemain Unity Debug in the Unity Player

Untuk mengkompilasi Pemain Unity untuk Anda ke debug:

  1. File > Build Settings.
  2. Aktifkan opsi Development BuildA development build includes debug symbols and enables the Profiler. More info
    See in Glossary
    dan Script Debugging sebelum Anda membangun Pemain. Anda juga dapat mengaktifkan opsi Wait For Managed Debugger untuk membuat Pemain menunggu debugger untuk dilampirkan sebelum Pemain mengeksekusi kode skrip.
  3. Pilih Build And Run.
The Build Settings menu with Development Build, Script Debugging, and Wait for Managed Debugger enabled.
Menu Build Settings dengan Development Build, Script Debugging, dan Wait for Managed Debugger diaktifkan.

Pasang editor kode Anda ke Pemain Unity

Untuk melampirkan editor kode Anda ke Unity Player, di editor kode Anda, pilih alamat IP (atau nama mesin) dan port Pemain Anda. Sebagai contoh di mana untuk menemukan ini di Visual Studio, lihat Pasang Visual Studio ke Editor Unity.

Note: Editor kode Anda akan menunjukkan semua kasus Unity yang tersedia untuk debug. Pastikan Anda melampirkan editor kode ke instance yang benar dari Pemain Unity, dan tidak ke Editor Unity jika keduanya berjalan.

Ketika Anda telah memasang debugger, Anda dapat mulai debugging biasanya. Untuk instruksi tentang cara melampirkan Unity Player ke editor kode spesifik Anda, lihat Editor kode dokumentasi eksternal. Contoh cara melampirkan Unity Player yang berjalan pada perangkat mobile ke Visual Studio, lihat Debug Android dan perangkat iOS dengan Visual Studio.

Sitemap Set breakpoints di Visual Studio Set breakpoints in Visual Studio

Untuk mengatur breakpoint di Visual Studio, klik pada kolom ke kiri kode Anda, di garis Anda ingin menghentikan debugger. Lingkaran merah muncul di sebelah nomor garis dan garis disorot.

A breakpoint in Visual Studio.
A breakpoint di Visual Studio.

Sitemap Pasang Visual Studio ke Editor Unity Attach Visual Studio to the Unity Editor

Untuk melampirkan Editor Unity ke skrip Visual Studio Anda, buka Studio Visual, buka Debug > Attach Unity Debugger dan pilih contoh Editor Unity yang ingin Anda debug.

Dalam contoh berikut gambar, ada satu contoh Unity berjalan di Editor dan satu contoh Unity berjalan sebagai Android Player

Visual Studio lists the current instances of Unity that are available to debug.
Visual Studio daftar instance Unity saat ini yang tersedia untuk debug.

Sitemap Debug Android dan perangkat iOS dengan Visual Studio Debug Android and iOS devices with Visual Studio

Android

Untuk debug pemain Unity berjalan pada perangkat Android, hubungkan ke perangkat menggunakan USB atau TCP. Sebagai contoh, untuk terhubung ke perangkat Android di Visual Studio, pilih opsi Debug > Attach Unity Debugger. Daftar perangkat yang menjalankan instance Pemain muncul.

Dalam contoh ini, perangkat android terhubung menggunakan USB dan Wi-Fi di jaringan yang sama sebagai workstation menjalankan Editor Unity dan Visual Studio.

Android

Unity tidak dapat secara otomatis menemukan perangkat Chrome OS. Untuk memulai koneksi, terhubung ke perangkat melalui Android Debug Bridge (adb). Untuk informasi lebih lanjut tentang cara menggunakan adbJembatan Debug Android (ADB). Anda dapat menggunakan ADB untuk menyebarkan paket Android (APK) secara manual setelah bangunan. More info
Lihat di Glossary
, lihat Panduan Pengguna Android Studio.

iOS

Untuk debug pemain Unity berjalan pada perangkat iOS, hubungkan ke perangkat menggunakan TCP. Sebagai contoh, untuk terhubung ke perangkat iOS di Visual Studio untuk Mac, pilih Debug > Attach Unity Debugger. Daftar perangkat yang menjalankan instance Pemain muncul.

Pastikan bahwa perangkat hanya memiliki satu antarmuka jaringan aktif (Wi-Fi dianjurkan, mematikan data seluler) dan bahwa tidak ada firewall antara IDE dan perangkat memblokir port TCP (nomor pelabuhan 56000 di atas screenshot).

Important: iOS tidak mendukung debugging di atas USB.

Pemecahan debugger

Sebagian besar masalah dengan debugger terjadi karena editor kode tidak dapat menemukan Editor Unity atau Pemain Unity. Ini berarti bahwa Editor Unity atau Pemain tidak dapat melampirkan debugger dengan benar. Karena debugger menggunakan koneksi TCP ke Editor atau Pemain, masalah koneksi sering disebabkan oleh jaringan. Berikut adalah beberapa langkah yang dapat Anda ambil untuk memecahkan masalah koneksi dasar.

Pastikan Anda melampirkan debugger ke instance Unity yang benar

Anda dapat melampirkan editor kode Anda untuk setiap kasus Editor Unity atau Pemain Unity di jaringan lokal yang mengaktifkan debugging. Ketika Anda melampirkan debugger, pastikan Anda menempelkannya ke instance Unity yang benar. Jika Anda tahu alamat IP atau nama mesin perangkat di mana Anda menjalankan Unity Player, ini membantu untuk menemukan instance yang benar.

Verifikasi koneksi jaringan ke instance Unity

Editor kode menggunakan mekanisme yang sama untuk menemukan instance Unity untuk debug sebagai Unity ProfilerJendela yang membantu Anda untuk mengoptimalkan permainan Anda. Ini menunjukkan berapa banyak waktu yang dihabiskan di berbagai bidang permainan Anda. Sebagai contoh, dapat melaporkan persentase waktu yang dihabiskan rendering, aimating, atau dalam logika permainan Anda. More info
Lihat di Glossary
. Jika editor kode tidak dapat menemukan instance Unity yang Anda harapkan, cobalah untuk melampirkan Profiler Unity ke instance itu. Jika Unity Profileer tidak dapat menemukan instance Unity baik, mungkin ada firewall pada mesin Anda menjalankan editor kode atau instance Unity. Jika firewall ada di tempat, lihat Periksa pengaturan firewall.

Pastikan perangkat hanya memiliki satu antarmuka jaringan aktif

Banyak perangkat memiliki beberapa antarmuka jaringan. Misalnya, ponsel mungkin memiliki koneksi seluler aktif dan koneksi Wi-Fi aktif. Untuk benar menghubungkan debugger ke instance Unity menggunakan TCP, IDE perlu membuat koneksi jaringan ke antarmuka yang benar di perangkat. Jika Anda berencana untuk debug melalui Wi-Fi, misalnya, pastikan Anda menempatkan perangkat dalam mode pesawat untuk menonaktifkan semua antarmuka lain, maka aktifkan Wi-Fi.

Anda dapat menentukan alamat IP Unity Player memberitahu IDE untuk digunakan dengan melihat di Player LogFile .log yang dibuat oleh Pemain Standalone yang berisi catatan acara, seperti waktu eksekusi skrip, versi compiler, dan waktu AsetImport. Masuk file dapat membantu mendiagnosis masalah. More info
Lihat di Glossary
. Cari bagian log seperti ini:

Multi-casting "[IP] 10.0.1.152 [Port] 55000 [Flags] 3 [Guid] 2575380029 [EditorId] 4264788666 [Version] 1048832 [Id] iPhonePlayer(Example-iPhone):56000 [Debug] 1 [PackageName] iPhonePlayer" to [225.0.0.222:54997]...

Pesan ini menunjukkan IDE akan mencoba menggunakan alamat IP 10.0.1.152 dan port 56000 untuk terhubung ke perangkat. Alamat IP dan port ini harus dapat dicapai dari komputer yang menjalankan IDE.

Sitemap Periksa pengaturan firewall Check the firewall settings

Contoh Unity berkomunikasi dengan editor kode menggunakan koneksi TCP. Pada sebagian besar platform Unity, koneksi TCP ini terjadi pada port yang dipilih secara sewenang-wenang. Biasanya, Anda tidak perlu tahu port ini, karena editor kode harus mendeteksinya secara otomatis. Jika tidak bekerja, gunakan alat analisis jaringan untuk menentukan port mana yang mungkin diblokir baik di mesin di mana Anda menjalankan editor kode, atau mesin atau perangkat di mana Anda menjalankan instance Unity. Ketika Anda menemukan port, pastikan firewall Anda memungkinkan akses ke port di kedua mesin yang menjalankan editor kode, dan mesin yang menjalankan instance Unity.

Verifikasi informasi debugging yang dikelola tersedia

Jika debugger melampirkan ke instance Unity tetapi breakpoints tidak memuat, debugger mungkin tidak dapat menemukan informasi debugging yang dikelola untuk kode. Dikelola kode debugging informasi disimpan dalam file bernama .pdb, di sebelah perakitan yang dikelola (.dll file) di disk.

Ketika Anda mengaktifkan preferensi yang benar dan membangun opsi (lihat Konfigurasikan editor kode), Unity menghasilkan informasi debugging ini secara otomatis. Namun, Unity tidak dapat menghasilkan informasi debugging untuk plugin yang dikelola di proyek Anda. Anda hanya bisa kode debug dari plugin yang dikelola jika file .pdb terkait di sebelah plugin yang dikelola di proyek Unity di disk.

Mencegah perangkat dari penguncian

Nonaktifkan kunci layar pada perangkat yang Anda gunakan untuk debug aplikasi Anda. Kunci layar menyebabkan debugger untuk memutuskan, dan mencegahnya dari koneksi kembali. Jangan mengunci layar selama debugging kode yang dikelola. Jika kunci layar, restart aplikasi pada perangkat sehingga debugger dapat terhubung lagi.

Sitemap Editor kode dokumentasi eksternal Code editor external documentation

Lingkungan pengembangan terintegrasi (IDE) dukungan
Stack trace logging