Giới thiệu sơ lược về sử dụng Script trong Unity

December 19, 2015
Categories:
Tags:

Chào mọi người,

Song song với việc tạo các video hướng dẫn làm game với Unity qua project/game cụ thể, mình sẽ tiếp tục viết các bài hướng dẫn chi tiết từ cơ bản nhất để giúp các bạn mới học làm game với Unity có thể theo dõi.

Trong bài hôm nay, chúng ta sẽ cùng tìm hiểu sơ lược về cách tạo script trong Unity.

Script là gì

Unity đã cung cấp sẵn cho chúng ta rất nhiều component như Physics 2D, Audio, Animation để làm game. Tuy nhiên để sử dụng, điều khiển, chỉnh sửa và kết hợp các component này một cách linh hoạt, Unity cung cấp thêm một component do người dùng tự tạo đó là script. Bạn có thể điều chỉnh bất cứ thuộc tính của component khác thông qua script. Có thể nói script như là 'não' người, nó có thể điều khiển các bộ phận còn lại.

Unity hỗ trợ 2 ngôn ngữ chính là C# và JavaScript. Thật ra ở phiên bản trước có hỗ trợ thêm ngôn ngữ Boo, nhưng có lẽ vì ít người sử dụng nên Unity đã loại bỏ ngôn ngữ Boo ở các phiên bản sau này. Mình sẽ viết thêm nhiều bài về cách lập trình C# trong Unity trong thời gian tới. Dĩ nhiên, nếu bạn đã tiếp cận với C# từ trước thì việc sử dụng nó trong Unity rất dễ dàng.

Cách tạo Script trong Unity

Trong Unity có thể tạo trực tiếp bằng cách click phải chuột trong tag project chọn Create -> C# Script ( hoặc Javascript ), sau đó kéo script mới tạo vào 1 GameObject

Tạo script trực tiếp trong Unity

Cách thứ 2 để tạo script là click vào GameObject , trong tag Inspector, kéo xuống cuối cùng, chọn Add Component -> New Script, sau đó đặt tên cho script và chọn ngôn ngữ C# hoặc Javascript là xong.

Chỉnh sửa script như thế nào?

Bạn double-click vào script, Unity sẽ tự động mở Visual Studio hoặc Monodeveloper tùy theo cài đặt của bạn, để thay đổi lựa chọn sử dụng VS hay Mono, bạn chọn Edit -> Preferences - > External Tools -> External Script Editor

Script trong Unity

Như bạn thấy, khi mở một script lên, bạn sẽ thấy nó được kế thừa class MonoBehaviour - một class được Unity xây dựng sẵn để hỗ trợ làm game.

Ngoài ra, bạn sẽ thấy có sẵn 2 hàm là Start() và Update(). Hàm Update sẽ là nơi chúng ta viết những dòng code cập nhật lại khung hình của GameObject bao gồm sự di chuyển, bắn đạn, nhận input từ bàn phím, vv nói chung là mọi thứ cần được xử lý trong thời gian game chạy. Để hàm Update hoạt động tốt, chúng ta thường cài đặt khởi tạo các biến, kết nối các component của GameObject trong hàm Start(). Nếu bạn có học qua hướng đối tượng, bạn sẽ hơi ngạc nhiên là tại sao không có constructor ( hàm khởi tạo mặc định cho đối tượng ), mà chỉ cần khai báo trong Start() là được? Bởi vì Unity đã làm sẵn cho chúng ta việc này rồi, nếu bạn cố tính tạo thêm constructor cho đối tượng thì có thể gây ra lỗi.

Ví dụ về hàm Start() và Update() trong Unity

Ở ví dụ trên, bạn thấy rằng ở hàm Start(), mình khởi tạo cho biến mybody lấy component khác là Rigidbody2D mà không dùng constructor. Tiếp theo, ở hàm Update(), mình cứ cho mỗi khung hình, đối tượng này sẽ chạy về phía bên trái 3 đơn vị trên trục tọa độ ( Mình sẽ viết bài giới thiệu về Rigidbody sau )

Bạn lưu ý rằng một script chỉ hoạt động được khi nó là một thành phần của một GameObject nào đó.

Ví dụn trong hình, script Testgame là 1 thành phần của GameObject là Player. Nếu bạn bỏ chọn dấu check kế bên menu Testgame trong tag Inspector thì khi chạy game, chương trình sẽ bỏ qua script này

Chúng ta cùng viết thử một dòng code và chạy thử nhé. Bên dưới là lệnh in chữ ra màn hình console trong Unity ( Nếu bạn không có tag Console thì click Window -> Console nhé )

In chữ ra màn hình console trong Unity

Khi bạn play game bạn sẽ thấy được dòng Welcome to Niviki.com trong tag Console.

Bài viết này nhằm mục đích giới thiệu sơ lược về script, cách tạo script trong Unity, hẹn gặp các lại các bạn ở những bài viết mới!

Author: Khoa Nguyen
https://niviki.com
Thất nghiệp. Đang rủ rê nhiều người thất nghiệp. Nhận làm ứng dụng MVP để nhiều người bỏ việc. Hy vọng với NIVIKI.COM có thể lan toả tinh thần thất nghiệp đến với nhiều người hơn nữa.