
Phân tích hiệu năng và tối ưu hóa bản dựng Unity Web.
Trang web này đã được dịch bằng máy để thuận tiện cho bạn. Chúng tôi không thể đảm bảo tính chính xác hoặc độ tin cậy của nội dung được dịch. Nếu bạn có thắc mắc về tính chính xác của nội dung được dịch, vui lòng tham khảo phiên bản tiếng Anh chính thức của trang web.
Bài viết này cung cấp các mẹo để tối ưu hóa dự án Unity Web của bạn.
Trước đây được gọi là “WebGL”, hỗ trợ nền tảng web Unity bao gồm những cải tiến quan trọng giúp giảm thiểu rào cản trên nhiều thiết bị hơn và tận dụng các API đồ họa mới nhất để đảm bảo tốc độ khung hình mượt mà và hiệu năng vượt trội ngay cả đối với những trò chơi web tham vọng nhất.
Điều này bao gồm hỗ trợ WebGL, một API JavaScript cho phép hiển thị đồ họa 2D và 3D trên trình duyệt với tốc độ cao. Google Chrome, Mozilla Firefox, Safari và Microsoft Edge đều hỗ trợ nội dung WebGL 2. WebGL 2 dựa trên OpenGL ES 3.0.
Bất kể bạn sử dụng API đồ họa nào, mục tiêu là tạo ra một trò chơi Unity Web có kích thước nhỏ để dễ dàng phân phối và nhúng lên các trang web và mạng xã hội. Bạn cũng có thể sử dụng bản dựng web để tạo mẫu thử nghiệm và tham gia các cuộc thi phát triển game ngắn hạn, nơi việc phân phối dễ dàng là yếu tố then chốt, cũng như để thử nghiệm, ngay cả khi bạn đang nhắm đến một nền tảng khác.
Các trò chơi trên web không thể truy cập các tệp hoặc phần cứng cục bộ và nhìn chung có hiệu năng thấp hơn một chút so với các trò chơi được biên dịch gốc.
Ghi chú : API mới, WebGPU, hiện có sẵn để truy cập sớm trong bản beta của Unity 6 (2023.3.0b1 beta). WebGPU vẫn đang trong giai đoạn phát triển và không được khuyến khích sử dụng cho các trường hợp ứng dụng thực tế.
WebGPU được thiết kế với mục tiêu khai thác và đưa các khả năng hiện đại của GPU lên mạng internet. API web mới này cung cấp giao diện tăng tốc đồ họa hiện đại được triển khai nội bộ thông qua các API GPU gốc, chẳng hạn như DirectX12, Vulkan và Metal. triển khai cụ thể bằng ngôn ngữ gốc sẽ phụ thuộc vào nền tảng của trình duyệt và các trình điều khiển đồ họa có sẵn. Thông tin chi tiết về cách bắt đầu, cũng như các bản demo WebGPU bổ sung, có thể được tìm thấy trong diễn đàn đồ họa .

