Impor dan mengkonfigurasi plug-ins
Native plug-ins

Managed plug-ins

Dikelola plug-insSatu set kode yang dibuat di luar Unity yang menciptakan fungsi dalam Unity. Ada dua jenis plug-ins yang dapat Anda gunakan di Unity: Managed plug-ins (diproduksi. Rakitan NET dibuat dengan alat-alat seperti Studio Visual) dan plug-ins asli (pustaka kode asli yang spesifik platform). More info
Lihat di Glossary
adalah Sitemap Login yang Anda buat dan disusun di luar Unity, ke dalam perpustakaan yang terhubung secara dinamis (DLL) dengan alat-alat seperti Visual Studio.

Ini adalah proses yang berbeda dari C # scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary
standar, yang menyimpan Unity sebagai file sumber di folder Aset di proyek Unity Anda. Unity mengkompilasi skrip C# standar setiap kali mereka berubah, sedangkan DLLs sudah terkumpul dan tidak berubah. Anda dapat menambahkan file .dll yang disusun ke proyek Anda dan melampirkan kelas yang berisi ke GameObjectsThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary
dengan cara yang sama dengan skrip standar.

Untuk informasi lebih lanjut tentang kode yang dikelola di C#, lihat Login Apakah kode yang dikelola? Sitemap.

Dikelola plug-ins hanya mengandung kode .NET, yang berarti mereka tidak dapat mengakses fitur apa pun yang. perpustakaan NET tidak mendukung. Namun, kode yang dikelola dapat diakses oleh standar. Alat NET yang digunakan Unity untuk mengkompilasi skrip.

Ketika Anda bekerja dengan DLL di Unity, Anda harus menyelesaikan lebih banyak langkah daripada ketika Anda bekerja dengan skrip. Namun, ada situasi di mana Anda mungkin menemukannya membantu untuk membuat dan menambahkan file .dll ke proyek Unity Anda, misalnya:

  • Anda ingin menggunakan compiler dalam kode Anda yang Unity tidak mendukung.
  • Anda ingin menambahkan pihak ketiga. NET kode dalam file .dll.
  • Anda ingin menyediakan kode ke Unity tanpa sumber.

Halaman ini menjelaskan metode umum yang dapat Anda gunakan untuk membuat managed plug-insSitemap Perakitan NET yang dibuat dengan alat seperti Visual Studio untuk digunakan di Unity. More info
Lihat di Glossary
, serta bagaimana Anda dapat membuat plug-ins yang dikelola dan mengatur sesi debug menggunakan Visual Studio.

Membuat plug-in yang dikelola

Untuk membuat plug-in yang berhasil, Anda perlu membuat DLL. Untuk melakukan ini, Anda perlu kompiler yang cocok, seperti:

Tidak semua kompiler yang menghasilkan. Kode NET kompatibel dengan Unity, jadi Anda harus menguji compiler dengan beberapa kode yang tersedia sebelum melakukan pekerjaan yang signifikan dengan itu. Metode yang Anda gunakan untuk membuat DLL tergantung pada jika DLL mengandung kode API Unity:

  • Jika DLL mengandung kode API Unity, Anda perlu membuat DLL milik Unity tersedia untuk kompiler sebelum membandingkan:
    1. Untuk menemukan Unity DLLs:
      • Pada Windows, pergi ke: C:\Program Files\Unity\Hub\Editor\<version-number>\Editor\Data\Managed\UnityEngine
      • Di macOS:
        1. Cari file Unity.app di komputer Anda. Jalan ke Unity DLLs di macOS adalah: /Applications/Unity/Hub/Editor/<version-number>/Unity.app/Contents/Managed/UnityEngine
        2. Klik kanan pada Unity.app
        3. Pilih Show Package Contents.
    2. Folder UnityEngine berisi file .dll untuk sejumlah modul. Referensikan mereka untuk membuat mereka tersedia untuk skrip Anda. Beberapa ruang nama juga memerlukan referensi ke perpustakaan yang disusun dari proyek Unity (misalnya, UnityEngine.UI). Terletak di direktori folder proyek: ~\Library\ScriptAssemblies
  • Jika DLL tidak mengandung kode API Unity, atau jika Anda sudah membuat Unity DLLs tersedia, ikuti dokumentasi kompilasi Anda untuk mengkompilasi file .dll. Pilihan yang tepat yang Anda gunakan untuk mengkompilasi DLL tergantung pada kompiler yang Anda gunakan. Sebagai contoh, baris perintah untuk kompiler Roslyn, csc, mungkin terlihat seperti ini di macOS:

csc /r:/Applications/Unity/Hub/Editor/<version-number>/Unity.app/Contents/Managed/UnityEngine.dll /target:library /out:MyManagedAssembly.dll /recurse:*.cs

