Khi bắt đầu lập trình game 2D với Unity, chúng ta không thể thiếu chức năng Camera di chuyển theo nhân vật. Trong bài viết này, cùng học cách tích hợp code điều khiển Camera và sử dụng thư viện được cung cấp “chính hãng” bởi unity là Cinemachine nhé!
Để làm Demo chức năng này trong dự án, chúng ta sẽ bắt đầu với việc tạo một Scene với một nhân vật và một Camera như sau:
Bước 1: Mở Window / Package Manager
Bước 2: Ở cửa sổ mới mở ra, các bạn tuỳ chọn như sau:
- Pakages: Unity Registry
- Nhập ô tìm kiếm là: Cinemachine
- Sau đó bấm Install để cài gói thư viện
Sau khi cài đặt bấm chuột phải ở cửa sở Hierarchy thêm mới 1 đối tượng 2D Camera như hình:
Thiết lập thông số cho 2DCamera mới tạo như sau:
Kéo và thả đối tượng Player vào 2 thuộc tính của 2D Camera mới tạo là Follow và Look At. Sau khi hoàn tất, chúng ta test thử camera để tự động đi theo nhân vật.
Tiếp theo, chúng ta sử dụng đến một tuỳ chọn quan trọng trong gói thư viện Cinemachine là Extension. Cụ thể, Extension ở đây là “Cinemachine Confinder” có chức năng giới hạn khu vực Camera sẽ trình chiếu.
Ví dụ: Khi nhân vật di chuyển tới sát phía ngoài cùng của màn chơi, chúng ta sẽ bị lỗi hiển thị
Chúng ta có thể dễ dàng nhận thấy màn chơi bị hở 1 khoảng background xanh do Camera ko dừng lại ở điểm bắt đầu của ảnh background khi nhân vật di chuyển tới sát mép ngoài. Để khắc phục được lỗi này, chúng ta cần tạo 1 khu vực giới hạn cho Camera di chuyển thông qua extension Cinemachine Confinder.
Bước 1: tạo 1 GameObject mới đặt tên là CameraLimitArea, sau đó thêm cho gameObject này 1 Collider Component bất kì để tạo viền giới hạn.
Bước 2: bấm vào GameObject CM vcam1 (CinemachineVituralCamera đã tạo trong bài viết trước), chọn Add Extension -> CinemachineCofiner.
Sau khi thêm xong, kéo GameObject CameraLimitArea đã tạo ở bước trên vào tuỳ chọn thứ 2
Cuối cùng, chúng ta chạy thử và được kết quả như hình, nhân vật di chuyển sát phía bên trái màn chơi, camera ko hiển thị background màu xanh.
Với phần hướng dẫn trên, hy vọng các bạn sẽ tùy chỉnh Camera theo nhân vật dễ dàng với Game Unity 2D để áp dụng vào công việc cũng như những bài tập khó nhằn trên lớp. Chúc các bạn sinh viên sẽ thành công!
Giảng viên Nguyễn Hữu Huy
Bộ môn Công nghệ thông tin
Trường Cao đẳng FPT Mạng cá cược bóng đá cơ sở Hà Nội