Tích Hợp SDK Aavegotchi Unity3D
Phiên bản đầu tiên của SDK Aavegotchi Unity3D đã được ra mắt. Trong bài viết này, tác giả Siarhei sẽ cho các bạn biết cách dùng nó để phát triển. Khi tác giả bắt đầu tạo ra công cụ ấy, anh đã quyết định nhắm tới các lập trình viên mảng game, không quan trọng nếu họ cho từng lập trình blockchain hoặc hiểu biết nhiều về Aavegotchi.
Họ cần phải có một ít kinh nghiệm với Unity3D, nhưng nếu không có thì tin tốt là việc này rất dễ thực hiện và có rất nhiều hướng dẫn cách tạo một con game hoàn thiện trong tất cả các thể loại từ dòng game hypercasual đến MMORPG.
Bài gốc: https://medium.com/@siarhei.kurylkin/aavegotchi-unity3d-sdk-a7d5ad186a93
Bắt đầu
SDK này dựa trên gói Newtonsoft.JSON hiện đang rất phổ biến, vậy nên trước khi bắt đầu, bạn cần phải thêm nó vào dự án Unity của mình. Nếu bạn dự định (và có lẽ bạn sẽ làm vậy) xây dựng game cho trình duyệt như WebGL để tương tác với MetaMask thì mình khuyên csac bạn nên cài đặt phiên bản đầy đủ của Newtonsoft.JSON, bởi nó không thể gói lại cho WebGL, bạn có thể tìm Newtonsoft.Json-for-Unity ở đây. Có nhiều cách để thêm nó vào dự án của bạn, nhưng mình khuyến nghị các bạn tải file unitypackage về. Và sau khi click Assets/Import Package/Custom Package… trên edior, hãy chọn file đã download và nhấp vào Import trên hộp thoại đã được mở ra.
Bước tiếp theo là lập lại việc Import cho AavegotchiUnity3dSDK package.
Sau khi tất cả việc import đã hoàn tất, bạn phải kéo và thả AavegotchiController và Aavegotchi prefabs trên cửa sổ Unity Hierachy từ tệp Prefarbs.
Bước cuối cùng là xác định Token Id của Aavegotchi để tải. Để là được điều đó, hãy chọn Aavegotchi Object trên cửa sổ Hierarchy và sau đó bạn sẽ thấy vùng TokenId trong cửa sổ Inspector.
Bạn có thể khởi chạy trò chơi và xem Gotchi đã được render ở dạng 3D. Và thế là xong, mọi thứ cũng tương tự như quá trình phát triển game trên Unity và bạn không cần phải biết nhiều thêm.
Bonus 1
Mình đã tạo ra một số scripts cơ bản để bạn có thể tương tác với Gotchi, vậy nên cứ sử dụng thoải mái nhé.
Script chuyển động
Thêm script này vào vật thể game Aavegotchi, và xác định hướng cho vật thể CameraHadle. Việc này cần phải được xác định trung tâm của mô hình Gotchi, bởi phiên bản hiện tại của Unity không cho phép thực hiện điều đó.
Script này sẽ giúp bạn di chuyển Aavegotchi bằng các nút WASD và nút mũi tên trên bàn phím.
Wow Camera
Đây là code mà mình tìm được từ diễn đàn Unity. Script này sẽ giúp bạn tương tác với camera bằng cách nhấp và kéo chuột, tương tự như cách hoạt động trong World of Warcraft.
Hãy thêm nó vào Main Camera của bạn và xác định Target thành CameraHandle. Bạn có thể vọc vạch tất cả những đơn vị đo mà bạn thấy có giá trị nhất với bạn, và với mình thì mình dùng những giá trị sau đây:
Trôi bồng bềnh
Đây là đoạn script đơn giản để bạn có thể thêm hoạt ảnh trôi bồng bềnh vào cho bé ma của mình.
Bonus 2
Khi bạn đọc bài viết này, có thể bạn sẽ tự hỏi rằng làm su để bạn có thể kết nối nó với những con gotchi của chính mình. Mình đã tìm được 2 giải pháp. Giải phá thứ nhất là tạo tài khoản flow trên trang web của bạn và thêm logic javascript của địa chỉ đính kèm từ MetaMask vào đó, và sau đó trong game, bạn sẽ có địa chỉ mà bạn dùng. Rất nhiều game multiplayers yêu cầu phải tạo tài khoản flow trong hiện tại, vậy nên đây là yêu cầu khá phổ biến đối với game thủ ngày nay.
Một cách khác là làm game WebGL, cho phép bạn tương tác trực tiếp với MetaMask từ Unity thông qua cổng javascripts.
Đây là một bài viết hướng dẫn rất hay về vấn đề đó. Nhưng bạn cần phải cập nhật index.html từ hướng dẫn đó, bởi nó đã mất đi web3.js.
Sau đó bạn có thể sử dụng địa chỉ để tương tác với hợp đồng Aavegotchi một cách trực tiếp, nhưng mình đã cài đặt một vài phương pháp trên api, nó giúp bạn tránh vấn đề đó, nếu bạn không quen dùng blockchain.
Đây là một ví dụ về cách dùng. Bạn sẽ cần những địa chỉ đã hardcode tại đây, ở dòng #46, do là WebGL và bạn muốn kiểm tra nó thật nhanh trên edior của Unity. Hãy dùng directive #if UNITY_EDITOR cho mục đích đó. Bạn cũng sẽ cần phải lưu trữ Token trong bộ nhớ, mình khuyên các bạn dùng lớp dữ liệu c# đơn giản.
Trong bộ code ở trên, mình đã dùng I use https://aavegotchi-3d-server-p45lxlxzfq-ez.a.run.app/my/{address} để fetch ra tất cả gotchi của người chủ sở hữu. Bên cạnh đó cũng có https://aavegotchi-3d-server-p45lxlxzfq-ez.a.run.app/ava/{tokenId} để fetch file ảnh gotchi để bạn có thể tạo ra UI chọn nhân vật.
Bạn có thể thử cách hoạt động của nó với WebGL tại đây.
Hãy cứ hỏi mình bất cứ câu hỏi nào về Unity hoặc AavegotchiSdk tại đây nhé, hoặc nếu có thể, bạn hãy DM mình qua discord Hotspur#9218. Follow Twitter của bọn mình tại https://twitter.com/HotspurSC2 https://twitter.com/haauntcom và Discord https://discord.gg/HyGzTUjrD6.