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:
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.
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:
C:\Program Files\Unity\Hub\Editor\<version-number>\Editor\Data\Managed\UnityEngine
Unity.app
di komputer Anda. Jalan ke Unity DLLs di macOS adalah: /Applications/Unity/Hub/Editor/<version-number>/Unity.app/Contents/Managed/UnityEngine
Unity.app
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:
/r
untuk menentukan jalur ke perpustakaan untuk menyertakan dalam build, dalam kasus ini, perpustakaan UnityEngine
./target
untuk menentukan jenis build yang Anda butuhkan; “library” menandakan build DLL./out
untuk menentukan nama perpustakaan, yang dalam kasus ini adalah "MyManagedAssembly.dll"./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.Setelah Anda telah mengumpulkan DLL, Anda dapat menyeret file .dll ke proyek Unity seperti aset lain. Anda kemudian bisa:
Bagian ini menjelaskan:
DLLTest
sebagai nama).MyUtilities
di browser Solusi.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);
}
}
}
Untuk mengatur sesi debugging untuk DLL di Unity:
<project folder>/bin/Debug/DLLTest.dll
) ke folder Aset.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));
}
}
Unity menampilkan output dari kode dari DLL di jendela Konsol
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:
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.