Trong thế giới phát triển game, Unity và Unreal Engine là hai công cụ hàng đầu. Trong số đó, Unity đặc biệt phổ biến với cộng đồng sáng tạo và dễ sử dụng hơn so với các phần mềm khác.
Khám Phá Hướng Dẫn Tạo Ứng Dụng Android với Unity của Mytour.
Hướng Dẫn Tạo Ứng Dụng Android bằng Unity
Theo dõi các bước dưới đây để tạo một ứng dụng Android độc đáo sử dụng Unity.
Bước 1: Chuẩn Bị Unity và Android Studio
Đầu tiên, hãy tải và cài đặt phiên bản mới nhất của Unity. Bạn có thể tải Unity tại trang chính thức:
Để phát triển ứng dụng di động, bạn cần cài đặt SDK tương ứng cho từng nền tảng. Đối với Android, bạn sẽ sử dụng Android Studio, và đối với iOS, bạn cần cài đặt Xcode.
Để tải Android Studio và thực hiện cài đặt, truy cập trang chính thức tại đây:
link: https://Mytour/download-android-studio-17597
Sau khi hoàn thành việc tải và cài đặt ứng dụng, bước tiếp theo là cài đặt driver cho thiết bị của bạn. Mở Android Studio =>Configure =>SDK Manager =>Launch Standalone SDK Manager.
Trong cửa sổ mới xuất hiện, cuộn xuống và chọn Google USB và Web Drivers. Sau đó, nhấp vào Install Packages ở góc dưới cùng bên phải và đợi quá trình cài đặt hoàn tất.
Mở ứng dụng Cài đặt trên điện thoại =>Giới thiệu điện thoại / About Phone =>Thông tin phần mềm. Tìm và nhấn vào Build Number nhiều lần cho đến khi hiển thị thông báo 'Chúc mừng, bạn đã trở thành một nhà phát triển' hoặc tương tự.
Quay lại Cài đặt, tìm và chọn Tùy chọn Nhà phát triển, sau đó tìm và kích chọn Khảo sát USB.
Kết nối điện thoại với máy tính, màn hình sẽ hiển thị thông báo 'Đã bật Chế độ Debug USB' hoặc tương tự.
Bước 2: Thiết lập dự án và tạo Particle Prefabs
Sau khi tạo xong dự án, đảm bảo thư mục assets của bạn bao gồm các thư mục sau:
- Fonts
- Materials
- Menu
- Prefabs
- Scenes
- Scripts
- Textures
Nếu chưa có, bạn có thể tạo các thư mục này, sau đó vào Tệp =>Cài đặt xây dựng. Trong cửa sổ hiển thị, chọn Android trong mục Nền tảng, sau đó nhấp vào Chuyển đổi Nền tảng ở góc dưới cùng bên trái. Lưu lại scene bằng cách nhấn Ctrl + S hoặc chọn Lưu Scene trong Tệp. Lưu scene với tên Main Scene trong thư mục Scenes.
Tạo Particle Prefabs
Lưu hình ảnh dưới đây vào thư mục Textures để sử dụng cho Particle System.
Đặt Loại Texture thành Texture bằng cách nhấp chọn hình ảnh trong thư mục Textures và chọn giá trị phù hợp trong cửa sổ Inspector, sau đó nhấp chọn Áp dụng. Đánh dấu vào hộp gần tùy chọn Alpha Là Độ trong suốt.
Tiếp theo, tạo Particle System và cấu hình giá trị cho Particle System như hình dưới đây.
Chắc chắn rằng mục Texture của Particle System được đặt thành Star Texture bằng cách mở rộng mục Shader và chọn Star Texture. Hoặc bạn cũng có thể kéo và thả hình ảnh từ thư mục Textures vào hộp. Chọn Shader từ menu, sau đó chọn Mobile =>Particles =>Alpha Blended.
Thay đổi tên ở góc trên cùng của cửa sổ Inspector thành Explosion, thực hiện tương tự trong cửa sổ Hierarchy. Tiếp theo, kéo Explosion Particle System từ cửa sổ Hierarchy vào thư mục Prefabs trong cửa sổ Project. Bước này sẽ tạo một prefab của Particle System.
Tiếp theo, chúng ta sẽ tạo Trail Prefab.
Tạo một Empty Game Object bằng cách kích chuột phải vào cửa sổ Hierarchy, chọn Create Empty, đặt tên là Trails hoặc tên tương tự. Thêm thành phần Trail Renderer cho game object và thiết lập các giá trị như trong ảnh dưới đây:
Tạo một vật liệu mới bằng cách mở thư mục Materials trong cửa sổ project, chuột phải, chọn Create =>Material. Đặt tên cho vật liệu này là Trails Material hoặc Trails Mat.
Tiếp theo, click chọn Trails Game Object trên cửa sổ Hierarchy, kéo và thả Trails Mat từ Project view vào cửa sổ Inspector. Hành động này để gán vật liệu cho Trails Game Object. Sau đó, kéo Trails Game Object vào thư mục Prefabs.
Cuối cùng, chúng ta sẽ tạo một Particle System khác với Particle System ban đầu, đặt tên là Pinch Explosion, gán Star Material làm Prefab cho Pinch Explosion. Đây là tất cả các hiệu ứng mà chúng ta sẽ sử dụng.
Trên cửa sổ Hierarchy, thay đổi giá trị của mục Background Colour thành Black hoặc các màu tối khác và thay đổi giá trị của mục Size từ 5 thành 10.
Pha 3: Tạo và thêm kịch bản hiệu ứng
Tạo Kịch bản
Tạo một Kịch bản C# mới trong thư mục Kịch bản bằng cách mở thư mục Kịch bản, chuột phải chọn Tạo => Kịch bản C# và đặt tên cho kịch bản là SpecialEffects.
Mở kịch bản trong môi trường tích hợp (Integrated Development Environment) phù hợp và thêm đoạn mã dưới đây vào:
Thêm Kịch bản vào Scene
Sau khi đã tạo xong kịch bản, bước tiếp theo chúng ta cần làm là thêm kịch bản vào scene. Tạo một Empty Game Object mới đặt tên là Kịch bản, sau đó kéo Kịch bản mà bạn vừa tạo từ thư mục Kịch bản vào Kịch bản Game Object.
Gán các biến cho Kịch bản tương ứng bằng cách kéo Kịch bản từ thư mục Kịch bản trên Project View vào Kịch bản properties trong cửa sổ Inspector.
Bước 4: Tạo và thêm Script cảm ứng
Viết script
Chúng ta sẽ tận dụng bước này để lập trình các cử chỉ trên màn hình cảm ứng cho ứng dụng. 3 cử chỉ sẽ bao gồm chạm, vuốt và pinch để zoom. Bạn cũng có thể thêm các cử chỉ khác nếu muốn.
Các hiệu ứng sẽ phát hiện và kích hoạt dựa trên các cử chỉ đầu vào như chạm, vuốt, pinch để zoom, ... Để phát hiện các cử chỉ, chúng ta sử dụng lớp Input, lớp này thu thập tất cả thông tin về các loại đầu vào trong một vị trí duy nhất.
Unity còn có một lớp con có tên là Input.touches, chứa các sự kiện cho các loại cử chỉ khác nhau trong một frame cụ thể.
Touch là nơi lưu trữ mọi thông tin về các ngón tay trên màn hình.
Bắt đầu với cử chỉ pinch, đơn giản là đặt 2 ngón tay lên màn hình và kéo để phóng to hoặc thu nhỏ. Chạm (tap) là hành động nhấn mạnh lên màn hình trong khoảng thời gian ngắn, tương tự như việc click chuột. Cuối cùng, cử chỉ vuốt là sử dụng ngón tay vuốt qua màn hình.
Tạo một script mới trong thư mục Scripts, đặt tên là TouchControls, và thêm đoạn mã dưới đây sau hàm Update:
Đối với cử chỉ chạm (Tap), chúng ta lấy vị trí của tất cả các ngón tay trên màn hình, sau đó kích hoạt hiệu ứng Explosion khi ngón tay rời khỏi màn hình.
Đối với tính năng kéo (Drag), sau khi tạo biến mới, chúng ta điều chỉnh biến để tạo một liên kết giữa ngón tay và đuôi dẫn (Trail).
Nếu có touch mới được tạo, ta tạo một Trail mới và liên kết với ngón tay. Khi ngón tay di chuyển, với điều kiện có Trail liên kết, vị trí của Game Object Trail cũng di chuyển theo ngón tay.
Khi ngón tay rời khỏi màn hình, đuôi dẫn sẽ bị xóa.
Đối với tính năng Pinch, chúng ta tạo 3 biến mới lưu trữ vị trí ban đầu của các ngón tay. Ngoài ra, ta tạo hiệu ứng Pinch Explosion để cập nhật và xóa các biến.
Khi phát hiện 2 ngón tay trên màn hình, hiệu ứng Pinch Explosion sẽ xuất hiện ở giữa 2 vị trí, cử chỉ này được gọi là Pinch. Nếu ngón tay di chuyển, Game Object Pinch Explosion sẽ di chuyển và thu nhỏ theo.
Sau khi hiệu ứng Pinch Explosion được tạo, nếu ngón tay rời khỏi màn hình, hiệu ứng sẽ tự động chuyển đổi thành hiệu ứng Tap Explosion.
Thêm Script vào Scene
Sau khi Script Controls đã được tạo, bước tiếp theo là thêm script này vào scene, thực hiện tương tự như các bước ở trên.
Bước 5: Kiểm thử
Kiểm thử là một bước quan trọng trong quá trình phát triển phần mềm. Nếu không thực hiện kiểm thử, bạn sẽ không biết liệu mọi thứ có hoạt động đúng hay không. Có nhiều phương pháp kiểm thử ứng dụng và phần mềm, nhưng cách hiệu quả nhất là xây dựng và chạy ứng dụng trên điện thoại Android.
Mở Edit =>Project Settings =>Player. Trong phần trên cùng của cửa sổ Inspector, bạn sẽ thấy mục Company Name và Product Name. Thay đổi chúng bằng bất kỳ tên nào bạn muốn. Sau đó, mở rộng tab Other Settings và vào Bundle Identifier, đổi giá trị thành com.TenCongTyBanChon.TenSanPhamBanChon.
Nếu đã cài đặt đầy đủ Drivers, vào Build Settings từ Menu File, nhấn Add Open Scenes. Thêm Main Scene vào danh sách và đặt giá trị là 0.
Khi đã hoàn tất, hãy đảm bảo bạn đã chọn nền tảng là Android và điện thoại của bạn đã kết nối với máy tính. Sau đó, nhấn Build and Run. Unity sẽ bắt đầu quá trình xây dựng ứng dụng của bạn. Trước khi hoàn thành, Unity sẽ yêu cầu vị trí Android SDK.
Để tìm vị trí của SDK, mở Android Studio =>Configure Settings =>SDK Manager, điều này có thể tìm thấy ở góc trên cùng của cửa sổ trong mục Android SDK Location.
Sau khi Unity đã xác định vị trí của SDK, quá trình xây dựng ứng dụng sẽ diễn ra. Khi hoàn tất, ứng dụng sẽ tự động chạy trên điện thoại Android của bạn.
Ngoài cách trên, bạn cũng có thể thử nghiệm ứng dụng theo cách khác bằng cách nhấn Build thay vì Build and Run. Lựa chọn vị trí lưu file .apk. Sau khi tạo và lưu file, bạn chỉ cần di chuyển nó vào bộ nhớ điện thoại và cài đặt nó thủ công.
Một cách khác để thử nghiệm ứng dụng là thông qua Unity Editor. Bằng cách nhấn nút Play ở góc trên cùng màn hình, Unity sẽ xây dựng và chạy ứng dụng của bạn. Tuy nhiên, để thử nghiệm trên Android, bạn cần tải và cài đặt Unity Remote 4 từ Play Store hoặc App Store.
Tải Unity Remote 4 về máy và cài đặt từ đây:
Liên kết:
Unity Remote giúp người dùng thử nghiệm game và ứng dụng trên Unity mà không cần tạo bản build đầy đủ mỗi lần. Điều này tiết kiệm thời gian đáng kể. Tuy nhiên, hạn chế lớn nhất của Unity Remote là giảm chất lượng đồ họa trên điện thoại.
Dưới đây là 3 phương pháp hiệu quả để chạy thử nghiệm game và ứng dụng. Với những phương pháp này, bạn có thể theo dõi cách mã hoạt động.
Ngoài ra, có thể sử dụng các phương pháp khác để thử nghiệm ứng dụng. Một trong những phương pháp khác là breakpoint, giúp dừng chương trình khi phát hiện lỗi và cung cấp thông tin vị trí của mã lỗi.
Để tạo breakpoint, hãy tìm dòng mã bạn nghi ngờ lỗi và click vào lề bên trái. Một chấm màu đỏ sẽ xuất hiện, di chuột qua để xem vị trí breakpoint.
Trong hình dưới đây, dòng mã 'if (explosionEffect == null' bị lỗi. Sau khi tạo breakpoint, chọn Debug =>Start Debugging hoặc nhấn phím F5. Điều này khởi chạy chương trình trong Unity và kết nối nó với VS. Ở góc dưới cùng của VS, thanh đỏ sẽ xuất hiện với thông báo Ready.
Mở Unity, tìm và nhấn nút Play để chạy ứng dụng, game cho đến khi breakpoint đưa bạn đến cửa sổ VS với thông tin về cách chương trình chạy.
Khi quá trình thử nghiệm kết thúc, nhấn Shift + F5 để kết thúc gỡ lỗi trong VS hoặc quay lại menu Debug và chọn Stop Debugging. Thao tác này dừng quá trình gỡ lỗi, cho phép chương trình chạy bình thường.
Chú ý về chính tả và cú pháp. Một số ngôn ngữ lập trình, như C#, yêu cầu phân biệt chữ hoa, chữ thường, ... .
Bước 6: Tạo Menu chính và HUD
Việc tạo menu/HUD cho ứng dụng là quan trọng. Menu chính cung cấp thông tin và tùy chọn cấu hình cho người dùng.
Trong bài này, Mytour sẽ hướng dẫn cách tạo Menu đơn giản. Bao gồm 3 nút Play, Help và Exit. Nút Play chuyển hướng người dùng đến cửa sổ chính, nút Help đến trang trợ giúp, và nút Exit thoát khỏi ứng dụng.
Bạn có thể tùy chỉnh font chữ, hình nền, ... theo ý muốn, miễn là phù hợp với ứng dụng hoặc game.
Sau khi tải font và hình nền, bước tiếp theo là import chúng vào dự án Unity trong các thư mục tương ứng (Fonts và Image).
Tạo Menu
Để tạo Menu, chúng ta sẽ tạo một Scene mới bằng cách nhấn Ctrl + N hoặc vào File =>New Scene, đặt tên là Menu hoặc Main Menu.
Sau khi tạo scene, chúng ta thêm Canvas. Canvas này cho phép sử dụng đầy đủ tính năng UI.
Tạo Canvas bằng cách click phải vào Hierarchy =>UI =>Canvas. Trong cửa sổ Inspector của Canvas, chọn Render Mode là Screen Space - Overlay và tick chọn Pixel Perfect.
Chuyển đổi Scale Mode từ Constant Pixel Size sang Scale With Screen Size trong mục Canvas Scaler. Đặt giá trị Reference Resolution là độ phân giải màn hình ngang của điện thoại (trong trường hợp này là 1920 x 1080) và giá trị Match từ 0 sang 0.5.
Tiếp theo, điều chỉnh giá trị Game View để phù hợp với Reference Resolution của Canvas. Click tab Game ở góc trên cùng, hoặc vào Windows =>Game, hoặc nhấn Ctrl + 2. Click vào Free Aspect ở góc trên cùng bên trái cửa sổ Game.
Ở góc dưới cùng, click biểu tượng '+' để thay đổi Type từ Aspect Ratio sang Fixed Resolution.
Thay đổi giá trị Label thành độ phân giải màn hình thiết bị di động (trong bài viết này là 1080p) và điều chỉnh giá trị các mục Width & Height với giá trị tùy chọn.
Tạo Panel giống như việc tạo Canvas, nhưng lựa chọn Panel. Nếu đã chọn Canvas, Panel tự động trở thành mục con của Canvas.
Để phân biệt giữa thư mục chính và thư mục con, thư mục chính có biểu tượng mũi tên bên trái. Click để hiển thị hoặc ẩn các thư mục con.
Để tạo thư mục con, click phải vào đối tượng trên cửa sổ Hierarchy, tạo đối tượng con, sau đó kéo vào đối tượng bất kỳ.
Sau khi tạo xong, thiết lập ảnh nền cho Panel. Đổi tên Canvas thành Menu Canvas trong Hierarchy và đổi tên Panel thành Background Image. Tiếp theo, click chọn Background Image Panel.
Trong cửa sổ Inspector, bạn sẽ thấy thành phần Image (Script) đính kèm. Nhiệm vụ là tìm và thay đổi ảnh nguồn. Kéo và thả hình ảnh đã tải về vào cửa sổ project, hoặc click biểu tượng vòng tròn với dấu chấm ở giữa để mở cửa sổ Select Sprite. Tại đây, chọn ảnh nền.
Chọn ảnh nền, tìm và click hộp Color ở góc dưới, kéo thanh trượt kế bên hộp A để đặt giá trị là 255.
Để thiết lập Title, tạo một đối tượng Text mới, đặt tên là Title, làm đối tượng con của Background Image. Thay đổi màu cho Text thành màu trắng, thêm nội dung và sử dụng font chữ tuỳ chọn.
Tại mục Paragraph, đổi giá trị Alignment, sau đó click Best Fit và thay đổi giá trị Max Size. Hãy chắc rằng bạn đã chọn tùy chọn Best Fit cho các đối tượng Text Game bạn đã tạo.
Góc trên cùng bên phải, dưới mục Rect Transform có một hộp với văn bản, đó là Anchor. Click chọn Anchor, giữ Alt + Shift và click chọn biểu tượng ở giữa.
Click chọn Add Component => Shadow và Outline. Tăng giá trị Alpha của các thành phần này lên 255.
Sau khi tạo xong ảnh nền, tạo một Empty Game Object làm con của Background Image Panel, đặt tên là Buttons Layout Manager. Trong cửa sổ Inspector của Empty Game Object, click chọn Add Component, thêm Vertical Layout Group.
Game Object này sẽ sắp xếp các nút ở vị trí phù hợp. Đổi giá trị Anchor thành Stretch Uniform, và thay đổi vị trí, trục với Anchor.
Trên màn hình sẽ xuất hiện Buttons Layout Manager. Kéo từ trên xuống cho đến khi Buttons Layout Manager nằm trong hộp lưới. Nếu không, tìm và click tùy chọn Gizmos ở góc trên cùng cửa sổ Scene, sau đó click chọn Show Grid.
Tạo một Text Game Object mới, đặt tên là Start và thiết lập giá trị tùy ý. Object này làm con của Background Image.
Quy tắc bất di bất dịch là thiết lập kích thước các nút nhỏ hơn kích thước Title khoảng dưới 10 hoặc 20 pixel.
Thay đổi Text thành Start, thêm thành phần Button và đặt màu sắc theo ý bạn muốn.
Nhân bản nút này 2 lần bằng cách click chuột phải vào nút, chọn Duplicate hoặc nhấn Ctrl + D.
Tạo Panel mới, đặt tên là Help Panel và thiết lập kích thước của Source Image giống như Background Image. Nhân bản Title và đặt làm con của Help Panel. Đổi tên Game Object thành Help Panel Title và Text thành Help Panel.
Nhân bản nút và đặt tên là Back, thiết lập là con của Help Panel, thay đổi Text của nút thành Back. Thiết lập anchor, vị trí và trục quay về phía dưới bên trái và thay đổi Pos X thành 10.
Tạo một Text Game Object mới làm con của Help Panel, đặt tên là Help Text Body và thiết lập Anchor là Stretch Uniform. Thay đổi giá trị Top từ 0 thành 10. Thay đổi giá trị các mục Left, Right và Botton là 10, thiết lập font chữ. Thay đổi giá trị Max Size thành 80.
Tiếp theo, vào File => Build Settings => Add Open Scenes và thêm Scene Menu của bạn. Kéo Scene Menu lên đầu tiên để có số thứ tự 0, và Main Scene là 1.
Lập trình cho Menu
Tạo một Script mới và đặt tên là Menu, sau đó nhập đoạn mã sau:
Gắn Script vào Menu Canvas, sau đó cuộn xuống dưới cùng của cửa sổ Inspector, bạn sẽ thấy các mục:
- Bắt đầu
- Trợ giúp
- Thoát
- Quay lại
- Bảng trợ giúp
Kéo các Game Objects liên quan vào các mục tương ứng.
Nhấn Ctrl và click chuột để chọn các nút Bắt đầu, Trợ giúp, Thoát và Quay lại, sau đó cuộn xuống dưới phần Script Button. Ở góc dưới cùng, bạn sẽ thấy một danh sách trống có tên là On Click (). Click chọn biểu tượng dấu '+'. Kéo Game Object Menu Canvas vào khung None (Object). Menu No Function sẽ được kích hoạt.
Click vào nút Bắt đầu, sau đó click chọn Menu No Function và cuộn xuống dưới để tìm Menu. Chọn StartPress () để tạo Menu Bắt đầu. Thực hiện tương tự với các nút Trợ giúp, Thoát và Quay lại.
Đến bước này, hãy chạy thử nghiệm để kiểm tra xem ứng dụng và các nút có hoạt động đúng cách hay không.
Tạo một Panel mới, làm con của Background Image và đặt tên là Exit Panel. Thiết lập giá trị Màu nền cho panel mới sao cho phù hợp với màu nền và đặt các giá trị Top và Bottom là 450, Right và Left là 760.
Sao chép Title và đặt làm con của Exit Panel. Giảm kích thước văn bản để không chiếm quá nhiều không gian.
Sao chép nút Chơi 2 lần, đặt làm con của Exit Panel, thay đổi Anchor, Position & Pivot thành Bottom Left và giá trị các mục khác là Bottom Right.
Đổi tên của nút ở góc dưới cùng bên phải thành Có, nút ở góc dưới cùng bên trái thành Không.
Mở Menu Script và thêm 2 nút vào nút Quay lại và GameObject trong Help Panel, sử dụng đoạn mã sau:
public Button yes;
public Button không;
Và:
public GameObject bảngThoát;
Thêm dòng mã sau vào hàm Start, dưới dòng helpPanel.SetActive (false);
bảngThoát.SetActive(false);
Thay đổi hàm thoát từ Application.Quit(); thành bảngThoát.SetActive(true); .
Tiếp theo cuộn xuống dưới cùng script, thêm đoạn mã sau vào hàm Quay lại():
Cuối cùng quay trở lại Unity, click chọn nút Có và thay đổi Function từ StartPress () thành CóPress (), thay đổi nút Không thành KhôngPress(). Ngoài ra cần đảm bảo bạn đã gán các biến công khai trong script Bảng Menu. Click chọn nút Play và thử nghiệm nút Thoát.
Khởi tạo và lập trình HUD
Quay trở lại Scene chính và tạo một Canvas mới, đặt tên là HUD Canvas và thiết lập giá trị tương tự như Main Menu Canvas.
Thêm Text Game Object làm con của Canvas, đặt tên là Quay Về Menu Chính, thiết lập font chữ, kích thước và căn chỉnh theo ý bạn.
Tạo một script mới và đặt tên là HUD, sau đó nhập đoạn mã sau vào:
Kéo script vào HUD Canvas, cấu hình script giống như Main Menu, sau đó đặt nút bằng cách kéo HUD Canvas vào khung On Click (). Chọn hàm BackToMainMenuPress và kiểm tra nút bằng cách click chọn biểu tượng nút Play.
Bước 7: Sắp xếp Hierarchy
Quay lại Main Scene và tạo Empty Game Object mới với tên là Effects. Kéo tất cả Explosions và Trails Game Objects vào script Effects này. Sau đó kéo Effects Game Object vào Scripts. Sử dụng hệ thống này để tổ chức project của bạn.
Bài viết trên của Mytour đã hướng dẫn cách tạo ứng dụng Android bằng Unity. Nếu bạn có bất kỳ thắc mắc hoặc câu hỏi nào, hãy để lại ý kiến của bạn trong phần bình luận dưới bài viết.