Học làm game (3) - Làm quen với Unity

Bài trước: Học làm game (2) - Lập kế hoạch

-----

1         Unity

Như trong phần Các công cụ để lập trình game đã đề cập, Unity là một trong rất nhiều các phần mềm dùng để lập trình game. Phần này sẽ tập trung tìm hiểu cơ bản về công cụ này.

Phần này chúng ta sẽ tập trung vào một số chủ đề sau:

– Rèn luyện phương pháp tự học, bắt đầu là xem và làm theo; vừa làm vừa ghi chép để hệ thống lại kiến thức

– Bằng cách làm theo clip, bước đầu có thể tạo ra được một game đơn giản bằng Unity

– Gặp các khái niệm, kiến thức chưa biết, chúng ta sẽ tìm kiếm tài liệu để đọc và học thêm

1.1       Tổng quan về Unity

Unity là một phần mềm làm game (game engine) đa nền tảng, do tập đoàn Unity Technologies của Đan Mạch tạo ra năm 2005.

Unity có thể tạo ra game chạy trên máy tính, thiết bị di động, trình duyệt, console, thực tế ảo.

Hỗ trợ làm game 2D, 3D. Sử dụng ngôn ngữ lập trình C#.

Các phiên bản của Unity

Phiên bản

Năm ra đời

Unity 2.0

2007

Unity 3.0

2010

Unity 4.0

2012

Unity 5.0

2015

Unity

2017 đến nay

1.2       Cài đặt và làm quen với Unity

Cài đặt

– Vào trang chủ của Unity: https://unity.com/

– Chọn phiên bản phù hợp hệ điều hành của bạn, phù hợp với yêu cầu sử dụng.

– Ví dụ: chọn phiên bản 2018.3.x.

– Thực hiện cài đặt

– Tạo tài khoản trên hệ thống Unity

Làm quen với Unity

– Chúng ta sẽ làm quen với Unity thông qua việc làm game Tetris đơn giản.

– Tham khảo bài viết: https://noobtuts.com/unity/2d-tetris-game

– Mở Unity > vào menu File > chọn New Project > điền các thông tin

– Bấm Create project để tạo dự án

– Ở khung Hierarchy (bên trái) > mục SampleScene > chọn Main Camera. Thiết lập màu của Background là màu đen (black), Size = 8, Position: X = 4.5, Y = 7.5, Z = -10. Xem hình minh họa.

– Size: kích thước chiều dọc của khung nhìn camera, đơn vị tính là [On an orthographic camera, the orthographic size dictates how many units in world space the screen’s height is divided into. So on a screen height of 1080 with orthographic size of 5, each world space unit will take up 108 pixels (1080 / (5*2)). It’s 5 * 2 because orthographic size specifies the size going from the center of the screen to the top.] 

– Orthographic: phép chiếu song song, được sử dụng trong các game 2D, các đối tượng sẽ được vẽ đúng tỉ lệ dù ở bất kì khoảng cách nào của chiều sâu.

Đọc thêm về Hierarchy và giao diện của Unity: https://docs.unity3d.com/Manual/Hierarchy.html


– Cửa sổ Hierarchy (B) hiển thị mọi GameObject trong một phân cảnh (scene). GameObject là khái niệm quan trọng nhất trong Unity Editor.

– SampleScene là phân cảnh mặc định của Unity. Trong đó có camera là một GameObject mặc định, tên là Main Camera.

– Camera là một con mắt quan sát Phân cảnh, từ đó sẽ xuất hiện tất cả các sự kiện trong game lên màn hình.

– Mỗi đối tượng trong game được gọi là GameObject. Ví dụ: nhân vật (characters), bóng đèn, cây, âm thanh.

– Cửa sổ phân cảnh (scene window) cho phép chúng ta tương tác với game đang được xây dựng, gồm lựa chọn và thay đổi vị trí của phân cảnh, nhân vật, và các loại GameObject khác.

– Cửa sổ theo dõi (Inspector view) cho phép bạn xem và thay đổi tất cả các thuộc tính của một GameObject đang được chọn.

Tạo các khối hình có tên I, J, L, T, S, Z, O, như sau:


Chuột phải vào ô vuông trên trang web > để lưu ảnh về thư mục Assets của dự án game Tetris.

– Assets có nghĩa là tài sản, là nơi chứa các tài nguyên để tạo ra game, ví dụ hình ảnh, âm thanh.


 
Chọn khối vuông (block) trong cửa sổ Project > thiết lập cấu hình trong cửa sổ Inspector theo hình sau > nhớ bấm Apply để lưu lại cấu hình.


Lưu ý: giá trị của mục Pixels Per Unit sẽ xác định kích thước của game.

Làm khung chữ nhật

Chúng ta sẽ tải tiếp ảnh đường viền từ trang web (https://noobtuts.com/unity/2d-tetris-game) về để làm khung cho trò chơi.

Lưu ảnh đường viền (border.png) vào thư mục Assest của dự án game Tetris.

Thiết lập thuộc tính cho border:


Kéo border từ vùng Project vào cùng Hierarchy, làm 2 lần:

– Cửa sổ Project hiển thị các Assets có thể dùng được trong dự án, các Assets được đưa và dự án sẽ xuất hiện ở đây.


Khung chữ nhật sẽ có chiều rộng là 10 đoạn (block) và chiều cao là 20 đoạn. Tọa độ của các đoạn này trong hệ trục tọa độ Oxy sẽ nằm trong khoảng (0,0) đến (10, 19). Đoạn đầu tiên sẽ có Ox là 0 và Oy là 0.

Thiết lập giá trị cho border và border (1) như hình sau:

Khi tạo khung chúng ta sử dụng chức năng biến đổi hình (transform), với tỉ lệ phóng lớn (scale) là 40. Unity sẽ phóng lớn border theo trục Oy cả chiều lên trên và xuống dưới, nên tọa độ ban đầu của border sẽ có giá trị Oy là 10. Mục đích để khung trò chơi sẽ nằm ở giữa màn hình.

Để thêm một khoảng nhỏ cho không gian đường viền, nhằm đường viền không chiếm vào vùng chơi, chúng ta sẽ cho tọa độ của border lùi sang bên trái và bên phải một chút. Thay vì tọa độ của border là (0,10) thì sẽ là (-0.5, 10); và của border (1) thay vì (9,10) thì sẽ là (9.5, 10).

Khi chúng ta bấm nút Play, giao diện game sẽ như sau:


-----

Cập nhật: 16/3/2023

-----

Bài sau: Học làm game (4) - Unity (game Tetris tiếp)

-----

Bạn muốn tự học HTML bài bản? Xem thêm