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.
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