Buổi 1

Màu nền
Font chữ
Font size
Chiều cao dòng

Bài 1: Cơ sở lý thuyết của Unity

1. Tổng quan về unity

a. Unity là gì?

- Unity là một game Engine ( công cụ hỗ trợ lập trình Game). Unity cho phép chúng ta lập trình ra các game chạy được trên nhiều nền tảng khác nhay: Winphone, iOS Android, ...è trong số các gamee Engine thì Unity hỗ trợ nhiều nền tảng. Unreal là 1 game Engine có nhiều hiệu ứng đẹp hơn hẳn Unity nhưng không hỗ trợ nhiều bằng. Cụ thể hơn, Unreal không hỗ trọ Window phone.

- Unity có 2 loại phiên bản. Bản Pro phải trả tiền lên đến 1500$. Nhưng hiện nay bản Free cũng hỗ trợ nhiều tính năng có bản nhất. các tính năng liên quan đến phân tích hiệu năng của game không có ( hoặc không hỗ trợ nhiều) trên bản Free.

- Cộng đồng sử dụng Unity cũng rộng khắp. Nhiều hơn hẳn so với cộng đồng khác như MonoGame (mặc dù Unity cũng sử dụng các mã nguồn mở của MonoGame).

- Unity cho ra 1 bản game có dung lượng nặng hơn hẳn so với Cocos2Dx nhưng các hiệu ứng và các hỗ trợ do Unity tạo ra là nhiều hơn hẳn so với Cocoss2Dx. Nếu làm game bằng Unity thì thời gian hoàn thành là nhanh hơn so với Cocos(Unity viết bằng C# còn Cocos dung C/C++).

- Làm App thì không nên sử dụng các công cụ đa nền tảng(3 Năm tới). (Vì app phải khai thác nhiều đến các tính năng (API) của hệ điều hành, mà tính năng này có thể kahcs nhau ở 3 hệ( iOS android và wp). Nhưng làm game, cần sử dụng công cụ đa nền tảng, do cần khai thác các va chạm vật lý, các hiệu ứng đồ họa, mà những điều này cần các API không có sẵn trong hệ điều hành.

- Với các lập trình viên đơn lẻ, chỉ nên làm game 2D. Game 3D cần có các công ty lớn, đủ sức phát triển è Môn này chỉ học Unity 2D

b) Lịch sử phát triển

- Unity ra đời năm 2001, 2008 hỗ trợ iPhone, 2010 hỗ trợ Android và 2012 hỗ trợ Windows Phone. Unity đã có trên 250.000 người sử dụng.

- Được Microsoft khuyến khích sử dụng trong phát triển game.

- Unity có hỗ trợ Unity Assert Server: các cập nhật đồ họa, âm thanh, mã nguồn của một máy gốc, sẽ được tải về cho các máy khác cùng dự ánè thích hợp làm team work. Phải trả phí vì vậy chúng ta tạm dung Dropbox.


2) Các khái niệm cơ bản của Unity:

a)Asset:

- Là kho chứa tài nguyên ( đồ họa, âm thanh, mã nguồn, scene, Animation, Plugin)

- Chính là thư mục Project Explorer

- Ta có thể thêm mới các đồ họa, âm thanh, mã nguồn, Scene, animation, Prefab trong Assets này.

b) Scene

- Là một thư mục con trong Assets. Là bản mô tả màn hình game, trong đó có chứa đầy đủ các đối tượng đồ họa, các điều khiển có trong game.

- Một project Unity có thể có nhiều màn hình Scene. Và một màn hình của game có thể chuyển đổi qua lại nhiều Scene.

- Trong Unity không có khái niệm màn hay stage hay level của game.

- Unity chỉ hiểu rằng khi chương trình hoạt động có thể chuyển đổi qua lại nhiều scene khác nhau.

- Chúng ta có thể vào File, chọn New Scene hoặc chọn Save Scene as... để tạo mới một Scene.

- Nếu tạo ra một scene để chương trình hiển thị Scene này khai hoạt động, chúng ta cần vào: File-> Build Settings.. để cấu hình việc hiển thị Scene.

- Trong màn hình Build Settings, ta có thấy cửa sổ Scene in Build. Dọc bên trái là các tích chọn, Scene nào có tích chọn thì Scene đó sẽ được hiển thị trên màn hình. Vẫn tồn tại Scene không hiển thị trên màn hình.

- Hàng dọc tiếp theo là tên các Scene. Hàng cuối cùng là độ ưu tiên của các Scene khi hiển thị, ta có thể thay đổi độ ưu tiên này. Scene nào có giá trị của độ ưu tiên thấp nhất thì nó sẽ hiển thị đầu tiên

