logo
Khóa học lập trình game server - smartfox - game đa người chơi Học lập trinh game online 3dvietpro Sửa chữa và thiết kế website .net
Welcome Guest! To enable all features please Đăng nhập or Đăng ký.

Thông báo

Icon
Error

Tùy chọn
Xem
Xem bài viết cuối Go to first unread
cleancode.vn  
#1 Đã gửi : 05/08/2015 lúc 12:04:20(UTC)
cleancode.vn

Danh hiệu: Newbie

Nhóm: Registered
Gia nhập: 04-08-2015(UTC)
Bài viết: 1
Viet Nam
Đến từ: Hà Nội

Bài viết được lấy từ website cleancode.vn

1. Thỉnh thoảng khi đang làm việc với unity bạn có thể quên rằng mình đang chỉnh sửa trong chế độ play mode (Mọi chỉnh sửa trong play mode sẽ bị mất khi kết thúc play mode). Chúng ta có thể thay đổi màu sắc khi đang hoạt động ở chế độ play mode cho dễ nhớ. Vào Preferences => Colours => Play mode Tint


2. Để dễ dàng chỉnh vị trí và góc quay camera phù hợp ta có thể chỉnh trên sceneview sau đó chọn “Align With View”, chọn Ctrl + Shift + F. Góc nhìn sẽ hiển thị đúng trên GameView như ý muốn:

UserPostedImage


3. Bình thường khi tìm assert trong project, chúng ta nhập vào ô search. Trong trường hợp muốn tìm assert trên assert store mà không muốn mở cửa sổ assert store thì nhập điều kiện search là Assert:

UserPostedImage

4. Khi muốn move hoặc rotate từng đoạn một (snap), chúng ta giữ phím control trong lúc move hoặc rotate. Các thông số snap có thể được setting qua editor (Chọn Edit => Snap Setting)

UserPostedImage


5. Một tip khác sử dụng chức năng snap: Giữ phím V kèm theo di chuyển object có thể đính 2 object vào nhau. Tính năng này rất hữu ích trong quá trình xây dựng vật thể từ các khối có sẵn.
[size=7]

Sửa bởi quản trị viên 07/08/2015 lúc 05:17:08(UTC)  | Lý do: Chưa rõ

Cleancode.vn - Đào tạo lập trình Game Unity Chuyên nghiệp
Bạn bình luận ngay tại đây
michealtran  
#2 Đã gửi : 09/10/2015 lúc 01:49:25(UTC)
michealtran

Danh hiệu: Newbie

Nhóm: Registered
Gia nhập: 09-10-2015(UTC)
Bài viết: 1
Viet Nam
Đến từ: Ha Noi

Tối ưu hóa game unity:

Làm thế nào để một game có thể chạy mượt mà trên nhiều điện thoại với cấu hình khác nhau là một vấn đề khó . Trong khi bạn khó có thể tối ưu hóa game ngay từ khi phát triển, bạn có thể sử dụng những thủ thuật sau để tối ưu hóa nó. Tối ưu hóa Game một nữa là kinh nghiệm một nửa là nghệ thuật .

#0: Chọn thiết bị phát triển của bạn càng nhiều càng tốt (thiết bị test )



Những thiết bị có cấu hình thấp càng tốt. Tuy nhiên bạn cũng cần xác định giới hạn game có thể chạy ở cấu hình tối thiểu thế nào . Có trong tay những thiết bị cấu hình thấp bạn có thể bắt đầu tối ưu hóa game được ngay khi bắt tay phát triển.nhieu_thiet_bi

#1 Tối ưu hóa kích thước file build
Đôi khi game có kích thước lớn mà không tìm ra nguyên nhân. Cố gắng giữ dung lượng file build ra ở mức thấp nhất rất quan trọng. Nó ảnh hưởng đến quyết định tải game về của người chơi. Và một phần không kém là khi quyết định gỡ game để lấy dung lượng bộ nhớ , người dùng sẽ gỡ những game có kích thước lớn trước.

