Trong C # có hai loại, đại khái là: loại giá trị và loại tham chiếu .
Bạn sử dụng new
khi bạn tạo cả hai, nhưng các loại giá trị được tạo trên ngăn xếp (hầu hết thời gian) và chỉ các loại tham chiếu được tạo trên heap. Sau khi được tạo, các loại tham chiếu dính xung quanh cho đến khi bộ thu gom rác xuất hiện, xác định chúng không còn cần thiết và thu thập chúng. Các thực thể trên ngăn xếp bị phá hủy hiệu quả khi khung ngăn xếp biến mất (khi chức năng chúng được tạo ở cuối).
Vector3
là một loại giá trị trong Unity, vì vậy hầu như tất cả các phiên bản bạn từng tạo sẽ được lưu trữ trên ngăn xếp và do đó rẻ cho cả việc tạo và hủy. Vì vậy, bạn không có khả năng làm bất cứ điều gì sai ở đây. Nó chắc chắn không tạo ra rò rỉ bộ nhớ và gần như chắc chắn sẽ không phải là vấn đề về hiệu năng (dù sao bạn cũng muốn cấu hình để chắc chắn).
Việc tạo ra nhiều kiểu tham chiếu mới, mọi khung hình đều có thể gặp vấn đề vì điều đó có thể khiến trình thu gom rác chạy thường xuyên hơn, gây ra các vướng mắc khi nó tạm dừng tất cả các luồng của bạn để thực hiện công việc của nó. Nhưng các loại giá trị như Vector3
là một đặt cược khá an toàn.