STDIO
Tìm kiếm gần đây

    Nội dung

    Hiện Thực Game Zero Với Unity - Phần 1 - Nhận Sự Kiện Button

    Rye Nguyen

    09/08/2015
    Hiện Thực Game Zero Với Unity - Phần 1 - Nhận Sự Kiện Button
    Tôi tiếp tục chuỗi bài viết giúp bạn đọc xây dựng một game đơn giản thực tế: Hướng Dẫn Hiện Thực Game Zero Với Unity. Qua chuỗi bài viết, hi vọng bạn đọc sẽ dễ dàng hơn trong việc xây dựng một game trên Unity, đồng thời biết cách tổ chức project hiệu quả trong Unity. Ở phần 1, tôi sẽ hướng dẫn bạn đọc thiết lập môi trường phát triển và hiện thực hai button chính trong GameScene.

    Giới thiệu

    Chuỗi bài viết giúp bạn đọc xây dựng một game đơn giản thực tế: Hướng Dẫn Hiện Thực Game Zero Với Unity. Qua chuỗi bài viết, hi vọng bạn đọc sẽ dễ dàng hơn trong việc xây dựng một game trên Unity, đồng thời biết cách tổ chức project hiệu quả trong Unity.

    Ở phần 1, tôi sẽ hướng dẫn bạn đọc thiết lập môi trường phát triển và hiện thực hai button chính trong phần GameScene.

    Các bài viết thuộc series

    Khởi tạo project và setup môi trường làm việc

    Không gian game của chúng ta là 2D nên tôi sẽ tạo một project Unity 2D. Trong hướng dẫn, tôi có import package Visual Studio 2015 Tools For Unity để thao tác với script bằng Visual Studio 2015. Bạn đọc có thể sử dụng MonoDevelop thay thế hoặc tải package tại link cuối bài viết.Bộ resources sử dụng trong bài viết thuộc sở hữu của STDIO. Do đó chương trình tạo ra chỉ mang tính học tập và nghiên cứu mà không có tính thương mại. Bạn đọc có thể tải về bộ resource tại STDIO_ZeroResources.

    Sau khi tải về, bạn đọc giải nén và copy tất cả vào đường dẫn $ProjectDir/Assets/Resources. Nếu folder Resources chưa tồn tại thì bạn hãy tự tạo ra nó.

    ss_1

    Ngoài ra, toàn bộ sprite đều đươc tích hợp vào spritesheet với định dạng riêng của Unity. Bạn đọc cần import thêm package TexturePacker Importer để làm việc với bộ resources. Package yêu cầu phiên bản Unity 4.5.0 hoặc cao hơn.

    https://www.assetstore.unity3d.com/en/#!/content/16641 - 17/04/2016.

    Game Zero hướng dẫn trong bài viết là phiên bản mobile, do đó bạn cần điều chỉnh lại trong Build Setting và trong cửa sổ Game với kích thước màn hình dọc. Tôi chọn nền tảng Android và độ phân giải màn hình WVGA Portrait (480x800) như sau:

    Bấm Ctrl + Shift + B hoặc chọn menu File → Build Setting.

    Chọn nền tảng Android → Switch Platform.

    ss_2

    Tại cửa sổ Game, chọn độ phân giải màn hình như trong hình dưới.

    ss_3

    Đến đây cơ bản chúng ta đã chuẩn bị xong môi trường làm việc với game Zero.

    Tạo background

    Mã màu background của game Zero là 1DE9B6FF. Thay đổi màu background tại Main Camera như sau:

    ss_4

    Tôi tạo thêm một đối tượng UI Image để gắn BoardGame như sau:

    ss_5

    BoardGame được tạo ra sẽ nằm trong một Canvas. Tôi thiết lập Canvas để render theo camera. Nhờ đó mà các đối tượng UI sẽ luôn nằm trên màn hình hiển thị. Ngoài ra, tôi thay đổi UI Scale Mode thành Scale With Screen Size với Reference Resolution (độ phân giải gốc để scale khi kích thước màn hình game thay đổi) là 480x800. Khi phóng lớn hay thu nhỏ cửa sổ Game thì các đối tượng sẽ được scale lại tương ứng.

    ss_6

    Tạo Button

    Hai button Right và Wrong sử dụng trong gameplay là UI Button. Thao tác với UI Button, bạn đọc có thể tham khảo bài viết Thiết Kế Giao Diện Người Dùng Trên Unity. Tôi tạo ra hai button như sau:

    Button Right.

    ss_7

    Button Wrong.

    ss_8

    Tôi sử dụng Transition Sprite Swap với resource có sẵn trong Spritesheet. Ngoài ra tôi gắn tag "Button" cho hai button này để tiện quản lý. Thông số về vị trí của hai button bạn có thể tuỳ chỉnh cho vừa mắt hoặc sử dụng thông số tôi thiết lập sẵn.

    Tạo script nhận sự kiện button click

    Để nhận sự kiện khi click chuột, ta sử dụng event OnClick được tích hợp sẵn vào mỗi button. Tôi viết một script với ngôn ngữ C# để kiểm tra sự kiện OnClick và Debug ra màn hình Console như sau (ButtonManager.cs):

    using UnityEngine;
    using Stdio;
    
    public class ButtonManager : MonoBehaviour
    {
           public void CheckAnswer()
           {
                  if(gameObject.name == "BtnRight")
                  {
                         Static.S_Debug("Button Right clicked");
                  }
                  else
                  {
                         Static.S_Debug("Button Wrong clicked");
                  }
           }
    }

    Mỗi button khi click chuột sẽ gọi đến hàm CheckAnswer trong script. Lưu ý thuộc tính public của hàm để có thể tham chiếu đến hàm trong sự kiện OnClick.

    ss_9

    Hàm Static.S_Debug được tôi định nghĩa như sau (Statics.cs):

    using UnityEngine;
    
    namespace Stdio
    {
           static class Static
           {
                  public static void S_Debug(object message)
                  {
                         if (Debug.isDebugBuild)
                               Debug.Log(message);
                  }
           }
    }

    Lớp Static sẽ sử dụng xuyên suốt trong chuỗi bài viết để quản lý game được thuận tiện và hiệu quả hơn. Tôi sẽ cập nhật thêm các thuộc tính và phương thức cần thiết trong những bài viết sau.

    Download Project

    Nếu chưa hoàn thành được theo hướng dẫn trong bài viết, bạn đọc có thể tham khảo project đính kèm.

    STDIO_ZeroUnity-1

    Thảo luận

    Đăng nhập

    Bài viết liên quan

    Hiện Thực Game Zero Với Unity - Phần 3 - Điểm Số Và Progress Timer

    Hiện Thực Game Zero Với Unity - Phần 3 - Điểm Số Và Progress Timer

    Tiếp tục chuỗi bài viết Hướng Dẫn Hiện Thực Game Zero Với Unity, ở phần trước, tôi đã giới thiệu và hướng dẫn các bạn cách hiện thực gameplay của game Zero. Trong phần 3 ...

    Rye Nguyen

    10/08/2015

    Hiện Thực Game Zero Với Unity - Phần 2 - Hiện Thực Gameplay

    Hiện Thực Game Zero Với Unity - Phần 2 - Hiện Thực Gameplay

    Tôi tiếp tục chuỗi bài viết giúp bạn đọc xây dựng một game đơn giản thực tế: Hướng Dẫn Hiện Thực Game Zero Với Unity. Ở phần 2 tôi sẽ giới thiệu và hướng dẫn các bạn xây ...

    Rye Nguyen

    09/08/2015

    Hiện Thực Game Zero Với Unity - Phần 4 - Scene Và Popup

    Hiện Thực Game Zero Với Unity - Phần 4 - Scene Và Popup

    Tiếp tục chuỗi bài viết Hướng Dẫn Hiện Thực Game Zero Với Unity, trong bài viết này, tôi sẽ tập trung thiết kế hệ thống scene và popup trong game. Ngoài ra, tôi mở rộng ...

    Rye Nguyen

    10/08/2015

    Hiện Thực Game Zero Với Unity - Phần 5 - Âm Thanh Và Effect

    Hiện Thực Game Zero Với Unity - Phần 5 - Âm Thanh Và Effect

    Tiếp tục chuỗi bài viết Hướng Dẫn Hiện Thực Game Zero Với Unity, trong bài viết này, tôi sẽ hướng dẫn bạn đọc thêm các hiệu ứng âm thanh và hiệu ứng của gameplay. Đây là ...

    Rye Nguyen

    11/08/2015

    Hướng Dẫn Viết Game Zero Với Cocos2d-x - Phần 8: Hiện thực GameScene - Xử lý sự kiện trong game

    Hướng Dẫn Viết Game Zero Với Cocos2d-x - Phần 8: Hiện thực GameScene - Xử lý sự kiện trong game

    Tiếp tục chuỗi bài viết về hướng dẫn làm game, hôm nay tôi sẽ hướng dẫn cách hiện thực GameScene. Cụ thể trong bài viết này tôi sẽ giúp các bạn cách nhận các sự kiện từ ...

    Ryan Lê

    10/03/2015

    Hiện Thực Menu Select Level Với Scroll Rect

    Hiện Thực Menu Select Level Với Scroll Rect

    Đối với các thể loại game giải đố (puzzle), luôn luôn có một hệ thống màn chơi đa dạng với các cấp độ từ dễ đến khó để thử thách người chơi. Việc này được hỗ trợ một phần ...

    Rye Nguyen

    08/08/2015

    Ứng Dụng Của StartCoroutine Trong Unity

    Ứng Dụng Của StartCoroutine Trong Unity

    Khi tiếp nhận và xử lý các sự kiện thu được, có những lúc chúng ta cần một khoảng thời gian chờ giữa việc nhận được sự kiện và xử lý sự kiện. Có khá nhiều những trường ...

    Rye Nguyen

    08/08/2015

    Phát Triển Game Funny Halloween Pumpkins Với Cocos2d-x - Phần 1

    Phát Triển Game Funny Halloween Pumpkins Với Cocos2d-x - Phần 1

    Bài viết hướng dẫn các bạn mới muốn học làm game bằng Cocos2d-x. Thông qua bài viết này, các bạn có thể biết đuợc một số kiến thức về xử lý cũng như cách bố trí cấu trúc ...

    Nguyễn Văn Lợi

    27/11/2015

    Sử Dụng CSDL Hướng Đối Tượng DB4O Với Android - Phần 2 Thực Hiện App Đơn Giản - Chương Trình Trắc Nghiệm

    Sử Dụng CSDL Hướng Đối Tượng DB4O Với Android - Phần 2 Thực Hiện App Đơn Giản - Chương Trình Trắc Nghiệm

    Tiếp theo bài viết 'Sử dụng hệ quản trị cơ sở dữ liệu DB4O trên Android', bài viết này sẽ hướng dẫn xây dựng một chương trình trắc nghiệm đơn giản và tập trung vào các ...

    Nguyễn Hồng Sơn

    15/03/2016

    Tạo Animation Với Unity

    Tạo Animation Với Unity

    Animation giúp lập trình viên diễn tả hành động của các nhân vật một cách chân thực và sống động hơn. Với Unity, thao tác tạo và sử dụng animation cho các nhân vật trở ...

    Rye Nguyen

    02/08/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    [email protected]

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020