#1 Nén hình ảnh (textures) và âm thanh

Build game và kiểm tra Editor Log để tìm xem files nào chiếm nhiều nhiều dung lượng trong game. Hầu hết chúng là hình ảnh hoặc âm thanh. Hình ảnh nên để hình vuông và ở dạng POT (Power of Two – dài rộng chia hết cho 2) để có thể nén , kích thước trong khoảng 1024×1024. Cố gắng không lớn hơn 2048. Audio file nên để dạng nén trừ phi nó quá ngắn và việc nén xuống làm giảm chất lượng.

#2: Gộp các sprites

Tất cả các sprites trong UI và game nên được gộp lại (đóng gói -pack) trong một file bất cứ khi nào có thể . Trong Unity 5 bạn có công cụ miễn phí Sprite Packer , nhưng bạn cũng có thể sử dụng công cụ khác như NGUI. Gộp các sprite là cách tốt để sử dụng các spites không phải dạng POT. Unity sẽ quản lý các sprite cho bạn và giảm được khá nhiều dung lượng bộ cài.

#3: Bật loại bỏ dll không sử dụng (Stripping mscorlib level)

Nếu dự án hoặc Plugin của bạn có thể , nên bật stripping bỏ những dlls không dùng trong project. Thiết lập sẽ làm bạn bất ngờ về dung lượng giảm đi nếu bạn làm 2D game và không sử dụng nhiều tính năng của Unity.

#4: Hãy chắc chắn loại bỏ các assets không cần thiết

Nếu bạn disabled gameObject trong scene, unity vẫn đưa mọi asset mà gameObject có liên quan vào file build thậm chí ngay cả khi bạn không bao giờ enable nó. Xóa toàn bộ gameObject không sử dụng trong hierarchy. Bất cứ file nào nằm trong thư mục “Resources” sẽ được đưa vào file build , hãy kiểm tra kỹ!

#5 Tối ưu hóa sử dụng bộ nhớ

Khi hệ điều hành (Operational Systems ) cập nhật nó sẽ sử dụng nhiều bộ nhớ và game của bạn sẽ được cấp phát RAM ít đi. Cố gắng giảm thiểu số lượng asset tải vào bộ nhớ càng nhiều càng tốt. Thỉnh thoảng game bị văng ra thường là do thiếu bộ nhớ.

#6: Gộp các Sprites … một cách thông minh

Khi lần đầu tiên Game khởi động các file sẽ được giải nén, vì vậy chúng sẽ chiếm nhiều dung lượng. Nhưng nếu bạn gộp (đóng gói -pack) các sprites một cách tiết kiệm , game sẽ dùng ít RAM. Kinh nghiệm cho thấy gộp những gì xuất hiện cùng nhau và cố gắng không để khoảng trống trong atlases. Ví dụ, bạn nên gộp toàn bộ UI trong một atlas riêng biệt. Trong trường hợp có những phần UI asset không thường xuất hiện, nên gộp nó trong một atlas khác. Sử dụng 9-sliced sprites và tránh sử dụng một ảnh lớn làm ảnh nền (background pictures ) ! (Nên tạo nó từ tiles sprites hoặc sprites đơn giản). Tắt MIP maps.

#7: Giảm chất lượng ảnh hoặc âm thanh

Bạn có chắc là cần sử dụng nhân vật với độ rộng 1024 điểm ảnh (pixels)? Thường thì độ phân giải màn hình mobile là 1024×768 (trừ phi bạn cần sử dụng trên một màn hình lớn hơn nữa ), không cần sử dụng nhân vật với độ rộng 1204px. Nhạc nền lặp lại 3 phút ư? Có lẽ bạn chỉ cần làm 30 giây. Trên màn hình mobile hầu hết mọi người không nhận ra sự khác biệt giữa hình ảnh và âm thanh có chất lượng tốt và trung bình.

#8: Cận thận với những liên kết trong scene