CHỌN MÔ-ĐUN WEBGL
Tạo bản dựng
Để triển khai trên nền tảng Unity Web, trước tiên bạn cần thêm mô-đun Web vào Unity Editor để tạo bản dựng Web. Tìm mục cài đặt trong Unity Hub, nhấp vào biểu tượng Cài đặt, rồi chọn Thêm mô-đun .
Trong hộp thoại mới, cuộn xuống để tìm Web Build Support , chọn nó và nhấp vào Done .
Mở lại dự án của bạn và thay đổi nền tảng mục tiêu trong File > Build Settings . Hãy sử dụng tùy chọn "Bản dựng dành cho phát triển" trong quá trình phát triển trò chơi của bạn. Nó cung cấp thêm thông tin gỡ lỗi, chẳng hạn như dấu vết ngăn xếp, thông báo lỗi chi tiết và thông tin nhật ký có thể hỗ trợ bạn khắc phục sự cố và thực hiện các thay đổi đối với trò chơi của mình. Bạn có thể thực hiện những thay đổi nhỏ đối với mã trò chơi, tài nguyên hoặc cài đặt của mình, sau đó nhanh chóng biên dịch lại và kiểm tra những thay đổi đó trên trình duyệt mà không cần đến quy trình biên dịch hoàn chỉnh.
Hãy nhớ bỏ chọn tùy chọn "Development Build" trong "Build Settings" cho bản dựng cuối cùng bạn xuất bản.
Chọn Build And Run để tạo một phiên bản trò chơi chạy trên trình duyệt nhằm mục đích thử nghiệm. Google Chrome là một lựa chọn tốt để thử nghiệm trò chơi vì nó cung cấp một số công cụ dành cho nhà phát triển.
Bạn sẽ được yêu cầu chọn vị trí để xây dựng. Các tệp trong bản dựng bao gồm một tệp index.html bổ sung phần tử HTML5 Canvas vào Mô hình Đối tượng Tài liệu (DOM), là dạng biểu diễn dữ liệu của các đối tượng tạo nên cấu trúc và nội dung của một tài liệu trên web. Trò chơi được hiển thị trên khung vẽ này. Các tệp xây dựng cũng bao gồm thư mục TemplateData và thư mục Build. Thư mục TemplateData chứa các tài nguyên HTML được sử dụng trên trang, chẳng hạn như biểu tượng favicon được sử dụng trong thanh địa chỉ trình duyệt và hình ảnh được sử dụng trong mã HTML của trang.
Bạn cũng có thể thiết lập các bản dựng tự động, và Unity Build Automation là một trong những lựa chọn cho việc này.

MÔ HÌNH KHU VƯỜN TỪ MẪU 3D URP, CÓ SẴN TRÊN UNITY HUB.
Quy trình kết xuất tích hợp sẵn hay URP?
Bạn có thể sử dụng Render Pipeline tích hợp sẵn hoặc Universal Render Pipeline (URP) cho trò chơi trên web. Tuy nhiên, chúng tôi khuyên dùng URP vì nó cung cấp khả năng tùy chỉnh và mở rộng nội dung hiệu quả cho nhiều thiết bị phần cứng khác nhau.
Nhận hướng dẫn chi tiết về cách chuyển đổi dự án của bạn từ Render Pipeline tích hợp sẵn sang URP với sách điện tử " Giới thiệu về Universal Render Pipeline dành cho những người sáng tạo Unity nâng cao" .

