Unity3D Profiler mang lại cho tôi những đột biến chủ yếu là về thu gom rác thải. Trong ảnh chụp màn hình dưới đây, ba gai đỏ đại diện cho ba quầy hàng mà tôi có trong trò chơi của mình. Mỗi gian hàng trong số này là 100 + ms và phần lớn thời gian được sử dụng trên TrackDependencies
.Unity3D: tối ưu hóa bộ sưu tập rác
Theo Unity instruction, tôi đã cố gắng này thêm vào mã của tôi:
if (Time.frameCount % 30 == 0)
{
System.GC.Collect();
}
này đã không giúp đỡ. Tôi vẫn có gai và họ vẫn mất 100 + ms. Chính xác những gì đang diễn ra và tôi có thể làm gì để tối ưu hóa trò chơi của mình?
PS:
Tôi đang tự động tạo ra và phá hủy rất nhiều GameObject
s trong trò chơi của tôi. Có thể đó là một vấn đề?
Tôi không có chuỗi nối trong một vòng lặp hoặc mảng dưới dạng giá trị trả về như được báo trước trong the post.
bạn có đang hủy các đối tượng ở đâu đó trong mã của mình không? – Heisenbug
Nếu có thể, việc gộp các vật thể của bạn để tránh phá hủy quá mức có thể là một giải pháp tốt. – SlxS
@Heisenbug Có Tôi đang tự động tạo và phá hủy rất nhiều đối tượng trong trò chơi của mình. Trong hàm hủy đối tượng của tôi, tôi cũng được gọi là 'Resources.UnloadUnusedAssets();' – CherryQu