Khi tôi làm việc với một game có nhiều ảnh. Tùy thuộc vào người chơi lựa chọn , tôi sẽ khởi tạo (Instantiat) một Prefab từ một danh sách nhiều Prefab. Thật ngạc nhiên, danh sách này là nguyên nhân toàn bộ prefabs tải vào bộ nhớ và theo đó là toàn bộ hình ảnh. Hãy sử dụng công cụ Profile. Profiling không nói dối.

#9: Sử dụng thư mục Resources khi cần thiết

Giải pháp trong nhiều trường hợp là đặt toàn bộ prefabs/assets vào trong thư mục Resources folder và tải lên ( load dynamically ) khi bạn cần. Nó không phải là ý hay vì bạn phải cung cấp đường dẫn (path ) tới asset và khi di chuyển nó sang thư mục khác sẽ gây ra lỗi.

#10 Tối ưu hóa sử dụng CPU

Một game chậm là một game tệ hại . Người chơi có thể chấp nhận những khía cạnh của một game như : giao diện không đẹp, cốt truyện tệ, hình ảnh không trau chuốt… nhưng một trải nghiệm về hiệu năng tồi là điều không thể chấp nhận . Bạn cần biết giới hạn trong trường hợp nào cần quyết định giảm chất lượng mọi thứ để tăng FPS ( Frames Per Second)

#11: Tối ưu mã nguồn cẩn thận Vd: vòng lặp foreach.

Đây là thủ thuật tối ưu hóa CPU của Unity. Vì phiên bản cũn .NET framework mà Unity sử dụng nhiều thứ không hiệu quả như mong đợi. Vì khả năng thay đổi sẽ không nhanh bạn nên thay thế vòng lặp “foreach” bằng “for” và “lists” bằng “arrays”. Về tối ưu mã nguồn có thể xem thêm here.

#12: Loại bỏ Debug trong phiên bản Release

Unity làm việc với chuỗi strings rất chậm bạn nên giảm thiếu các thao tác trên chuỗi. Đó là lý do loại bỏ hàm “Debug.Log” khi build release. Thử và bạn sẽ thấy ngạc nhiên vì nó tạo ra sự thay đổi lớn đấy.

#13: Tối ưu từ dưới lên trên .

Khi tối ưu hóa game bạn nên sử dụng công cụ Profiler và những classes làm chậm game sẽ dễ được phát hiện. Tối ưu hóa lớp này sẽ tăng hiệu năng đáng kế cho cả các lớp khác sử dụng chúng .

#14: Loại bỏ những nút cổ chai (bottlenecks) như các vòng lặp lồng nhau quá nhiều hoặc khởi tạo nhiều lần một đối tượng.

Giả sử bạn có một script “PlayerController” và một script “EnemyController”. Nếu bạn có 100 Enemy trong Screen tại một thời điểm .”PlayerController” sẽ phải chậm hơn 100 lần để tạo nên sự khác biệt trong game. Vì thế tối ưu hóa script “EnemyController”. Loại bỏ những hàm chậm như “FindObjectOfType”, hàm này không nên gọi trong “Update”. Cache các biến thậm chỉ cả lớp Singleton có thể tăng đáng kế hiệu năng.

Sửa bởi quản trị viên 09/10/2015 lúc 08:54:44(UTC)  | Lý do: Chưa rõ

Ai đang xem chủ đề này?
Guest
Di chuyển  
Bạn không thể tạo chủ đề mới trong diễn đàn này.
Bạn không thể trả lời chủ đề trong diễn đàn này.
Bạn không thể xóa bài của bạn trong diễn đàn này.
Bạn không thể sửa bài của bạn trong diễn đàn này.
Bạn không thể tạo bình chọn trong diễn đàn này.
Bạn không thể bỏ phiếu bình chọn trong diễn đàn này.

Powered by YAF 2.1.0 | YAF © 2003-2024, Yet Another Forum.NET
Thời gian xử lý trang này hết 0.130 giây.