Saturday, June 28, 2014

Hướng dẫn sử dụng Google Analytics trong Unity

Trong bài viết này, mình sẽ hướng dẫn cách sử dụng Google Analytics để tracking hành vi người dùng.

Giới thiệu: Google Analytics cung cấp tính năng phân tích kỹ thuật số mạnh mẽ cho các ứng dụng, web cả lớn và nhỏ. Đó là 1 trong những giải pháp phân tích hành vi, xu hướng người dùng mạnh mẽ và hoàn toàn miễn phí. Đối với game, Google Analytics sẽ giúp người phát triển nắm bắt được hành vi người dùng, qua đó có thể cập nhật game để nâng cao trải nghiệm.

Link download: GoogleAnalytics.cs

- Bước 1: chuẩn bị
  • Trong Player Settings, switch platform sang Android.Thiết lập các thuộc tính liên quan đến Bundle ID, company, package name... 
  • Tạo mới 1 Google Analytics: vào http://www.google.com/analytics/, click vào Đăng nhập. Đăng nhập vào 1 tài khoản gmail của bạn. 
  • Tạo mới Google Analytics: nhấn vào nút "Đăng ký"
  • Tinh chỉnh các thông tin liên quan đến Google Analytics bạn muốn tao: lưu ý nhớ chọn phần "Ứng dụng trên điện thoại di động".
  • Sau đó, click vào nút "Nhận ID theo dõi" ở dưới cùng của trang web. Chấp nhận các điều khoản của Google Analytics, bạn sẽ tạo mới được 1 Google Analytics mới.
  • Giao diện chung:


- Bước 2: download và import gói sau
  • Link download: GoogleAnalytics.cs
  • Gói này chứa lớp GoogleAnalytics.cs để tracking hành vi người dùng.

- Bước 3: thêm quyền cho Android manifest
  • Permission:
    • <uses-permission android:name="android.permission.INTERNET" />
    • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

- Bước 4: cập nhật application ID và tên game. Mở lớp GoogleAnalytics.cs
  • Cập nhật Property ID: vào thẻ "Quản trị" trong Google Analytics. Trong phần thuộc tính (cột giữa), nhấn vào "Cài đặt thuộc tính" và copy ID theo dõi vào Property ID.
  • Cập nhật bundleID (chính là tên package của game), appName (tên game), appVersion (mã phiên bản).
  • Để tracking: gọi hàm "GoogleAnalytics.LogScreen ("<tên màn hinh>");"
  • VD: GoogleAnalytics.LogScreen ("Menu Screen");
Kết quả: đã test và chạy thành công trên nhiều máy.

Yêu cầu của plugins: 
  • Unity3D 4.x trở lên
  • Android 2.3.1 trở lên

Friday, June 27, 2014

Danh sách tài liệu hướng dẫn Unity đáng chú ý (Phần 1)

Mình sẽ liên tục cập nhật các quyển sách mới trong serie bài viết này. Nếu có phiên bản mới hơn của quyển sách trong 1 bài cũ, mình sẽ post đè link quyển mới lên quyển cũ để mọi người luôn có phiên bản mới nhất của quyển sách.

Phần 1: Link Phần 1
Phần 2: Link Phần 2
Phần 3: Link Phần 3
Phần 4: Link Phần 4
Phần 5: Link Phần 5  

  1. Beginning 3D Game Development with Unity 4

Quyển sách này giới thiệu về những khái niệm quan trọng trong phát triển game một cách rất dễ hiểu. Nội dung cuốn sách giúp cho người phát triển độc lập có thể tự phát triển game cho riêng mình
  • Download:  pdf
  • Số trang: 808 trang
  • Ngày xuất bản: tháng 9, 2013
01. Introduction to Game Development
02. Unity UI basics
03. Introduction to Scripting
04. Terrain Generation and Environment
05. Exploring Navigation
06. Cursor Control and Interaction
07. Importing Assets
08. Action Objects
09. Managing State
10. Exploring Transitions
11. Physics and Special Effects
12. Message Text and HUD
13. Inventory Logic
14. Managing Inventory
15. Dialogue Trees
16. Mecanim
17. Game Environment
18. Setting up the Game
19. Menus and Levels

2. Creating game with Unity and Maya

Quyển sách này giới thiệu về cách sử dụng Maya (công cụ mô hình vật thể 3D phổ biến) kết hợp với Unity để phát triển game.
  • Download:  pdf
  • Số trang: 528 trang
  • Ngày xuất bản: tháng 7, 2011
01. Game Production Process
02. Asset Creation: Maya Scenography Modeling
03. Asset Creation: Maya Scenography UV Mapping
04. Asset Creation: Maya Sceongraphy Texturing
05. Asset Creation: Unity Scenography Importing
06. Asset Creation: Unity Scenography Creation Tools
07. Lighting & Baking
08. Asset Creation: Maya Character Creations
09. Asset Creation: Character Rigging and Animation and Import
10. Unity Physics
11. Unity Script: Syntax
12. Unity Script: Triggers
13. Unity Script: Inputs, Raycasting and Manipulating
14. Unity Script: Prefabs and Instantiation
15. Unity Sound
16. Unity GUI: OnGUI, GUITextures, GUIText
17. Unity GUI and Scripting: Inter-script communication
18. Unity Distribution: Builds

