Search…

Tạo Scrolling Background Với Unity

19/08/20203 min read
Scrolling Background là một hiệu ứng đơn giản và dễ hiện thực, tạo cảm giác chuyển động xa vô tận của nhân vật, rất phù hợp với các game thuộc thể loại endless-running.

Tài nguyên sử dụng

Trong bài viết có sử dụng ảnh không gian vũ trụ, các bạn có thể download tại background.zip.

Lưu ý: Background được sử dụng trong bài phù hợp với các thiết bị có kích thước màn hình có tỉ lệ 4:3. Do đó cần tuỳ chỉnh lại màn hình game cho phù hợp với thực tế.

background

Hiện thực

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

Đầu tiên, khởi tạo một project Unity 2D. Sau khi khởi tạo project, tạo một số folder như sau để tiện quản lý game:

Unity IDE.

Các tài nguyên của game đặt trong folder Resources.

Unity IDE
Unity IDE.
=

Tạo background

Bước 1: Kéo background từ trong folder Resources vào cửa sổ Hierarchy.

Unity IDE

Bước 2: Tạo Prefab cho background. Chỉ cần kéo thả ngược background từ cửa sổ Hierarchy vào cửa sổ Project. Để thuận tiện trong việc quản lý, nên lưu trữ Prefab này trong folder tương ứng đã tạo ra ở trên.

Unity IDE

Sau khi tạo Prefab, Background trong Hierarchy đã chuyển sang màu xanh. Đây là ưu điểm của Prefab khi tạo được liên kết với các Game Object trong Hierarchy. Bằng cách thêm/xoá/chỉnh sửa các component trong Prefab, các Game Object tương ứng cũng sẽ thay đổi theo.

Bước 3: Tạo background thứ hai từ Prefabs.

Unity IDE

Bước 4: Điều chỉnh background. Sau khi thực hiện xong các thao tác trên, hai background sẽ nằm chồng lên nhau. Có thể tự điều chỉnh cho hai background này nằm liền kề nhau bằng thao tác chuột, hoặc tham khảo các thông số được đề xuất dưới đây:

Unity IDE

Bước 5: Điều chỉnh camera. Cần điều chỉnh lại thông số Size của Main Camera cho phù hợp với màn hình game. Vùng nằm phía trong của camera sẽ là những gì mà người dùng nhìn thấy và sẽ hiển thị trong cửa sổ Game. Thông số thiết lập sẵn như sau:

Unity IDE

Hai background liên tiếp đã tạo xong, nếu chạy demo lúc này sẽ không có gì xảy ra do chưa có script cập nhật lại toạ độ của background.

Scrolling background

Để tạo scrolling background, sử dụng script để tạo điều kiện cho background di chuyển phù hợp sau khi ra khỏi vùng nhìn thấy của camera.

Tạo một file C# Script (Create → C# Script), đặt trong folder Scripts đã tạo ở trên.

Double click vào file Script vừa tạo, mặc định sẽ mở ra MonoDevelop – được tích hợp với Unity Engine. Thay thế hàm Update() mặc định bằng đoạn code sau:

//Initialize variables
public float speed;
public int background_count;
public float background_height;
	
// Update is called once per frame
void Update () {
	//Move down
	transform.Translate (Vector3.down *  speed  * Time.deltaTime);
		
	Vector3 pos = transform.position;
	if (pos.y < -background_height) {
		pos.y += background_height * background_count;
		transform.position = pos;
	}
}

Sau khi tạo xong đoạn script, kéo đoạn script này vào background trong thư mục Prefabs (kéo thả vào cửa sổ Inspector). Lúc này cả hai background trong cửa sổ Hierarchy đều được tích hợp đoạn script này.

Unity IDE

Điều chỉnh các thông số của đoạn script trong Prefabs → Background như sau:

Unity IDE

Ngay lập tức, hai background trong Hierarchy sẽ được cập nhật tương ứng.

Đến đây đã hiện thực xong scrolling background với Unity.

Unity IDE
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024