- Nếu trong các Scene được tích chọn không có Scene nào là "help" thì câu lệnh LoadLevel không thực hiện NHƯNG chương trình không thoátè

3)Game Object

- Khi một đối tượng được gắn vào trong Scene, ta có thể coi nó là một Game Object

- Danh sách các game Object của Scene nằm trong của sổ Hierarchy. Khi nhấp chuột vào một đối tượng Game Object, ta sẽ thấy cửa sổ Inspector bên cạnh, cho biết các đặc tính của Game Object là tên, ta có thể đổi tên của Game Object.

- Có một tích chọn cho phép ta quy định đối tượng có thể ẩn đi, Tất nhiên một đối tượng game bị ẩn thì vẫn có thể thiết lập cho nó hiện lên bằng câu lệnh(và ngược lại).

- Với mỗi đối tượng, ta quy định được thuộc tính Tag và Layer của nó. Danh sách các Tag và Layer có thể thêm vào được).

- Các tag có ý nghĩa gì? Một game object chỉ thuộc một Tag, ta có thể truy tìm đối tượng đó thông qua Tag

- Giả sử trong Scene, ta muốn tất cả các đối tượng có Tag "Enemy" phải hiện ra trong 3 giây è cần tìm tất cả các đối tượng có tag là "Enemy"

var x= GameObject.FindGameObjectsWithTag("Enemy");

có thể tìm một hoặc nhiều Object bằng Tag.

FindGameObjectWithTag

Layer của một đối tượng sẽ giúp ta thiết lập các tùy chọn với các đối tượng thuộc layer đó

Chẳng hạn ta muốn các đối tượng của Layer "Item" (Vật phẩm) không được va chạm với các đối tượng của Layer "Runnable".

Các đối tượng game có nhiều thao tác phức tạp(đứng, nằm, cuộn, mình,...)ơ][

- //mảng lưu trữ các BoxCollider2D của đối tượng

- private BoxCollider2D[] boxes;

- //lấy toàn bộ các BoxCollider2D lưu trữ vào mảng

boxes=gameObjects.GetComponents<BoxCollider2D>();

- //Câu lệnh sau căn cứ vào trạng thái đối tượng mà tắt bớt đi các BoxCollider2D

if(shootDirection== "Lie")

{

boxes[0].enable=true;

boxes[0].enable=false;

}

-         

Bài 1 : cơ sở lý thuyết của Unity

1. Tổng quan về unity

a. unity là gì?

- Unity là 1 game engine. Unity cho phép chúng ta lập trình ra các game chạy được trên nhiều nền tảng khác nhau: Windows, Android, ios, web, html5, xbox, playstation, ... à trong số các game engine thì unity hỗ trợ nhiều nền tảng nhất. Unreal là 1 game engine có nhiều hiệu ứng đẹp hơn hẳn unity nhưng ko hỗ trợ nhiều bằng. Unreal ko hỗ trợ windows phone.

- Có 2 bản: pro ( 1500$), và free. Các tính năng liên quan đến phân tích hiệu năng của game không có/ không hỗ trợ nhiều trên bản Free.

- Cộng đồng sử dụng unity rộng rãi.

- Cho ra bản game có dung lượng cao hơn hẳn so với Cocos2DX nhưng các hiệu ứng và hỗ trợ do Unity tạo ra là nhiều hơn Cocos2DX. Nếu làm game = unity thì thời gian hoàn thành là nhanh hơn so với Cocos(dùng C/C++).

- Làm app không nên sử dụng các công cụ đa nền tảng ( 3 năm tới). Vì app phải sử dụng nhiều đến các tính năng của hệ điều hành, mà các tính năng này có thể khác nhau ở 3 hệ điều hành. Nhưng làm game cần sử dụng công cụ đa nền tảng do cần khai thác các va chạm vật lý, các hiệu ứng đồ họa , mà những điều này cần có các API không có sẵn trong hệ điều hành.

- Với các lập trình viên đơn lẻ, chỉ nên làm game 2D. game 3D cần có các công ty lớn, đủ sức phát triển.

b. Lịch sử phát triển:

- Ra đời 2001, 2008 hỗ trợ ios, 2010 hỗ trợ android, 2012 hỗ trợ windows phone.

- Được microsoft khuyến khích sử dụng trong phát triển game.

- Unity hỗ trợ asset server: cập nhật các đồ họa, am thanh , mã nguồn của máy gốc, sẽ được tải về cho các máy khác cùng dự án à thích hợp làm team work. Phải trả phí. Vì vậy chúng ta tạm dùng dropbox.

2. Các khái niệm cơ bản của Unity:

a. Asset

- Là kho chứa các tài nguyên, chính là thư mục Project Explorer


Bạn đang đọc truyện trên: Truyen2U.Pro