3. Game Development for iOS with Unity3D

Quyển sách này giới thiệu về quy trình phát triển game cho iOS với Unity3D.
  • Download:  pdf
  • Số trang: 280 trang
  • Ngày xuất bản: tháng 7, 2012
01. Designing Your Game
02. Getting Set Up for iOS Development
03. Setting Up Unity and Your Mac for iOS Development
04. Basics of the Unity Editor
05. Building a Game in Unity iOS: The Roll-a-Ball Game
06. Making a Kart-Racing Game
07. Debugging and Script Optimization
08. Optimizing for File Size and Performance
09. Publishing to the iTunes Store
10. Thinking Outside the Box

 

 

 

 


4. Game Development with Unity

Tài liệu này giới thiệu sơ lược về các thao tác cơ bản để lập trình game trong Unity3D. Nội dung rất ngắn gọn và cô đọng, phù hợp cho các lập trình viên iOS muốn bắt đầu phát triển game bằng Unity3D.
  • Download:  pdf
  • Số trang: 67 trang
  • Ngày xuất bản: 2010
01. Publication Information
02. Overview
03. Getting Started
04. Inside Unity
05. Workflow
06. Collaboration
07. Assets
08. Scripting
09. Camera
10. Physics
11. GUI
12. Networking
13. Browser
14. Mac Widgets
15. Windows
16. Mac
17. iPhone and iPod touch
18. Wii

5. Getting Started with Unity

Quyển sách này giới thiệu khá rõ ràng và đầy đủ về tất cả những khái niệm cơ bản trong Unity3D.
  • Download:  pdf
  • Số trang: 170 trang
  • Ngày xuất bản: tháng 8, 2013

01. Getting to Know Unity3D
02. Creating a Maze with Built-in Objects
03. Using Scripts to Interact with Objects
04. Creating and Tracking Objects
05. Bringing Your Game to Life with AI and Animations
06. Finalizing and Optimizing Your Game

Friday, June 20, 2014

Hướng dẫn Share Facebook trong Unity3D (sử dụng Android Plugins)

Trong bài viết này, mình sẽ hướng dẫn cách share facebook sử dụng Android Plugins.

Ghi chú: thông tin trong bài đã cũ, để sử dụng share facebook, các bạn có thể sử dụng link sau:
Facebook SDK for Unity


- Bước 1: chuẩn bị
  • Trong Player Settings, switch platform sang Android.Thiết lập các thuộc tính liên quan đến Bundle ID, company, package name... 
  • Vào tài khoản Facebook developer: Facebook DeveloperĐăng nhập bằng tài khoản facebook của bạn và làm theo các hướng dẫn của hệ thống để tạo tài khoản developer.
  • Sau khi tạo thành công tài khoản developer cho Facebook, tạo 1 App chịu trách nhiệm nhận request bên Android và post lên Facebook (Facebook không cho phép post trực tiếp mà phải thông qua 1 app tạo trên Facebook).

- Bước 2: download và import gói sau

- Bước 3: thêm quyền và meta data cho Android manifest. Mở AndroidManifest.xml trong thư mục <Unity Project>/ Assets/ Plugins/ Android
  • Permission:
    • <uses-permission android:name="android.permission.INTERNET" />
    • <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  • Thêm các meta data sau:
    • Link trang web hiện trên dialog share của Facebook: 
    • <meta-data
                  android:name="url_click"
                  android:value="https://www.google.com.vn/?gws_rd=ssl" >
      </meta-data>
    • Link ảnh hiện trên dialog share của Facebook: 
    • <meta-data
                  android:name="icon_link"
                  android:value="http://i.imgur.com/NLCasfr.png" >
      </meta-data>

- Bước 4: cập nhật application ID và tên game. Mở lớp FacebookShare.cs
  • Cập nhật appID: copy application ID trên Facebook app đã tạo ở trên và paste vào trường APP_ID của lớp FacebookShare.cs.
  • Cập nhật game:  sửa trường GAME_NAME của lớp FacebookShare.cs cho phù hợp.

- Bước 5: tiến hành share facebook. 
  • Gắn lớp FacebookShare.cs vào 1 game object bất kì trong Scene.
  • Để tiến hành share, gọi hàm: FacebookShare.postLinkToFacebook ("đoạn text sẽ share");
  • VD:  FacebookShare.postLinkToFacebook ("Game này hay lắm");
  • Để bắt sự kiện share Facebook thành công: mở lớp Facebook.cs và bắt sự kiện trong hàm OnFacebookShareSuccess

Lưu ý: plugins này chỉ có thể thực hiện việc post link lên facebook. Để có các chức năng nâng cao hơn (friend request chẳng hạn), bạn có thể sử dụng thư viện sau: Facebook SDK cho Unity chính thức.

Bất kể bạn dùng thư viện nào thì cũng cần có tài khoản Facebook developer và 1 application đã tạo trên Facebook để nhận request trên Android.