CÔNG CỤ HỒ SƠ UNITY
Chín mẹo để tối ưu hóa bản dựng Unity Web
Khi nhắm mục tiêu vào một hệ máy chơi game, bạn cần có thông số kỹ thuật chính xác về bộ nhớ, CPU và mức sử dụng GPU. Mạng internet là một thế lực hoàn toàn khác. Để trò chơi của bạn tiếp cận được nhiều người nhất có thể, bạn cần đảm bảo nó hoạt động tốt trong môi trường bộ nhớ hạn chế.
Dưới đây là một số mẹo giúp trò chơi của bạn chạy mượt mà trên phần cứng cấu hình thấp, được trích từ sách điện tử " Tối ưu hóa hiệu suất trò chơi di động của bạn" .
1. Tối ưu hóa tài nguyên trò chơi của bạn
Tối ưu hóa các tài nguyên như họa tiết và mô hình cho web, ví dụ: sử dụng họa tiết nén và giảm số lượng đa giác trong mô hình của bạn, nếu có thể. Mặc dù không có quy tắc nào cố định, hãy thống nhất một số nguyên tắc chung trong nhóm để đảm bảo tính nhất quán trong hiệu suất.
2. Sử dụng nhóm đối tượng (object pooling)
Quản lý đối tượng (object pooling ) là một kỹ thuật giúp cải thiện hiệu suất bằng cách tái sử dụng các đối tượng thay vì tạo và hủy các đối tượng mới. Điều này có thể hữu ích cho các trò chơi có nhiều thao tác tạo và xóa vật phẩm. Các mẫu thiết kế lập trình khác như mô hình bánh đà cũng có thể hữu ích. Hãy xem sách điện tử " Nâng tầm mã nguồn của bạn với các mẫu lập trình game" để biết các mẹo nâng cao về cách triển khai các mẫu thiết kế trong các dự án Unity .
3. Sử dụng Universal Render Pipeline và SRP Batcher
Tăng hiệu suất với hệ thống xử lý theo lô SRP Batcher của Unity, giúp tăng tốc độ render bằng CPU, tùy thuộc vào cảnh. Nó hoạt động bằng cách nhóm các lệnh vẽ lại với nhau dựa trên các thuộc tính vật liệu chung, chẳng hạn như shader và texture, do đó giảm số lượng thay đổi trạng thái cần thiết trong quá trình hiển thị.
4. Sử dụng tính năng loại bỏ các đối tượng bị che khuất (occlusion culling).
Hệ thống loại bỏ các đối tượng bị che khuất trong Unity có thể giúp cải thiện hiệu suất bằng cách chỉ hiển thị các đối tượng mà người chơi có thể nhìn thấy. Kỹ thuật loại bỏ các đối tượng bị che khuất (occlusion culling) hoạt động hiệu quả nhất trong các cảnh có các khu vực nhỏ, được xác định rõ ràng và tách biệt nhau bởi GameObjects rắn chắc, ví dụ như các phòng được nối với nhau bằng hành lang.
5. Sử dụng hệ thống LOD (Mức độ chi tiết) tích hợp sẵn.
Hệ thống LOD tích hợp sẵn của Unity giúp cải thiện hiệu năng bằng cách giảm độ phức tạp của các đối tượng ở xa người chơi. Khi khoảng cách giữa máy ảnh và vật thể tăng lên, hệ thống LOD sẽ tự động thay thế phiên bản chi tiết cao của vật thể bằng các phiên bản chi tiết thấp hơn, giảm tải công việc kết xuất trong khi vẫn duy trì hình ảnh nhất quán.
6. Hãy cố định hệ thống chiếu sáng của bạn nếu có thể.
Nâng cao hiệu suất bằng cách tính toán trước thông tin chiếu sáng cho các cảnh của bạn với Lightmaps và Light Probes .
7. Giảm thiểu việc tạo hoặc thao tác chuỗi không cần thiết.
Trong C#, chuỗi là kiểu tham chiếu, không phải kiểu giá trị. Tránh phân tích cú pháp các tệp dữ liệu dựa trên chuỗi như JSON và XML; thay vào đó, hãy lưu trữ dữ liệu trong ScriptableObjects hoặc các định dạng như MessagePack hoặc Protobuf. Bạn cũng có thể xem xét định dạng nhị phân cho các trường hợp như lưu trữ dữ liệu trò chơi lâu dài (lưu trò chơi). Hãy sử dụng lớp StringBuilder nếu bạn cần tạo chuỗi trong quá trình thực thi chương trình.
8. Sử dụng Hệ thống Tài sản có thể định địa chỉ
Hệ thống quản lý tài sản có thể định địa chỉ cung cấp một cách đơn giản để quản lý nội dung của bạn bằng cách tải các AssetBundle theo "địa chỉ" hoặc bí danh. Hệ thống thống nhất này tải dữ liệu không đồng bộ từ đường dẫn cục bộ hoặc mạng phân phối nội dung từ xa (CDN).
9. Hạn chế các hiệu ứng xử lý hậu kỳ
Các hiệu ứng xử lý hậu kỳ toàn màn hình có thể làm giảm hiệu năng, vì vậy hãy sử dụng chúng một cách tiết kiệm trong trò chơi của bạn.
Tùy chỉnh HTML của máy chủ
Khi bạn tạo bản dựng Unity Web, Unity sử dụng một mẫu để tạo trang web hiển thị trò chơi của bạn.
Các mẫu mặc định là:
- Mặc định: Một trang trắng với thanh tiến trình tải trên nền xám.
- Tối giản: Cấu trúc tối thiểu cần thiết để chạy trò chơi của bạn
- Ứng dụng web tiến bộ (PWA): Điều này bao gồm tệp kê khai web và trình xử lý dịch vụ. Trên trình duyệt máy tính để bàn phù hợp, nút cài đặt sẽ hiển thị trên thanh địa chỉ để thêm trò chơi vào danh sách ứng dụng có thể khởi chạy của người chơi.
Cách dễ nhất để tạo trang HTML tùy chỉnh của riêng bạn là bắt đầu với một trong ba mẫu có sẵn, bạn có thể tìm thấy chúng thông qua/PlaybackEngines/WebGLSupport/BuildTools/WebGLTemplates/. Trên máy Mac, bạn có thể tìm thấy thư mục cài đặt Unity trong thư mục Ứng dụng.
Sao chép một mẫu, đặt nó vào thư mục Project/Assets/WebGLTemplates của riêng bạn và đổi tên để bạn có thể dễ dàng nhận ra nó sau này. Giờ đây, bạn có thể tùy chỉnh nó cho phù hợp với nội dung trò chơi, địa điểm triển khai và nền tảng mục tiêu.
Các mẫu trong thư mục WebGLTemplates của dự án sẽ xuất hiện trong mục Chỉnh sửa > Cài đặt dự án… > Trình phát > Độ phân giải và Trình bày . Tên của mẫu trùng với tên thư mục của nó. Để thêm hình ảnh thu nhỏ giúp dễ tham khảo cho tùy chọn này, hãy thêm một hình ảnh có kích thước 128 x 128 pixel vào thư mục mẫu và đặt tên là thumbnail.png.
Trong quá trình biên dịch, Unity xử lý trước các tệp mẫu và đánh giá tất cả các macro và chỉ thị điều kiện có trong các tệp đó. Nó tìm và thay thế tất cả các khai báo macro bằng các giá trị do Trình soạn thảo cung cấp và tự động xử lý trước tất cả các tệp .html, .php, .css, .js và .json trong thư mục mẫu.
Ví dụ, hãy xem dòng mã này:
Nếu Chiều rộng khung vẽ mặc định được đặt là 960 và Chiều cao khung vẽ mặc định là 600 trong bảng Độ phân giải và Trình bày, thì mã sẽ trông như thế này sau khi xử lý sơ bộ:
.
Ba dấu ngoặc nhọn báo hiệu cho trình biên dịch tìm giá trị của biến được chỉ định.
Bạn cũng sẽ tìm thấy các ví dụ trong các mẫu mặc định về các chỉ thị điều kiện sử dụng #if , #else và #endif :
#biểu thức if
//Nếu biểu thức trả về giá trị đúng
#else
//Nếu biểu thức không trả về giá trị đúng
#endif
Nếu bạn muốn sử dụng mẫu tùy chỉnh, Unity Asset Store cung cấp một số tùy chọn .
Các trang web chia sẻ trò chơi và mã nguồn
Nếu bạn chia sẻ trò chơi của mình trên nền tảng dành cho các trò chơi dựa trên trình duyệt, bạn cần phải điều chỉnh trang index.html cho phù hợp với các thông số kỹ thuật. Hãy xem tài liệu hướng dẫn của một số nền tảng trò chơi trực tuyến phổ biến để tìm hiểu cách thực hiện việc này:
Thiết kế đáp ứng
Bạn thường muốn trò chơi của mình tự động điều chỉnh kích thước cửa sổ trình duyệt để phù hợp với thiết kế đáp ứng, điều này đòi hỏi bạn phải điều chỉnh mã tải. Bạn có thể sử dụng "Promise" trong JavaScript để thực hiện điều này, nó đại diện cho một thao tác chưa hoàn thành nhưng dự kiến sẽ hoàn thành trong tương lai.
Trong trang index.html của mỗi mẫu (xem ví dụ mã bên dưới), hãy tìm script.onload . Sự kiện `script.onload` được kích hoạt khi tập lệnh của engine Unity đã tải xong. Ngay trước khi điều đó xảy ra, bạn có hai biến toàn cục: myGameInstance , chứa tham chiếu đến thể hiện Unity , và myGameLoaded , cho biết trò chơi đã tải xong hay chưa và mặc định là false. Chúng được khai báo là biến var nên có phạm vi toàn cục và có thể được truy cập ở bất kỳ đâu trong kịch bản.
Hàm createUnityInstance() được gọi để tạo một thể hiện mới của trò chơi Unity . Hàm này trả về một Promise, Promise này sẽ được giải quyết khi trò chơi được tải hoàn toàn và sẵn sàng hiển thị (khối `then` của Promise `createUnityInstance`).
Bên trong hàm then(), biến myGameInstance được gán cho một đối tượng Unity và biến myGameLoaded được đặt thành true, cho biết trò chơi đã sẵn sàng. Sau đó, hàm resizePage() được gọi để thiết lập kích thước ban đầu của trò chơi, và một trình lắng nghe sự kiện được thêm vào sự kiện thay đổi kích thước của cửa sổ để kích thước của trò chơi có thể được cập nhật mỗi khi cửa sổ được thay đổi kích thước. Xem đoạn trích mã bên dưới.
Tiếp theo, chúng ta có hàm resizePage ở cuối đoạn mã, như được hiển thị trong đoạn trích mã sau, được sử dụng để thay đổi kích thước trò chơi sao cho phù hợp với kích thước cửa sổ. Nếu trò chơi được tải, nó sẽ thiết lập các giá trị kiểu cho khung vẽ hiển thị trò chơi sao cho phù hợp với kích thước cửa sổ, làm cho trò chơi lấp đầy toàn bộ cửa sổ:
hàm resizePage(){
if (myGameInstance !== undefined && myGameLoaded === true)
{
canvas.style.width = window.innerWidth + 'px';
canvas.style.height = window.innerHeight + 'px';
}
}
let myGameLoaded = false;
script.src = loaderUrl;
script.onload = () => {
createUnityInstance(canvas, config, (progress) => {
progressBarFull.style.width = 100 * progress + "%";
}).then((unityInstance) => {
myGameInstance = unityInstance;
myGameLoaded = true;
resizePage();
window.addEventListener('resize', resizePage, false);
loadingBar.style.display = "none";Thêm và gọi JavaScript
Nhiều trò chơi nhắm đến trình duyệt sẽ cần tương tác với mã JavaScript để cho phép bạn gọi các dịch vụ web nhằm hỗ trợ đăng nhập người dùng, bảng xếp hạng điểm cao, v.v., hoặc để tương tác với DOM của trình duyệt. Bất kỳ đoạn JavaScript nào bạn thêm trực tiếp để có thể gọi từ một tập lệnh C# đều cần có phần mở rộng .jslib và được đặt trong thư mục Assets/Plugins . Nó nên được bao bọc trong phương thức mergeInto. Điều này đòi hỏi hai tham số: LibraryManager.library và sau đó là một đối tượng JavaScript chứa một hoặc nhiều hàm. Các hàm này là các hàm JavaScript chuẩn. GetExchangeRates dưới đây minh họa cách sử dụng một dịch vụ web đơn giản cung cấp dữ liệu JSON.
Khi bạn tạo bản dựng, các hàm này sẽ được thêm vào tệp Build/.framework.js . Bạn có thể gọi các hàm này từ một tập lệnh C# bằng cách khai báo hàm đó là DllImport, như được hiển thị trong ví dụ mã này:
public class SphereController : MonoBehaviour
{
[DllImport("__Internal")]
private static extern void GetExchangeRates();
private void Start()
{
GetExchangeRates();
}
}
Thông tin thêm
mergeInto(LibraryManager.library, {
LogAlert: hàm (str) {
window.alert("LogAlert: " + UTF8ToString(str));
},
GetExchangeRates: function(){
fetch("https://open.er-api.com/v6/latest/USD")
.then((response) => response.json())
.then((data) => console.log(data));
},
LogString: hàm (chuỗi) {
console.log("LogString: " + UTF8ToString(str));
},
});
SỬ DỤNG LỆNH SENDMESSAGE TỪ BẢNG ĐIỀU KHIỂN CHROME
Sử dụng SendMessage
Ngoài việc C# gọi hàm JavaScript , JavaScript cũng có thể gọi phương thức C#. Cơ chế này sử dụng một giao thức nhắn tin:
myGameInstance.SendMessage(‘MyGameObject’, ‘MyFunction’)
myGameInstance.SendMessage(‘MyGameObject’, ‘MyFunction’, 5)
myGameInstance.SendMessage(‘MyGameObject’, ‘MyFunction’, ‘A string’)
Để sử dụng SendMessage, bạn cần có tham chiếu đến thể hiện của trò chơi trong phạm vi. Kỹ thuật thông thường là chỉnh sửa index.html bằng cách thêm một biến toàn cục và gán biến này trong khối then của Promise script.onload như đã thấy trước đó. Chức năng đơn giản này được thêm vào như một phần của MonoBehaviour Component gắn liền với GameObject có tên là Sphere .
public void SetHeight( float height )
{
Vector3 pos = transform.position;
pos.y = chiều cao;
transform.position = pos;
}
Bạn có thể mở Bảng điều khiển của Chrome bằng cách nhấn phím F12 và nhập trực tiếp:
myGameInstance.SendMessage('Sphere', 'SetHeight', 3)
Nhấn Enter để gọi hàm Di chuyển quả cầu . Sự chuyển động sẽ chỉ được phản ánh trong quá trình hiển thị nếu bạn đã thiết lập Chạy trong nền hoặc đặt Application.runInBackground thành true. Đó là vì theo mặc định, quá trình hiển thị chỉ diễn ra khi cửa sổ canvas được chọn.
Sử dụng bảng điều khiển trình duyệt để gỡ lỗi.
Hãy sử dụng Debug.Log khi gỡ lỗi cho các nền tảng trình duyệt. Mọi thông báo đều được gửi đến bảng điều khiển của trình duyệt. Đối với Chrome, bạn tìm thấy mục này bằng cách nhấn phím F12 và chuyển sang tab Console. Nhưng lớp Debug cung cấp nhiều tùy chọn hơn. Sử dụng Debug.LogError , Console sẽ cung cấp dấu vết ngăn xếp, điều này có thể hữu ích.
Thông tin thêm
Deployment
Chúng tôi khuyên bạn nên sử dụng tùy chọn "Bản dựng dành cho nhà phát triển" trong quá trình phát triển, nhưng hãy bỏ chọn tùy chọn này khi triển khai trò chơi lên trang web chính thức. Đối với bản dựng phát hành, bạn có tùy chọn nén. Bạn có thể cần điều chỉnh cài đặt trên máy chủ khi sử dụng tính năng nén; xem Hướng dẫn sử dụng để biết các mẹo thực hiện việc này.

CÔNG CỤ PHÂN TÍCH HIỆU SUẤT CHROME DEVTOOLS
Tầm quan trọng của việc lập hồ sơ
Việc phân tích hiệu năng dự án trong suốt chu kỳ phát triển rất quan trọng để bạn có thể phát hiện các vấn đề về hiệu năng kịp thời. Unity Profiler là một công cụ tốt để xác định và khắc phục các điểm nghẽn hiệu năng trong trò chơi của bạn. Nó theo dõi mức sử dụng CPU và bộ nhớ, giúp bạn xác định các khu vực trong trò chơi cần tối ưu hóa. Bạn cũng có thể sử dụng thêm Profile Analyzer , Memory Profiler và Web Diagnostics Overlay .
Tải xuống sách điện tử " Hướng dẫn tối ưu về phân tích hiệu năng trò chơi Unity" để tìm hiểu sâu hơn về phân tích hiệu năng trong Unity.
Hãy cùng xem một vài mẹo để bắt đầu phân tích hiệu năng của bản dựng Unity Web.
Kích hoạt Profiler của Unity
Vào File > Build Settings trong Editor và chọn Development Build rồi Autoconnect Profiler để sử dụng Profiler với bản dựng Web.
Chọn mô-đun Sử dụng CPU
Sử dụng mô-đun này để phân tích hiệu suất mã của bạn và xác định các khu vực gây ra vấn đề về hiệu suất. Phân tích các yếu tố như lời gọi hàm, thực thi tập lệnh và thu gom rác.
Chọn mô-đun Memory Profiler
So với các nền tảng khác, Unity Web có tài nguyên bộ nhớ hạn chế hơn. Sử dụng mô-đun này để phân tích mức sử dụng bộ nhớ của ứng dụng và xác định các khu vực cần tối ưu hóa.
Sử dụng bảng Hiệu suất của Chrome DevTools.
Công cụ dành cho nhà phát triển của Chrome bao gồm bảng Hiệu suất , giúp bạn dễ dàng tìm ra các điểm nghẽn trong trò chơi của mình. Trong số các tính năng khác, nó cung cấp bảng Nguồn để thêm điểm dừng vào các tệp JavaScript và bảng Điều khiển để xem thông báo gỡ lỗi và nhập mã JavaScript .
Đo lường hiệu năng trên các thiết bị khác nhau
Điều này sẽ giúp bạn xác định các vấn đề về hiệu năng có thể liên quan đến một thiết bị hoặc trình duyệt cụ thể và giúp bạn tối ưu hóa trò chơi cho phù hợp.
Giảm số lượng lệnh gọi vẽ.
Số lượng lệnh vẽ (draw calls) là một trong những nguyên nhân chính gây tắc nghẽn hiệu năng đối với các bản dựng Unity Web. Hãy sử dụng Unity Profiler để xác định các khu vực có số lượng lệnh vẽ cao và thử giảm chúng .
Phân tích hiệu năng trên các thiết bị cấu hình thấp
Hãy thử nghiệm trên các thiết bị cấu hình thấp để đảm bảo ứng dụng của bạn được tối ưu hóa cho nhiều loại phần cứng khác nhau.
Bật tùy chọn “Chạy ngầm” trong quá trình phân tích hiệu năng.
Nếu tùy chọn "Chạy trong nền" được bật trong Cài đặt Trình phát WebGL hoặc nếu bạn bật "Application.runInBackground" , nội dung của bạn sẽ tiếp tục chạy khi khung vẽ hoặc cửa sổ trình duyệt mất tiêu điểm, điều này có thể hữu ích khi phân tích hiệu năng.
Thêm tài nguyên Unity Web
Việc sử dụng Unity Web Build là một cách tuyệt vời để phân phối trò chơi của bạn đến nhiều người chơi. Trong quá trình phát triển, bạn nên hướng đến việc giữ kích thước hình học và kết cấu ở mức vừa phải, giảm số lượng lệnh vẽ, đồng thời phân tích hiệu năng và kiểm tra trên nhiều thiết bị khác nhau. Cuối cùng, hãy sử dụng URP để đảm bảo hiệu năng ổn định trên nhiều loại phần cứng khác nhau.
Thông tin thêm
Mẹo và thủ thuật khi sử dụng mô-đun WebGL của Unity
Được trải nghiệm sớm giao diện WebGPU mới trong Unity 2023.3.
Bạn có thể tìm thấy tất cả các sách điện tử và bài viết nâng cao của Unity tại trung tâm hướng dẫn thực hành tốt nhất Unity .