- vừa được xem lúc

Tạo setting game trên inspector.

0 0 22

Người đăng: Dao Dinh Cuong

Theo Viblo Asia

Chào các bạn,

Hôm nay chúng ta sẽ cùng tạo 1 setting/config cho game trên inspector nhé!

Vậy tại sao lại là inspector? và khi nào thì chúng ta nên tạo mấy cái kiểu thế này?

Câu trả lời đó là khi chúng ta cần 1 cái gì đó để thao tác trong editor, trực quan nhất, không cần sửa code để cập nhật dữ liệu.... Và hẳn các bạn cũng từng làm việc với những value trên inspector rồi, ví dụ khi ta khai báo 1 biến dạng publish, chúng ta sẽ thấy nó hiển thị trên inspector và có thể edit được nó khi đang play.

Nếu chỉ cần khai báo publish là được thì sao phải có bài này? đó là vì publish là không đủ cho nhiều nhu cầu, ví dụ chúng ta muốn hiển thị 1 nút ấn trên inspector thì publish sẽ không làm được.

Ok, vậy vào việc nhé!

Mục tiêu của ta sẽ là tạo ra 1 dropdown, một vài trường dữ liệu, và 1 nút ấn.

Bước 1: Tạo class.

  • Chúng ta cần 2 class, 1 cái là định nghĩa các phương thức và thuật toán, 1 class để hiển thị lên inspector, các bạn đặt tên thêm hậu tố Editor và implements từ Class Editor.
  • Ví dụ mình đặt tên 2 class là Settings và SettingsEditor.

Bước 2: Khai báo biến và phương thức.

  • Chúng ta tạo ra 1 biến dạng enum để làm dropdown, 1 biến dạng float có RangeAttribute, 1 biến bool làm checkbox, và 1 biến GameObject.
  • Phương thức chúng ta tạo 1 phương thức DisplayValue để show những value chúng ta vừa sửa trên Inspector.

Bước 3: Định nghĩa SettingsEditor.

  • Khai báo lại các biến với thuộc tính là SerializedProperty.
  • Trong phương thức OnEnable chúng ta sẽ tìm các property của các biến và gán cho những biến vừa tạo.
  • Tiếp theo chúng ta override phương thức OnInspectorGUI để hiển thị tất cả những biến và nút ở trên.

Bước 4: Test.

  • Các bạn bật Editor Unity lên, tạo 1 GameObject bất kì, sau đó kéo Script Settings vào.
  • Tiếp theo các bạn modify các giá trị, cũng như kéo 1 prefab boss vào.
  • Cuối cùng các bạn ấn vào button Display Value để xem log trên Console có đúng value các bạn vừa sửa không nhé.

Như vậy là chúng ta vừa tạo ra 1 setting có thể sửa trực tiếp trên inspector và nếu muốn các bạn có thể sửa nút Display Value thành Save Settings để lưu những thông số cài đặt đó xuống mà không phải play/run game mới có thể cập nhật được!

Chúc các bạn thành công nhé! ?

P/s: mình thường sử dụng phương pháp này để làm level cho game rất hiệu quả, chúng ta sẽ lưu file xuống dạng json hoặc đẩy trực tiếp lên server mà không cần dùng tool ngoài tạo level ?

Bình luận

Bài viết tương tự

- vừa được xem lúc

Hướng dẫn đưa nhân vật từ Mixamo vào demo.

. Chào các bạn. Bài này chúng ta chỉ tìm hiểu cách để lấy model, animation về, setting sao cho nó chạy được trong Unity để làm demo là ngon rồi nhé . Bước 1: Đăng nhập. Hãy tạo tài khoản nếu các bạn chưa có.

0 0 25

- vừa được xem lúc

Cơ bản về Rigidbody trong Unity3D

Phuong Le at 31-10-2019 - phuongne. Bài viết từ 2019 nên chỉ có giá trị tham khảo bạn nhé . . Rigidbody là gì.

0 0 18

- vừa được xem lúc

Một số folder đặc biệt trong Unity

Phuong Le 2019 - phuongne. Bài viết từ 2019 nên chỉ có giá trị tham khảo bạn nhé .

0 0 15

- vừa được xem lúc

Coroutine trong Unity là gì? Có liên quan tới Threads hay không?

Phuongne, Th11 17, 2019. Sơ qua một chút về Coroutine và StartCoroutine(.

0 0 11

- vừa được xem lúc

So sánh nhẹ Coroutine và Invoke

Phuongne - 31-10-2019. . Roài, đây sẽ là một bài viết ngắn nên mình đi vào chi tiết luôn, khởi mở đầu giới thiệu dài dòng nhá anh em. Coroutine với Invoke là gì.

0 0 17

- vừa được xem lúc

IEnumerator và IEnumerable

Phuongne, Th11 04, 2019. .

0 0 13