Yêu cầu của plugins: 
  • Unity3D 4.x trở lên
  • Android 2.3.1 trở lên

Sunday, June 15, 2014

Các địa chỉ về Unity3D đáng chú ý ở Việt Nam

Như tiêu đề, bài viết sẽ chỉ đề cập đến các site viết bằng tiếng Việt

1. Unity3D Facebook

https://www.facebook.com/Unity3dVietNam
Trang facebook này do cộng đồng Unity3D Việt Nam lập nên vào 03/ 04/ 2012. Đây là cộng đồng hoạt động khá sôi nổi với mục đích chia sẻ kinh nghiệm về việc sử dụng và làm game trên Unity3D.

Đánh giá: Trang facebook chủ yếu giúp bạn cập nhật thông tin về Unity3D.

2. Viet Game Dev

http://vietgamedev.net/unity/ 

Trang web này cung cấp nhiều tutorial hay cả về Unity3D cũng như nhiều công việc khác trong làm game. Những bài viết trên trang này có chất lượng tốt, phù hợp với người mới bắt đầu. Bản thân mình cũng đã từng sử dụng các tutorial trên trang này.

Đánh giá: Trang web này cung cấp nhiều tutorial hay cho người bắt đầu.

3. Cộng đồng Android

http://congdongandroid.vn/forumdisplay.php?fid=33

Trang forum này cung cấp nhiều tutorial hay về Unity3D cũng như các game engine khác. Bạn có thể tìm thấy ở đây các bài viết về nhiều vấn đề từ đơn giản đến nâng cao trong Unity3D. 

Đánh giá: Trang forum này cung cấp nhiều tutorial hay về nhiều vấn đề, đồng thời bạn cũng có thể đặt câu hỏi cho điều bạn còn thắc mắc.

4. Unity3D Việt Nam

http://unity3dvn.com/

Trang web có cung cấp một số tutorial căn bản về Unity3D. Tuy nhiên, điểm nổi bật của trang này là việc cung cấp nhiều tutorial khá tốt về AI (trí tuệ nhân tạo). Trang web cũng có 1 forum đi kèm để tiện cho người sử dụng hỏi đáp.

Đánh giá:  nếu bạn cần tìm hiểu thêm về AI, hãy đọc trang này.

5. Việt Unity3D Blog

http://vietunity3d.blogspot.com/

Trang blog cung cấp rất nhiều tutorial hay về Unity3D. Đây cũng là trang blog có bộ video hướng dẫn Unity3D đầy đủ nhất (bằng tiếng Việt)

Đánh giá: bộ video tutorial do blog cung cấp rất tốt cho tất cả những ai muốn lập trình Unity3D. Các bài viết cũng đều rất có chất lượng và chuyên sâu.

Friday, June 13, 2014

Sử dụng các hàm Log của Android trên Unity3D

Trong bài viết này mình sẽ hướng dẫn sử dụng các chức năng log (Log.v, Log.e, Log.d, Log.i, Log.w) của Android gọi trực tiếp từ Unity3D.

Bình thường, khi code trên Android chúng ta hay sử dụng các chức năng như Toast, Log.e, Log.v... để debug game. Tuy nhiên, khi sử dụng Unity3D để build game Android thì ta khó có thể truy cập và sử dụng các hàm này. Các hàm debug của Unity3D hầu như chỉ có thể log trên editor, để config và sử dụng các hàm này trên Android khá là khó khăn.

Do đó, mình đã viết 1 plugins chuyên thực hiện việc log trên Android. 
Nguyên tắc cơ bản là bên code Unity3D sẽ gọi ngược sang bên code Android và gọi các hàm log của Android.

Để sử dụng các chức năng Android log trong Unity3D, ta cần thực hiện các bước sau:

- Bước 1: chuẩn bị, mục tiêu của bước này là để game có thể sẵn sàng build trên Android
  • Trong Player Settings, switch platform sang Android
  • Thiết lập các thuộc tính liên quan đến Bundle ID, company...

- Bước 2: download và import gói sau

- Bước 3: Sử dụng các hàm sau
  • Để hiện Toast: AndroidLog.showToast ("Test show toast");
  • Để log trong Logcat: tham số đầu tiên là tag, tham số thứ hai là message
    • Log error: AndroidLog.logError ("Test Logging", "Log error");
    • Log debug: AndroidLog.logDebug ("Test Logging", "Log debug");
    • Log warning: AndroidLog.logWarning ("Test Logging", "Log warning");
    • Log info: AndroidLog.logInfo ("Test Logging", "Log info");
    • Log verbose: AndroidLog.logVerbose ("Test Logging", "Log verbose"); 

Kết quả: mở Logcat và xem thành quả. Mình đã test trên nhiều dòng máy khác nhau và chưa phát hiện ra lỗi gì (đã test trên Galaxy S1 => Galaxy S4, Sky, HK phone...)

Lưu ý: plugins này được tối ưu cho tính dễ sử dụng nên hiệu năng không cao. Khi build game để phát hành nên bỏ hết các hàm thực hiện việc logging này đi.

Yêu cầu của plugins: 
  • Unity3D 4.x trở lên
  • Android 2.3.1 trở lên