11/08/2018, 22:18

Unity 2D Endless Runner Demo

Bài viết này sẽ đưa ra hướng dẫn sơ lược để làm 1 game 2d thể loại endless runner đơn giản, tất nhiên con đường đi đến 1 sp chất lượng còn rất dài, nhưng cũng cung cấp cho người đọc cái nhìn khái quát về thể loại game này . Những kiến thức cần thiết sẽ được tham chiếu qua links tham khảo. Demo có ...

Bài viết này sẽ đưa ra hướng dẫn sơ lược để làm 1 game 2d thể loại endless runner đơn giản, tất nhiên con đường đi đến 1 sp chất lượng còn rất dài, nhưng cũng cung cấp cho người đọc cái nhìn khái quát về thể loại game này . Những kiến thức cần thiết sẽ được tham chiếu qua links tham khảo. Demo có sử dụng 1 số plugin và scripts có sẵn, người viết sẽ chỉ cung cấp những kiến thức cơ bản nhất về EasyTouch để xử lý touch input trong Game, những scripts còn lại người đọc có thể tham khảo source code để tìm hiểu thêm. Trước hết bạn download project source ở đây

https://drive.google.com/file/d/0B5ZgM3GuNcA1NndZN3lLUllELUk/edit?usp=sharing

Toàn bộ assets cần thiết đều nằm trong thư mục UnityChan2D Trước hết bạn tạo 1 scene hoàn toàn mới để thực hiện.

Player: Tạo Player bằng cách sử dụng sprites unitychan trong thư mục UnityChan2D với sprite là UnityChan_footwork_1 đăt tên cho player là Player chẳng hạn. Bạn tạo 3 animation cần thiết cho nhân vật là run, jump_up và jump_down Cách tạo animation sprite có thể tham khảo ở đây https://www.youtube.com/watch?v=VG7uZAwZW2o Trong thư mục UnityChan2D đã tạo sẵn các animation này là move, jump_up và jump_down Tiếp theo tạo chuyển động cho nhân vật chúng ta cần add các thành phần animator, rigidbody và boxcollider2D và các script liên quan như sau:

inspector

Ground: Bạn tạo ground bằng cách sử dụng sprite BG_02 trong thư mục UnityChan2D như sau:

bg_inspector

Sau đó đặt vào scene như sau:

scene

Camera: Với Camera chúng ta tạo 3 scripts liên quan là : CameraController để follow target, EnemyCreation để tạo enemy và GUIManager để tạo GUI các scripts này cũng đã được tạo sẵn , đối tượng camera sẽ như sau:

camera_inspector

Chúng ta cần đối tương ground sẽ được tạo ra khi camera follow người chơi, mình sẽ không đi sâu vào vấn đề này nên chúng ta để ground là child của camera, nó sẽ follow theo khi camera di chuyển.

Enemy: tạm thời sử dụng prefabs enemy0 trong thư mục Stdi

Input: Chúng ta sử dụng Plugin EasyTouch để xử lí: Vào Tools->EasyTouch->Add EasyTouch for C# Về cơ bản, EasyTouch sẽ fire các event khi người dùng tương tác với màn hình, trong trường hợp này là OnSimpleTap cho sự kiện tap vào màn hình. Chúng ta cần viết 1 script để linstener sự kiện này, nó sẽ như sau: EasyTouch.On_SimpleTap += HandleOn_SimpleTap với HandleOn_SimpleTap là method để xử lí sự kiện

Các bạn có thể tham khảo scene mình đã tạo sẵn trong thư mục Assets/stdi/scenes để hoàn thành các công việc còn lại. Play Game trên editor để chơi thử, khi nhấn chuột trái EasyTouch sẽ giả lập sự kiện tap trên smartphone để nhân vật nhảy lên.

0