CHU KỲ SỐNG CỦA THÀNH PHẦN SCRIPT GẮN TRÊN ĐỐI TƢỢNG GAME

Một phần của tài liệu nghiên cứu về unity3d game engine và thiết kế trõ chơi thể loại moba (Trang 53 - 58)

V. TỔNG Q UN IẾN TRÖC GAME ENGINE UNITY

2. CHU KỲ SỐNG CỦA THÀNH PHẦN SCRIPT GẮN TRÊN ĐỐI TƢỢNG GAME

SVTH:

Nguyễn Đức Trung 1101707

Trần Minh Trung 1101708 31

SVTH:

Nguyễn Đức Trung 1101707

Trần Minh Trung 1101708 32

Trong script Unity, có một số chức năng sự kiện đƣợc thực hiện theo một thứ tự xác định trƣớc nhƣ một script thực thi. Tùy theo trạng thái của scene mà sự kiện tƣơng ứng sẽ đƣợc gọi:

 Chƣơng trình biên soạn (Editor)

Reset(): hàm này đƣợc gọi để khởi tạo các thuộc tính của script khi nó

lần đầu đƣợc gắn vào đối tƣợng.

 Khi Scene đầu đƣợc tải (First Scene Load), các chức năng này đƣợc gọi sau khi một scene bắt đầu (một lần cho mỗi đối tƣợng trong scene):

Awake(): hàm này luôn đƣợc gọi trƣớc bất kỳ hàm Start() và cũng chỉ sau một prefab đƣợc khởi tạo.

OnEnable(): (chỉ đƣợc gọi nếu các đối tƣợng đang hoạt động) Chức năng

này đƣợc gọi chỉ sau khi đối tƣợng đƣợc kích hoạt. Điều này xảy ra trong trƣờng hợp MonoBehaviour đƣợc tạo, chẳng hạn nhƣ khi một mức độ đƣợc nạp hoặc một GameObject với các thành phần script đƣợc khởi tạo.

 Trƣớc khi cập nhật khung hình đầu tiên(Before the first frame update)

Start() : hàm đƣợc gọi trƣớc khi cập nhật khung hình (frame) đầu tiên

nếu script đƣợc kích hoạt. Cho đối tƣợng đƣợc thêm vào scene, hàm Start() sẽ đƣợc gọi trên tất cả script trƣớc khi đƣợc cập nhật.

 Ở giữa khung hình (In between frame)

OnApplicationPause(): hàm này đƣợc gọi ở cuối khung hình nơi tạm dừng đƣợc phát hiện, có hiệu quả giữa các bản cập nhật khung bình thƣờng. Một khung phụ sẽ đƣợc phát hành sau sự kiện OnApplicationPause đƣợc gọi để cho phép game hiển thị đồ họa cho thấy trạng thái tạm dừng.

 Thứ tự cập nhật

FixedUpdate(): đƣợc gọi thƣờng xuyên hơn Update(). Nó có thể đƣợc gọi nhiều lần mỗi khung hình, nếu tỉ lệ khung hình thấp và nó có thể không đƣợc gọi giữa khung hình nếu tỉ lệ khung hình cao.Tất cả những tính toán vật lý và cập nhật xảy ra ngay lập tức sau FixedUpdate. FixedUpdate đƣợc gọi trên một bộ đếm đáng tinh cậy và không phụ thuộc vào tỉ lệ khung hình.

SVTH:

Nguyễn Đức Trung 1101707

Trần Minh Trung 1101708 33

LastUpdate(): đƣợc gọi một lần cho mỗi khung hình, sau khi Update() kết thúc. Bất kỳ những tính toán đƣợc thực hiện trong Update() sẽ đƣợc hoàn thành khi LastUpdate() bắt đầu. Một sử dụng phổ biến cho

LastUpdate() là cho camera góc nhìn thứ ba.

 Kết xuất hình ảnh (Rendering)

OnPreCull() : đƣợc gọi trƣớc khi camera chọn cảnh. Việc lựa chọn quyết

