Bài 1 - Làm quen với Unity - Bài giảng Cấu trúc dữ liệu và giải thuật | Trường Đại học Bách khoa Hà Nội

Để làm quen với Unity, các bạn mở project FPS Microgame (download tại đây) hoặc đối với một số phiên bản Unity, các bạn chọn New Project, sau đó tìm FPS Microgame ở mục Learning hoặc All templates. Nếu Unity yêu cầu bạn nâng cấp, các bạn có thể đồng ý cho. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

Thông tin:
16 trang 4 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Bài 1 - Làm quen với Unity - Bài giảng Cấu trúc dữ liệu và giải thuật | Trường Đại học Bách khoa Hà Nội

Để làm quen với Unity, các bạn mở project FPS Microgame (download tại đây) hoặc đối với một số phiên bản Unity, các bạn chọn New Project, sau đó tìm FPS Microgame ở mục Learning hoặc All templates. Nếu Unity yêu cầu bạn nâng cấp, các bạn có thể đồng ý cho. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

77 39 lượt tải Tải xuống
I 1 M QUEN VI UNITY
1. CHUN B
Download Unity tại địa ch http://unity3d.com/unity/download/
Ghi chú: Các bạn sinh viên nên đăng ký Unity Student Plan
(https://unity.com/products/unity-student#apply-unity-student-plan)
để đưc s dng phiên bản tương ứng vi Unity Pro cùng gói tài
nguyên tr giá $80.
Để làm quen vi Unity, các bn m project FPS Microgame (download tại đây) hoặc đối
vi mt s phiên bn Unity, các bn chn New Project, sau đó tìm FPS Microgame mc
Learning hoc All templates. Nếu Unity yêu cu bn nâng cp, các bn th đồng ý cho
Unity t động nâng cp và chuyển đổi sang phiên bn mi.
Các bn có th chy th project bng cách n nút Play .
Để phóng to toàn màn hình, các bn chuyn sang ca s Game trước khi n nút Play, sau
đó chọn la chn Maximize when Playing.
2. CÁC KI NIM CA UNITY
Scene
Trong Unity, mi mt Scene (khung cnh) th coi như mt màn chơi hoc mt vùng
trong game. Mt s thành phn của game cũng có thể là mt Scene như Menu
Game Object
Để làm game trong Unity, chúng ta cn phải đưa vào các hình, texture, âm thanh... (gi
chung là các tài nguyên). Tuy nhiên để th s dụng được các tài nguyên này chúng ta
cn phi các Game Object (đối tượng game). Các đối tượng này luôn thành phn
Transform xác định Position (v trí), Rotation xoay) Scale phóng đại) ca chúng.
Script
Để th xây dựng được game logic trong Unity, chúng ta cn phi code bng các ngôn
ng kch bn mà Unity h tr bng C# hoc kéo th bằng Unity Visual Scriting (tên cũ
Bolt). Thông thường khi cài đt, Unity s cho phép chúng ta cài đặt mt b công c son
tho mã nguồn như Visual Studio Code, hoc chúng ta có th la chn công c son tho
mã ngun mà chúng ta mun.
3. TÌM HIU V GIAO DIN CA UNITY
Giao diện Unity cũng khá quen thuộc, tương tự như các ng dng khác vi các shortcut
quen thuộc: Ctrl+N để New, Ctrl+O để Open, Ctrl+S để Save (Ghi chú: Nh lưu project của
bạn thường xuyên), Ctrl+Z để Undo (Rt hu dng khi chng may thao tác nhm)
Cũng ging như nhiu b công c phát trin khác, giao din ca Unity có các thành phn
có th d dàng thay đổi v trí được. Mặc định Unity cung cp 4 layout khác nhau, chúng ta
có th chuyển đổi qua li bằng cách vào menu Windows | Layouts…
Mặc định: Giao din này quen thuc vi khá nhiu người s dụng, đặc biệt đối vi các lp trình viên
do có nét tương đồng với các IDE như Visual Studio…
1
2
3
4
2 by 3: Giao din này thích hp cho các màn hình dài, cho phép nhanh chóng quan sát c ca s thiết
kế và giao diện trò chơi cùng lúc
4 Split: Phù hp cho các level designer, th quan sát cùng lúc 3 hình chiếu của màn chơi cùng với
phi cnh của màn chơi.
1
2
3
4
3
1
2
4
Tall: Cho phép nhìn ca s Scene dài hơn
Wide: Cho phép nhìn ca s Scene rộng hơn
Scene/Game window
Thc cht Scene và Game hai ca s khác nhau. Tuy nhiên ca s Game ch được kích
hot khi chúng ta chy th game. Ca s Scene ca s chính chúng ta s dụng đ
thiết kế game. Ca s này hin th tt c các đối tượng ca khung cnh hin ti. Unity
kh năng tự động tạo đối tượng mi mi khi một tài nguyên khi được kéo th vào ca s
này.
1
4
1
2
3
1
2
3
4
Khi trong ca s Scene, các bn có th dùng các thao tác vi chuột để chuyn góc nhìn
trong khung cảnh như sau:
Phím trái chuột để chn
Phím phi chut để quay (rotate),
Phím giữa để di chuyn tnh tiến (pan),
Nút cun chut để zoom.
Ngoài ra, các bn có th kết hp vi các phím Alt khi thao tác vi chut:
Phím Alt + Phím trái chuột để quay (rotate)
Phím Alt +Phím phi chuột để zoom
Phía trên ca s này chúng ta có thanh công c
Trong đó:
Hand (phím tt Q): Giúp chúng ta di chuyn bên trong khung cnh. Kéo
và th dùng phím trái chuột để di chuyn tnh tiến (pan) khung cnh
Translate (phím tt W): Dùng để di chuyển đối tượng đang được chn
Rotate (phím tt E): Dùng để xoay đối tượng đang được chn
Scale (phím tt R): Dùng đ phóng to thu nh đi tượng đang được
chn
Và mt s công c h tr khác
Lưu ý:
1. Trong Unity cũng như các phn mềm đồ ha khác, trục hướng lên
trên luôn là trc Oy (không phải là Oz như trong hình học gii tích)
Hierachy window
Ca s Hierachy hin th tt c các đối tượng ca Project theo dng cây. Chn một đối
tượng trong ca s này thì đi tượng đó trên khung cnh ca s Scene cũng đồng thi
được chn.
2
Project window
Ca s Project cha tt c các i nguyên của game, được t chc theo các thư mc ca
d án. Ca s Project cũng cho phép chúng ta tạo ra môt s các tài nguyên cơ bn (Script,
Material…)
Inspector window
Ca s Inspector ca s thay đổi theo ng cnh, tùy thuộc vào đối tượng đang được
chn mà ca s s hin th các thành phn, thuc tính phù hp của đối tượng đó.
Mo: bt k ca s nào khi n phím Space thì ca s đó sẽ chuyn thành
Fullscreen. n phím Space li ln nữa để tr v kích thước ban đầu.
4. LÀM QUEN VI LP TRÌNH GAME TRONG UNITY
A) TO MT D ÁN MI HOC S DNG D ÁN HIN TI
Để to d án mi
Chọn File | New Project…
Chọn đường dn và n Create
B) THÊM I NGUN VÀO D ÁN.
Để thêm các tài nguyên này vào d án, có hai cách:
Cách 1: ca s Project nhp phi chọn Import New Assets… Lưu ý chỉth thêm
mt file mt ln
Cách 2: Chn toàn b các tài nguyên ca d án ca s duyt file ca Windows (có
th bao gm c các thư mục), sau đó kéo và thả vào ca s Project ca Unity
Các bn th download mt nh bt k (Gi ý: Tìm kiếm trên mng vi t khóa “texture”),
sau đó import vào project
C) TO ĐI TƯNG GAME
To vt th khi lập phương
ca s Hierarchy chn Create | Cube (hoc vào menu GameObject | Create Other |
Cube)
Chọn đối tượng va to. Nhìn sang ca s Inspector đổi tên đối tưng thành MyCube
Mục Transform đặt v trí cho MyCube tại (0, 0, 0). Đặt Scale cho hp là (2, 2, 2)
3
4
To material cho MyCube: Kéo nh các bạn đã import vào đối tượng MyCube trên ca
s Scene. Unity s t động to ra mt material mới gán vào đi tượng đó. (Hoặc
chúng ta có th làm tng bước bng cách Create | Material trong ca s Project gán
texture vào, sau đó mới gán material cho đối tượng đường đi)
Lưu ý
Trong không gian đồ ha, mt vt th có kích thước 1 đơn vị so vi mt
vt th kích thước 2 đơn vị không có khác mt vt th kích thước
100 đơn vị so vi mt vt th có kích thước 200 đơn vị. Tuy nhiên, trong
môi trường Unity, nên quy ước 1 đơn vị tương đương với 1 mét trong
thế gii thc. Việc này đặc bit quan trng trong các thao tác ln quan
ti x lý vt lý sau này
Mo
Nhấp đúp vào đối tượng trên ca s Hierarchy (hoc chọn đối tượng ri
n F trên ca s Scene) để nhanh chóng di chuyển đến đối tượng đó trên
ca s Scene
To camera
Lúc New Scene, Unity cho các bn la chn to khung cnh empty hoc sn Main
Camera. Nếu đã Main Camera rồi thì các bn dùng luôn. Nếu chưa thì chúng ta
có th to các Camera mi.
Di chuyn và xoay camera v trí thích hợp để th dng nhìn thy MyCube. Nhìn
vào hình preview góc phải phía dưới. Ví d:
To ánh sáng
Tương tự Main Camera, lúc to khung cnh mi nếu bn không chn la chn to
khung cảnh empty thì Unity cũng tạo ra cho bn mt ánh sáng Directional Light (dng
như ánh sáng mặt tri).Chúng ta có th dùng luôn, hoc to ra các ánh sáng bng cách
Create | Light trong ca s Hierarchy, hoc chúng ta có th thay đổi Ambient Light
o Để thay đổi thuc tính cho Directional Light hoc các loi ánh sáng khác, chọn đối
ợng ánh sáng đó và điều chnh các thuc tính màu sc, cường độ Inspector.
o Để thiết lp Ambient Light thì hơi khác mt chút: Vào Window | Rendering |
Lighting
D) VIT SCRIPT CHO KHI LẬP PHƯƠNG
Unity h tr lp trình bng ngôn ng C# hoc bng kéo th. Phn này s ng dn các
bn c hai phương pháp lập trình này.
- Ý tưởng: Khi lập phương s t t bay lên trên cho đến khi độ cao bằng 2, sau đó
s reset tọa độ v v trí ban đầu.
- Thc hin: To mt biến để lưu trữ giá tr chiu cao ca khi lập phương. Cho biến
này mi mt khung hình frame (đối vi máy cu hình tt thì mi khung hình
khoảng 1/60s) tăng lên một giá tr nh. Khi nào giá tr này lớn hơn 2 thì sẽ đặt giá
tr y bng 0. Ti mỗi khung hình, ta đặt tọa độ y ca vt th bng giá tr này (Theo
ghi chú trên, tọa độ y ca các vt th trong không gian đ họa tương ng với độ
cao ca vt th đó).
CÁCH 1 LP TRÌNH BNG C#
To mt script gán cho đối tưng MyCube bằng cách như sau: Chọn đối tượng MyCube,
ca s Inspector chọn AddComponent, New Script và đặt tên, vd. MyCubeBehaviour.
(Cách khác: Ti ca s Project nhp phi chut chọn Create | C# Script, đặt tên
MyCubeBehaviour.cs ri kéo và th vào đối tượng MyCube)
Nhấp đúp vào file MyCubeBehaviour.cs mới được to ra, ta s thấy đoạn mã như sau.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MyCubeBehaviour : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
Khi chúng ta chạy trò chơi, những gì chúng ta viết trong Start() s đưc gọi đầu tiên. Sau
đó tại mỗi khung hình, trò chơi sẽ thc hin các lnh viết trong Update().
Ý tưởng: Cho độ cao ca hộp tăng dần, đến khi cao quá 2 đơn vị thì li chuyển độ cao v 0
đơn vị.
Để thc hiện ý tưởng này, ta thc hin vic viết mã nguồn như sau.
- c 1 To mt biến lưu trữ chiu cao: Ngay trước dòng void Start(), chúng
ta to mt biến tên là boxHeight kiu float, giá tr ban đầu là 0.
float boxHeight = 0;
- c 2 Cp nht giá tr chiu cao mi frame: Trong hàm void Update(), sau du
ngoc nhn {
boxHeight += 0.001f;
- c 3 Cp nht tọa đ cho MyCube:
this.transform.position = new Vector3(0, boxHeight, 0);
Ý tưởng gán cho thuc tính v trí của đối tượng hin ti (this) mt tọa độ (thc
cht là mt Vector3) (0, boxHeight, 0)
- c 4 Đặt li chiu cao nếu giá tr boxHeight lớn hơn 2
if (boxHeight > 2)
boxHeight = 0;
Ấn nút play để chy th “game”
CÁCH 2 KÉO TH BNG VISUAL SCRIPTING
(dành cho phiên bn Unity 2021 tr lên)
c 1:
Chọn đối tượng MyCube, ca s Inspector chn AddComponent, Script Machine.
Component này s đưc thêm vào ca s Inspector như hình:
c 2:
Tiếp theo, to Graph: trên Script Machine component, click vào nút New để to mt
Graph mi, mt ca s Save s xut hin, hin th nhng mc trong folder Assets ca bn.
Đặt tên cho file MyCubeVisualScript để to ra file mi tên
MyCubeVisualScript.asset
(Cách khác: To file Graph trong ca s Projectkéo file đó vào phn Graph bên trong
Component Script Machine trên ca s Inspector)
c 3:
Tiếp theo, nhn vào nút Edit Graph, ca s Script Graph s hin ra như sau:
c 4:
Ti Graph Variables, click vào [New Varible Name] nhp tên biến boxHeight sau đó
nhn vào nút +, 2 trường mi Type Value s hin ra. Vi Type, chn Float còn Value
để0.
c 5:
Click chut phi vào background trong ca s Graph window, mt context menu Unit s
xut hin, nó có tên Fuzzy Finder. Ti thanh tìm kiếm, nhp vào Transform.SetPosition
Sau khi chn xong, mt unit mi s hin ra:
Tương tự như vậy ta s thêm mt s unit khác, c th như sau:
- Get Graph Variable
- Add (in Math/Scalar)
- Set Graph Variable
- Vector 3: Create Vector 3 (X, Y, Z)
- Less (in logic)
- If (in control)
- Interger (in system)
Sau khi thêm các unit trên vào, Script Graph ca ta s như sau:
c 6: Ni các Unit với nhau như hình dưới ri ấn nút play để chy th game:
5. TÌM HIU V UNITY ASSET STORE
Unity cung cp cho ngưi dùng một “chợ” các tài nguyên nhiu th loi. Các bn th
truy cp và download v các tài nguyên hình, âm thanh, script, các công c c các
game starter pack (các trò chơi đã viết sẵn các mechanics đơn giản đ phát trin). Trong
đó, rất nhiu các i nguyên min phí. Các bn th truy cp bng cách vào menu
Window | Asset Store, hoc truy cp t trình duyt vào https://assetstore.unity.com/
Luyn tp:
Các bn t download các game template có sn trên Unity và làm quen vi việc thay đổi
thuộc tính các đối tượng game sn (vd. phóng to, thu nh, di chuyn v trí…). Các bn
cũng có thể thêm các mô hình mới vào trò chơi tùy theo sở thích. Gi ý các bn mt s các
game template hoàn chnh:
Các template do Unity cung cp (xem toàn b tại đây):
- 3D Game Kit / 2D Game Kit
- Creator Kit: FPS / RPG
- Adventure Sample Game
Các template khác:
- Extreme Drift
- AnyRPG Core
- Low Poly Game Kit
- Low Poly Shooter Pack: Free Sample
3D Game Kit
Adventure Sample Game
Extreme Drift
Low Poly Game Kit
Low Poly Shooter Pack
Ghi chú: Mt s package cần được cài đặt thông qua Package Manager. Các bn vào menu
Window | Package Manager để cài và g các gói này.
6. TÙY BIN CÁC PACKAGE CÓ SN
Đối vi các phiên bn Unity Education, Unity Student, khi to ra project mi, chúng ta
th chn mt trong các template sẵn như FPS Microgame, Karting Microgame. Các
template này cũng được tích hp Unity Learn, cho phép chúng ta th thay đi to
thêm các chức năng vào trò chơi theo từng bước được hướng dn trc tiếp trên giao din
ca Unity.
Karting Microgame
Tutorial trc tiếp trên giao din Unity
| 1/16

Preview text:

BÀI 1 – LÀM QUEN VỚI UNITY 1. CHUẨN BỊ
Download Unity tại địa chỉ http://unity3d.com/unity/download/
Ghi chú: Các bạn sinh viên nên đăng ký Unity Student Plan
(https://unity.com/products/unity-student#apply-unity-student-plan)

để được sử dụng phiên bản tương ứng với Unity Pro cùng gói tài nguyên trị giá $80.

Để làm quen với Unity, các bạn mở project FPS Microgame (download tại đây) hoặc đối
với một số phiên bản Unity, các bạn chọn New Project, sau đó tìm FPS Microgame ở mục
Learning hoặc All templates. Nếu Unity yêu cầu bạn nâng cấp, các bạn có thể đồng ý cho
Unity tự động nâng cấp và chuyển đổi sang phiên bản mới.
Các bạn có thể chạy thử project bằng cách ấn nút Play .
Để phóng to toàn màn hình, các bạn chuyển sang cửa sổ Game trước khi ấn nút Play, sau
đó chọn lựa chọn Maximize when Playing.
2. CÁC KHÁI NIỆM CỦA UNITY Scene
Trong Unity, mỗi một Scene (khung cảnh) có thể coi như một màn chơi hoặc một vùng
trong game. Một số thành phần của game cũng có thể là một Scene như Menu Game Object
Để làm game trong Unity, chúng ta cần phải đưa vào các mô hình, texture, âm thanh.. (gọi
chung là các tài nguyên). Tuy nhiên để có thể sử dụng được các tài nguyên này chúng ta
cần phải có các Game Object (đối tượng game). Các đối tượng này luôn có thành phần
Transform xác định Position (vị trí), Rotation (độ xoay) và Scale (độ phóng đại) của chúng. Script
Để có thể xây dựng được game logic trong Unity, chúng ta cần phải code bằng các ngôn
ngữ kịch bản mà Unity hỗ trợ bằng C# hoặc kéo thả bằng Unity Visual Scriting (tên cũ là
Bolt). Thông thường khi cài đặt, Unity sẽ cho phép chúng ta cài đặt một bộ công cụ soạn
thảo mã nguồn như Visual Studio Code, hoặc chúng ta có thể lựa chọn công cụ soạn thảo
mã nguồn mà chúng ta muốn.
3. TÌM HIỂU VỀ GIAO DIỆN CỦA UNITY
Giao diện Unity cũng khá quen thuộc, tương tự như các ứng dụng khác với các shortcut
quen thuộc: Ctrl+N để New, Ctrl+O để Open, Ctrl+S để Save (Ghi chú: Nhớ lưu project của
bạn thường xuyên
), Ctrl+Z để Undo (Rất hữu dụng khi chẳng may thao tác nhầm)
Cũng giống như nhiều bộ công cụ phát triển khác, giao diện của Unity có các thành phần
có thể dễ dàng thay đổi vị trí được. Mặc định Unity cung cấp 4 layout khác nhau, chúng ta
có thể chuyển đổi qua lại bằng cách vào menu Windows | Layouts… 2 1 3 4
Mặc định: Giao diện này quen thuộc với khá nhiều người sử dụng, đặc biệt đối với các lập trình viên
do có nét tương đồng với các IDE như Visual Studio… 1 2 3 4
2 by 3: Giao diện này thích hợp cho các màn hình dài, cho phép nhanh chóng quan sát cả cửa sổ thiết
kế và giao diện trò chơi cùng lúc 2 1 4 3
4 Split: Phù hợp cho các level designer, có thể quan sát cùng lúc 3 hình chiếu của màn chơi cùng với
phối cảnh của màn chơi. 2 1 4 3
Tall: Cho phép nhìn cửa sổ Scene dài hơn 1 4 2 3
Wide: Cho phép nhìn cửa sổ Scene rộng hơn 1
Scene/Game window
Thực chất Scene và Game là hai cửa sổ khác nhau. Tuy nhiên cửa sổ Game chỉ được kích
hoạt khi chúng ta chạy thử game. Cửa sổ Scene là cửa sổ chính mà chúng ta sử dụng để
thiết kế game. Cửa sổ này hiển thị tất cả các đối tượng của khung cảnh hiện tại. Unity có
khả năng tự động tạo đối tượng mới mỗi khi một tài nguyên khi được kéo thả vào cửa sổ này.
Khi ở trong cửa sổ Scene, các bạn có thể dùng các thao tác với chuột để chuyển góc nhìn trong khung cảnh như sau:
• Phím trái chuột để chọn
• Phím phải chuột để quay (rotate),
• Phím giữa để di chuyển tịnh tiến (pan),
• Nút cuộn chuột để zoom.
Ngoài ra, các bạn có thể kết hợp với các phím Alt khi thao tác với chuột:
• Phím Alt + Phím trái chuột để quay (rotate)
• Phím Alt +Phím phải chuột để zoom
Phía trên cửa sổ này chúng ta có thanh công cụ Trong đó: •
Hand (phím tắt Q): Giúp chúng ta di chuyển bên trong khung cảnh. Kéo
và thả dùng phím trái chuột để di chuyển tịnh tiến (pan) khung cảnh
Translate (phím tắt W): Dùng để di chuyển đối tượng đang được chọn •
Rotate (phím tắt E): Dùng để xoay đối tượng đang được chọn •
Scale (phím tắt R): Dùng để phóng to và thu nhỏ đối tượng đang được chọn
• Và một số công cụ hỗ trợ khác Lưu ý:
1. Trong Unity cũng như các phần mềm đồ họa khác, trục hướng lên
trên luôn là trục Oy
(không phải là Oz như trong hình học giải tích)
2
Hierachy window
Cửa sổ Hierachy hiển thị tất cả các đối tượng của Project theo dạng cây. Chọn một đối
tượng trong cửa sổ này thì đối tượng đó trên khung cảnh ở cửa sổ Scene cũng đồng thời được chọn. 3 Project window
Cửa sổ Project chứa tất cả các tài nguyên của game, được tổ chức theo các thư mục của
dự án. Cửa sổ Project cũng cho phép chúng ta tạo ra môt số các tài nguyên cơ bản (Script, Material…) 4
Inspector window
Cửa sổ Inspector là của sổ thay đổi theo ngữ cảnh, tùy thuộc vào đối tượng đang được
chọn mà cửa sổ sẽ hiển thị các thành phần, thuộc tính phù hợp của đối tượng đó.
Mẹo: Ở bất kỳ cửa sổ nào khi ấn phím Space thì cửa sổ đó sẽ chuyển thành
Fullscreen. Ấn phím Space lại lần nữa để trở về kích thước ban đầu.

4. LÀM QUEN VỚI LẬP TRÌNH GAME TRONG UNITY
A) TẠO MỘT DỰ ÁN MỚI HOẶC SỬ DỤNG DỰ ÁN HIỆN TẠI Để tạo dự án mới
• Chọn File | New Project…
• Chọn đường dẫn và ấn Create
B) THÊM TÀI NGUYÊN VÀO DỰ ÁN.
Để thêm các tài nguyên này vào dự án, có hai cách:
• Cách 1: Ở cửa sổ Project nhấp phải chọn Import New Assets… Lưu ý là chỉ có thể thêm một file một lần
• Cách 2: Chọn toàn bộ các tài nguyên của dự án ở cửa sổ duyệt file của Windows (có
thể bao gồm cả các thư mục), sau đó kéo và thả vào cửa sổ Project của Unity
Các bạn thử download một ảnh bất kỳ (Gợi ý: Tìm kiếm trên mạng với từ khóa “texture”), sau đó import vào project C) TẠO ĐỐI TƯỢNG GAME
Tạo vật thể khối lập phương
• Ở cửa sổ Hierarchy chọn Create | Cube (hoặc vào menu GameObject | Create Other | Cube)
• Chọn đối tượng vừa tạo. Nhìn sang cửa sổ Inspector đổi tên đối tượng thành MyCube
• Mục Transform đặt vị trí cho MyCube tại (0, 0, 0). Đặt Scale cho hộp là (2, 2, 2)
• Tạo material cho MyCube: Kéo ảnh các bạn đã import vào đối tượng MyCube trên cửa
sổ Scene. Unity sẽ tự động tạo ra một material mới và gán vào đối tượng đó. (Hoặc
chúng ta có thể làm từng bước bằng cách Create | Material trong cửa sổ Project và gán
texture vào, sau đó mới gán material cho đối tượng đường đi) Lưu ý
Trong không gian đồ họa, một vật thể có kích thước 1 đơn vị so với một
vật thể có kích thước 2 đơn vị không có gì khác một vật thể có kích thước
100 đơn vị so với một vật thể có kích thước 200 đơn vị. Tuy nhiên, trong
môi trường Unity, nên quy ước 1 đơn vị tương đương với 1 mét trong
thế giới thực. Việc này đặc biệt quan trọng trong các thao tác liên quan
tới xử lý vật lý sau này
Mẹo
Nhấp đúp vào đối tượng trên cửa sổ Hierarchy (hoặc chọn đối tượng rồi
ấn F trên cửa sổ Scene) để nhanh chóng di chuyển đến đối tượng đó trên cửa sổ Scene
Tạo camera
• Lúc New Scene, Unity cho các bạn lựa chọn tạo khung cảnh empty hoặc có sẵn Main
Camera. Nếu đã có Main Camera rồi thì các bạn dùng luôn. Nếu chưa có thì chúng ta
có thể tạo các Camera mới.
• Di chuyển và xoay camera ở vị trí thích hợp để có thể dễ dàng nhìn thấy MyCube. Nhìn
vào hình preview ở góc phải phía dưới. Ví dụ:
Tạo ánh sáng
• Tương tự Main Camera, lúc tạo khung cảnh mới nếu bạn không chọn lựa chọn tạo
khung cảnh empty thì Unity cũng tạo ra cho bạn một ánh sáng Directional Light (dạng
như ánh sáng mặt trời).Chúng ta có thể dùng luôn, hoặc tạo ra các ánh sáng bằng cách
Create | Light trong cửa sổ Hierarchy, hoặc chúng ta có thể thay đổi Ambient Light
o Để thay đổi thuộc tính cho Directional Light hoặc các loại ánh sáng khác, chọn đối
tượng ánh sáng đó và điều chỉnh các thuộc tính màu sắc, cường độ ở Inspector.
o Để thiết lập Ambient Light thì hơi khác một chút: Vào Window | Rendering | Lighting
D) VIẾT SCRIPT CHO KHỐI LẬP PHƯƠNG
Unity hỗ trợ lập trình bằng ngôn ngữ C# hoặc bằng kéo thả. Phần này sẽ hướng dẫn các
bạn cả hai phương pháp lập trình này.
- Ý tưởng: Khối lập phương sẽ từ từ bay lên trên cho đến khi độ cao bằng 2, sau đó
sẽ reset tọa độ về vị trí ban đầu. -
Thực hiện: Tạo một biến để lưu trữ giá trị chiều cao của khối lập phương. Cho biến
này mỗi một khung hình – frame (đối với máy cấu hình tốt thì mỗi khung hình
khoảng 1/60s) tăng lên một giá trị nhỏ. Khi nào giá trị này lớn hơn 2 thì sẽ đặt giá
trị này bằng 0. Tại mỗi khung hình, ta đặt tọa độ y của vật thể bằng giá trị này (Theo
ghi chú ở trên, tọa độ y của các vật thể trong không gian đồ họa tương ứng với độ cao của vật thể đó).
CÁCH 1 – LẬP TRÌNH BẰNG C#
Tạo một script và gán cho đối tượng MyCube bằng cách như sau: Chọn đối tượng MyCube,
ở cửa sổ Inspector chọn AddComponent, New Script và đặt tên, vd. MyCubeBehaviour.
(Cách khác: Tại cửa sổ Project nhấp phải chuột chọn Create | C# Script, đặt tên là
MyCubeBehaviour.cs rồi kéo và thả vào đối tượng MyCube)
Nhấp đúp vào file MyCubeBehaviour.cs mới được tạo ra, ta sẽ thấy đoạn mã như sau. using System.Collections;
using System.Collections.Generic; using UnityEngine;
public class MyCubeBehaviour : MonoBehaviour {
// Start is called before the first frame update void Start() { }
// Update is called once per frame void Update() { } }
Khi chúng ta chạy trò chơi, những gì chúng ta viết trong Start() sẽ được gọi đầu tiên. Sau
đó tại mỗi khung hình, trò chơi sẽ thực hiện các lệnh viết trong Update().
Ý tưởng: Cho độ cao của hộp tăng dần, đến khi cao quá 2 đơn vị thì lại chuyển độ cao về 0 đơn vị.
Để thực hiện ý tưởng này, ta thực hiện việc viết mã nguồn như sau.
- Bước 1 – Tạo một biến lưu trữ chiều cao: Ngay trước dòng void Start(), chúng
ta tạo một biến tên là boxHeight kiểu float, giá trị ban đầu là 0. float boxHeight = 0;
- Bước 2 – Cập nhật giá trị chiều cao mỗi frame: Trong hàm void Update(), sau dấu ngoặc nhọn { boxHeight += 0.001f;
- Bước 3 – Cập nhật tọa độ cho MyCube:
this.transform.position = new Vector3(0, boxHeight, 0);
Ý tưởng là gán cho thuộc tính vị trí của đối tượng hiện tại (this) một tọa độ (thực
chất là một Vector3) (0, boxHeight, 0)
- Bước 4 – Đặt lại chiều cao nếu giá trị boxHeight lớn hơn 2 if (boxHeight > 2) boxHeight = 0;
Ấn nút play để chạy thử “game”
CÁCH 2 – KÉO THẢ BẰNG VISUAL SCRIPTING
(dành cho phiên bản Unity 2021 trở lên) Bước 1:
Chọn đối tượng MyCube, ở cửa sổ Inspector chọn AddComponent, Script Machine.
Component này sẽ được thêm vào cửa sổ Inspector như hình: Bước 2:
Tiếp theo, tạo Graph: Ở trên Script Machine component, click vào nút New để tạo một
Graph mới, một cửa sổ Save sẽ xuất hiện, hiển thị những mục trong folder Assets của bạn.
Đặt tên cho file là MyCubeVisualScript để tạo ra file mới có tên là MyCubeVisualScript.asset
(Cách khác: Tạo file Graph trong cửa sổ Project và kéo file đó vào phần Graph bên trong
Component Script Machine trên cửa sổ Inspector) Bước 3:
Tiếp theo, nhấn vào nút Edit Graph, cửa sổ Script Graph sẽ hiện ra như sau: Bước 4:
Tại Graph Variables, click vào [New Varible Name] nhập tên biến là boxHeight sau đó
nhấn vào nút +, 2 trường mới là TypeValue sẽ hiện ra. Với Type, chọn Float còn Value để là 0. Bước 5:
Click chuột phải vào background trong cửa sổ Graph window, một context menu Unit sẽ
xuất hiện, nó có tên là Fuzzy Finder. Tại thanh tìm kiếm, nhập vào Transform.SetPosition
Sau khi chọn xong, một unit mới sẽ hiện ra:
Tương tự như vậy ta sẽ thêm một số unit khác, cụ thể như sau: - Get Graph Variable
- Add (in Math/Scalar) - Set Graph Variable
- Vector 3: Create Vector 3 (X, Y, Z) - Less (in logic) - If (in control) - Interger (in system)
Sau khi thêm các unit trên vào, Script Graph của ta sẽ như sau:
Bước 6: Nối các Unit với nhau như hình dưới rồi ấn nút play để chạy thử game:
5. TÌM HIỂU VỀ UNITY ASSET STORE
Unity cung cấp cho người dùng một “chợ” các tài nguyên nhiều thể loại. Các bạn có thể
truy cập và download về các tài nguyên mô hình, âm thanh, script, các công cụ và cả các
game starter pack (các trò chơi đã viết sẵn các mechanics đơn giản để phát triển). Trong
đó, rất nhiều các tài nguyên là miễn phí. Các bạn có thể truy cập bằng cách vào menu
Window | Asset Store, hoặc truy cập từ trình duyệt vào https://assetstore.unity.com/ Luyện tập:
Các bạn tự download các game template có sẵn trên Unity và làm quen với việc thay đổi
thuộc tính các đối tượng game có sẵn (vd. phóng to, thu nhỏ, di chuyển vị trí…). Các bạn
cũng có thể thêm các mô hình mới vào trò chơi tùy theo sở thích. Gợi ý các bạn một số các game template hoàn chỉnh:
Các template do Unity cung cấp (xem toàn bộ tại đây): - 3D Game Kit / 2D Game Kit - Creator Kit: FPS / RPG - Adventure Sample Game Các template khác: - Extreme Drift - AnyRPG Core - Low Poly Game Kit
- Low Poly Shooter Pack: Free Sample 3D Game Kit Adventure Sample Game Extreme Drift Low Poly Game Kit Low Poly Shooter Pack
Ghi chú: Một số package cần được cài đặt thông qua Package Manager. Các bạn vào menu
Window | Package Manager để cài và gỡ các gói này.
6. TÙY BIẾN CÁC PACKAGE CÓ SẴN
Đối với các phiên bản Unity Education, Unity Student, khi tạo ra project mới, chúng ta có
thể chọn một trong các template có sẵn như FPS Microgame, Karting Microgame. Các
template này cũng được tích hợp Unity Learn, cho phép chúng ta có thể thay đổi và tạo
thêm các chức năng vào trò chơi theo từng bước được hướng dẫn trực tiếp trên giao diện của Unity. Karting Microgame
Tutorial trực tiếp trên giao diện Unity
Document Outline

  • BÀI 1 – LÀM QUEN VỚI UNITY
    • 1. Chuẩn bị
    • 2. Các khái niệm của Unity
    • 3. Tìm hiểu về giao diện của Unity
    • 4. Làm quen với lập trình game trong unity
      • a) Tạo một dự án mới hoặc sử dụng dự án hiện tại
      • b) Thêm tài nguyên vào dự án.
      • c) Tạo đối tượng game
      • d) Viết script cho khối lập phương
    • 5. Tìm hiểu về Unity Asset Store
    • 6. Tùy biến các package có sẵn