Di C # ada dua jenis tipe, kira-kira: tipe nilai dan tipe referensi .
Anda menggunakan new
saat Anda membuat keduanya, tetapi tipe nilai dibuat di stack (sebagian besar waktu), dan hanya tipe referensi yang dibuat di heap. Setelah dibuat, tipe referensi bertahan sampai pengumpul sampah datang, menentukan mereka tidak lagi diperlukan, dan mengumpulkan mereka. Contoh pada tumpukan hancur secara efisien ketika bingkai tumpukan hilang (ketika fungsi mereka dibuat pada akhirnya).
Vector3
adalah tipe nilai dalam Unity, jadi hampir semua instance yang pernah Anda buat akan disimpan di stack dan dengan demikian murah untuk dibuat dan dihancurkan. Jadi Anda tidak mungkin melakukan kesalahan apa pun di sini. Ini tentu saja tidak membuat kebocoran memori, dan hampir pasti tidak akan menjadi masalah kinerja (Anda ingin profil untuk memastikan, bagaimanapun).
Membuat banyak jenis referensi baru setiap frame dapat bermasalah karena hal itu dapat mendorong pengumpul sampah untuk menjalankan lebih sering, menyebabkan pasak saat menjeda semua utas Anda untuk melakukan tugasnya. Tapi tipe nilai suka Vector3
adalah taruhan yang cukup aman.