định đối tƣợng có thể nhìn thấy trong camera.

OnBecameVisible()/OnBecameInvisible(): đƣợc gọi khi một đối tƣợng

trở nên hiển thi/ ẩn đối với bất kỳ camera nào.

OnWillRenderObject(): đƣợc gọi một lần cho mỗi camera nếu đối

tƣợng có thể nhìn thấy.

OnPreRender(): đƣợc gọi trƣớc khi camera bắt đầu vẽ các scene.

OnRenderObject(): đƣợc gọi sau khi tất cả kết xuất hình ảnh scene đƣợc

thực hiện.

OnPostRender(): đƣợc gọi sau khi một camera kết thúc kết xuất hình ảnh scene.

OnRenderImage(): đƣợc gọi sau khi kết xuất scene đƣợc hoàn thành cho

phép chỉnh sửa hình ảnh scene.

OnGUI(): đƣợc gọi nhiều lần mỗi khung hình để đáp ứng với sự kiện GUI. Những sự kiện giao diện (Layout) và tô màu lại (repaint) đƣợc xử lý đầu tiên, theo sau là một sự kiện giao diện và sự kiện bàn phím / chuột cho mỗi sự kiện đầu vào.

OnDrawGizmos(): đƣợc sử dụng để vẽ Gizmos trong khung nhìn scene

cho các mục đích trực quan.

 Coroutines: là những thành phần chƣơng trình máy tính khái quát chƣơng trình con cho đa nhiệm, bằng cách cho phép nhiều điểm kiểm soát đình chỉ và hồi phục việc thực thi tại các điểm nhất định. Coroutines phù hợp cho việc cài đặt nhiều thành phần chƣơng trình giống nhau nhƣ nhiệm vụ hợp tác (cooperative tasks), ngoại lệ (exceptions), vòng lập sự kiện (event loop) , vòng lặp (iterators) , danh sách vô hạng (infinite lists) và ống dẫn (pipes).

Yield(): coroutine sẽ tiếp tục sau khi tất cả hàm Update() đƣợc gọi trong

SVTH:

Nguyễn Đức Trung 1101707

Trần Minh Trung 1101708 34

Yield WaitForSeconds(): coroutine tiếp tục sau một khoảng thời gian chờ, sau khi tất cả hàm Update() đƣợc gọi cho khung hình.

Yield WaitForFixedUpdate(): coroutine tiếp tục sau khi tất cả hàm

FixedUpdate() đƣợc gọi trên tất cả các script

Yield WWW(): coroutine tiếp tục sau khi tải về WWW đã hoàn thành.

Yield StartCoroutine(): nối kết các coroutine và chờ đợi cho coroutine hoàn thành lần đầu tiên.

 Khi đối tƣợng bị hủy (When the Object is Destroyed)

OnDestroy(): hàm đƣợc gọi sau khi cập nhật tất cả khung hình cho đến

khung hình cuối thể hiện sự tồn tại của đối tƣợng(đối tƣợng có thể bị phá hủy để đáp ứng với sự kiện Object.Destroy hoặc khi đóng một scene).

 Khi thoát ứng dụng (When Quitting)

OnApplicationQuit(): chức năng đƣợc gọi trên tất cả đối tƣợng game trƣớc khi ứng dụng đƣợc hủy. Trong trình soạn thảo, chức năng đƣợc gọi khi ngƣời dùng dừng chế độ playmode. Trong phần chơi web, chức năng đƣợc gọi khi khung nhìn web đƣợc đóng.

OnDisable(): chức năng đƣợc gọi khi hành vi trở nên vô hiệu hóa hoặc

không hoạt động.

SVTH:

Nguyễn Đức Trung 1101707

Trần Minh Trung 1101708 35

CHƢƠNG III: NGHIÊN CỨU THỂ LOẠI GAME MOBA

Một phần của tài liệu nghiên cứu về unity3d game engine và thiết kế trõ chơi thể loại moba (Trang 53 - 58)

Tải bản đầy đủ (PDF)

(183 trang)