Dalam contoh ini:

  • Gunakan opsi /r untuk menentukan jalur ke perpustakaan untuk menyertakan dalam build, dalam kasus ini, perpustakaan UnityEngine.
  • Gunakan opsi /target untuk menentukan jenis build yang Anda butuhkan; “library” menandakan build DLL.
  • Gunakan /out untuk menentukan nama perpustakaan, yang dalam kasus ini adalah "MyManagedAssembly.dll".
  • Tambahkan nama file sumber yang akan disertakan. Gunakan metode /recurse untuk menambahkan semua file yang berakhir di ".cs' di direktori kerja Anda saat ini dan setiap subfolder. File .dll yang dihasilkan muncul di folder yang sama sebagai file sumber.

Menggunakan plug-in yang dikelola

Setelah Anda telah mengumpulkan DLL, Anda dapat menyeret file .dll ke proyek Unity seperti aset lain. Anda kemudian bisa:

  • Memperluas plug-in yang berhasil untuk melihat kelas terpisah di dalam perpustakaan.
  • Drag kelas yang berasal dari MonoBehaviour ke Game Objects.
  • Gunakan kelas non-MonoBehaviour langsung dari script lain.
An expanded DLL with the classes visible
DLL yang diperluas dengan kelas yang terlihat

Buat DLL dengan Visual Studio

Bagian ini menjelaskan:

  • Cara membangun dan mengintegrasikan contoh DLL sederhana dengan Visual Studio
  • Cara menyiapkan sesi debugging untuk DLL di Unity.

Menyiapkan Proyek

  1. Open Visual Studio dan membuat proyek baru.
  2. Pilih File > New > Project > Visual C# > .Net Standard > Class Library (.NET Standard).
  3. Tambahkan informasi berikut ke perpustakaan baru:
    • Name: Namaspace (misalnya ini, gunakan DLLTest sebagai nama).
    • Location: Folder induk proyek.
    • Solution name: folder proyek.
  4. Membuat Unity DLLs tersedia untuk skrip Anda. Di Visual Studio, buka menu kontekstual untuk References di Solution Explorer dan pilih Add Reference > Browse > Select File.
  5. Pilih file .dll yang diperlukan, terletak di folder UnityEngine.

Coding the DLL

  1. Sebagai contoh ini, nama kembali kelas default ke MyUtilities di browser Solusi.
  2. Ganti kodenya dengan berikut:
using System;   
using UnityEngine;

namespace DLLTest {

    public class MyUtilities {
    
        public int c;

        public void AddValues(int a, int b) {
            c = a + b;  
        }
    
        public static int GenerateRandom(int min, int max) {
            System.Random rand = new System.Random();
            return rand.Next(min, max);
        }
    }
}
  1. Membangun proyek untuk menghasilkan file DLL bersama dengan simbol debug.

Debugging DLL di Unity

Untuk mengatur sesi debugging untuk DLL di Unity:

  1. Buat proyek baru di Unity dan menyalin file .dll bawaan Anda (misalnya, <project folder>/bin/Debug/DLLTest.dll) ke folder Aset.
  2. Buat skrip C# yang disebut Uji di folder Aset.
  3. Ganti kontennya dengan skrip yang membuat instance baru kelas yang Anda buat di DLL Anda, gunakan fungsinya dan menampilkan output di jendela Console. Misalnya, untuk membuat skrip uji untuk DLL dari bagian di atas, salin kode berikut:
using UnityEngine;
using System.Collections;
using DLLTest;

public class Test : MonoBehaviour {

     void Start () {
        MyUtilities utils = new MyUtilities();
        utils.AddValues(2, 3);
        print("2 + 3 = " + utils.c);
     }
    
     void Update () {
        print(MyUtilities.GenerateRandom(0, 100));
     }
}
  1. Pasang skrip ini ke GameObject di SceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
    Lihat di Glossary
    dan klik Play.

Unity menampilkan output dari kode dari DLL di jendela Konsol

Memperkuat kode C# yang tidak aman

Kode C # yang tidak aman adalah kode yang mampu mengakses memori secara langsung. Tidak diaktifkan secara default karena kompilator tidak dapat memverifikasi bahwa itu tidak akan memperkenalkan risiko keamanan.

Anda mungkin ingin menggunakan kode yang tidak aman untuk:

  • Akses memori menggunakan pointer.
  • Mengalokasikan memori mentah.
  • Metode panggilan menggunakan pointer.

Untuk mengaktifkan dukungan untuk membandingkan kode C# yang tidak aman pergi ke Edit > Project Settings > Player > Other Settings dan mengaktifkan Allow Unsafe Code.

Untuk informasi lebih lanjut, lihat Dokumentasi Microsoft dari kode yang tidak aman.

Impor dan mengkonfigurasi plug-ins
Native plug-ins