+1

Programming A Game With Unity: A Beginner’s Guide

Nguồn : http://www.makeuseof.com/tag/programming-game-unity-beginners-guide/

1. Introduction

Một trong số những tính năng đáng ngạc nhiên của Internet chính là sự nổi lên của video games. Với sự hình thành của các studio triệu đô với các game có hàng nghìn người chơi, một số bộ công cụ đã được phát triển mạng lại nguồn lực phát triển các game cho các cá nhân hay các studio nhỏ lẻ, các lập trình viên và designer. Các nhà phát triển game độc lập đã chứng minh sự nhanh nhẹn, khả năng chịu đựng rủi ro, trong nhiều trường hợp, cho phép họ đẩy mạnh việc đổi mới gameplay nhanh hơn so với các đối tác ngân sách lớn hơn. Ngoài ra, những năm gần đây đã có khá nhiều tựa game thành công ở mức độ "kinh khủng" ví dụ như Minecraft, Limbo, hay Super Meat Boy. Trong bối cảnh phát triển nhanh chóng của các nhà phát triển đọc lập, Unity đã nổi lên như một tiêu chuẩn : chi phí thấp, dễ sử dụng và tính năng thiết lập rộng làm cho nó rất thích hợp cho các trò chơi cần thời gian phát triển ngăn. Ngay cả các studio lớn như CCP cũng sử dụng nó để nhanh chóng tạo mẫu game concepts. Unity cung cấp một "game engine in a box" - một engine với ngôn ngữ script và thích ứng với hầu như bất kì thể loại trò chơi điện tử.

Unity không cung cấp một trình biên tập hình ảnh cho các thao tác môi trường game, vì bản chất nó cũng không phải là công cụ kiểu như "'zero programming game creator"'. Unity đòi hỏi khả năng lập trình để tạo ra keetsquar, ngoài ra còn cung cấp cho bạn một công cụ linh hoặt hơn và mạnh mẽ hơn so với bất kì chương trình sản xuất trò chơi nào có thể. Unity sẽ không làm việc cho bạn, nhưng nó phục vụ để giảm các rào cản đáng kể. Nếu bạn bắt đầu hoàn tới mới với C++ và OpenGL, sẽ có thể mất rất nhiều ngày để có thể làm được cái gì đó xuất hiện trên màn hình. Sử dụng Unity bạn chỉ cần khoảng 10 giây.

2. Versions of Unity

Unity có hai phiên bản cơ bản: phiên bản pro và các phiên bản miễn phí. Có một số sự khác nhau giữa 2 phiên bản, (bạn có thể xem chi tiết ở đây http://unity3d.com/get-unity) nhưng nói chung thì phiên bản pro hỗ trợ một số cải tiến về nhìn một lượng lớn tương đối những tính năng cực kỳ hữu ích cho nhiều trò chơi phức tạp. Điều đó cho thấy rằng, đối với hầu hết các trò chơi đơn giản mà ban muốn xây dựng, phiên bản miễn phí là hoàn toàn phú hợp.

2.1 Pricing

The free version of Unity is, of course, free. However, there are a few limitations: the free version of Unity cannot be licensed to any company with an annual income of more than $100,000. While such organizations are beyond the scope of this guide, if you suspect you might become such an organization, it’s probably wise to spring for the Pro version.

Phiên bản free của Unity thì tất nhiên là miễn phí. tuy nhiên, có một vài hạn chế. Các phiên bản miễn phí của Unity không thể được cấp phép cho bất kỳ công ty với thu nhập hàng năm hơn $100,000. Nếu bạn nghi ngờ bạn có thể trở thành một tổ chức như vậy, sẽ rất khôn ngoan để mua phiên bản Pro.

Các phiên bản Pro của Unity là $75 một tháng hoặc $1500 cho bản quyền mãi mãi. Ngoài ra bạn có thể dùng thử 30 ngày miễn phí. Nếu bạn là sinh viên bạn có thể sử dụng bản quyền sinh viên - 1 năm thông qua Studica với giá trị $129.

2.2 Features

Có rất nhiều tính năng vắng mặt trong phiên bản miễn phí của Unity. Tuy nhiên, sự khác biệt quan trọng nhất là như sau : phiên bản miễn phí của Unity thiếu một số tùy chọn cho phép dụng hình cho đẹp hơn, nhanh hơn, chạy game. Nó cũng không có hệ thống animation đầy đủ, và một số công cụ AI. Nói chung, đối với các dự án qui mô lơn phức tạp, hoặc các dự án hiêu suất đồ họa quan trong, phiên bản pro rất đáng giá. Tôi (người viết) sử dụng phiên bản Pro, vì tôi đang phát triển trò chơi thực tế ảo cho Oculus Rift, và sự hỗ trợ hậu xử lý màn hình không gian là rất cần thiết để tương tác một cách chính xác với âm thanh.

Bạn có thể kiểm tra một bản build alph của một trong những trò chơi VR của chúng tôi, BeatRunner. Nó sẽ cung cấp cho bạn một hình dung về những gì mà Unity có thể làm được.

3. Installing Unity

Unity rất đơn giản để cài đặt. Bạn có thể tải tập tin về, chạy và làm theo các hướng dẫn cài đặt. Khi hoàn tất, một của sổ có tiêu đề kích hoạt giấy phép Unity của bạn sẽ xuất hiện. Kiểm tra hộp đánh dấu "kích hoạt dùng thử 30 ngày miễn phí của Unity Pro 'và nhấp vào' OK "'.

Xin chúc mừng! Bạn đã có một phiên bản thử nghiệm 30 ngày của Unity Pro. Khi dùng thử hết hạn, nếu bạn không muốn mua phiên bản pro, bạn có thể chuyển sang các phiên bản miễn phí và giữ lại nội dung hiện có của bạn.

4. A Brief Introduction to the Object-Oriented Paradigm

Trước khi chúng ta bắt đầu với Unity, chúng ta hãy lướt qua những khái niệm cơ bản một chút. Unity hỗ trợ cả C # và Javascript cho lập trình trò chơi, trong bài hướng dẫn này chúng ta sẽ làm việc với C #. Trước hết, nếu bạn chưa bao giờ được lập trình trước thì hãy dẹp bài hướng dẫn này sang một bên và dành một vài ngày làm việc với Microsoft C # cho đến khi bạn cảm thấy thoải mái bằng cách sử dụng ngôn ngữ cho các nhiệm vụ đơn giản. Nếu bạn đã lập trình trước trong một ngôn ngữ hướng đối tượng bắt buộc như C hoặc Java, đọc lướt qua các hàm và làm quen với C # thông qua các ngôn ngữ khác mà bạn đã sử dụng trong quá khứ. Dù bằng cách nào, không tiến hành các hướng dẫn cho đến khi bạn cảm thấy thoải mái giải quyết vấn đề đơn giản với C # (ví dụ, nếu tôi hỏi bạn phải viết một chương trình in các trăm số nguyên tố đầu tiên, bạn sẽ có thể viết chương trình mà không cần tư vấn Google).

Các khái niệm quan trọng nhất để hiểu đây là mô hình hướng đối tượng (viết tắt là OOP). Trong định hướng đối tượng ngôn ngữ, chương trình được chia thành các đơn vị chức năng được gọi là các đối tượng. Mỗi đối tượng có các biến riêng của nó và chức năng. Chức năng đối tượng cụ thể được gọi là phương thức. Ý tưởng ở đây là mô đun: bởi có mỗi đối tượng bị cô lập, và buộc các đối tượng khác để tương tác với nó thông qua phương thức của nó, bạn có thể giảm số lượng tương tác. Bạn cũng có thể tạo các đối tượng bạn có thể tái sử dụng tại sẽ sau này không sửa đổi. Trong Unity, bạn sẽ được xây dựng các đối tượng và gắn chúng vào trò chơi đối tượng.

Đối tượng được khởi tạo từ các lớp: một lớp học chỉ là một tập tin mà đưa ra định nghĩa của đối tượng của bạn. Vì vậy, nếu bạn muốn có một đối tượng 'Mook' xử lý AI cho một kẻ thù trong trò chơi của bạn, bạn muốn viết một lớp 'Mook', và sau đó đính kèm tập tin đó đến mỗi thực thể của đối thủ. Khi bạn chạy trò chơi của bạn, mỗi kẻ thù sẽ được tạo thành với một bản sao của đối tượng 'Mook'.

Gắn một kịch bản mới cho một đối tượng trông như thế này:

alt

Đầu tiên, chọn đối tượng và đi đến inspector. Sau đó, nhấn vào nút 'Add Component ".

alt

Tới 'new script' nhập tên bạn muốn, và bấm vào 'create and add.'

alt

Bây giờ bạn có một kịch bản mới, bạn có thể chỉnh sửa bằng cách kích đúp vào nó!

5. Unity Basics

Trong phần này, chúng ta sẽ lướt qua các cơ chế cơ bản của Unity. Workflow trong Unity sẽ như thế này: tạo ra một thực thể để phục vụ một vai trò trong game (GameObjects trống có thể được sử dụng cho các nhiệm vụ logic trừu tượng). Sau đó, bạn có thể viết hoặc tìm một file lớp, và thêm nó vào các thực thể như một kịch bản (bằng cách sử dụng 'add component' nút trong 'inspector'. Sau đó chạy, kiểm tra, fix lỗi, lặp lại cho đến khi nó hoạt động và chuyển sang phần tiếp theo của trò chơi.

Unity được trang bị một vài tabs view cơ bản có thể được đáp ứng được khẩu vị của nhiều người sử dụng. 5 tabs lớn nhất là 'game', tab 'scene', tab 'inspector', tab 'project', và 'tab hierarchy’. Ở tab 'game', khi nhấn nút 'play' nó sẽ hiển thị một instance đang chạy của trò chơi mà người dùng có thể tương tác và thử nghiệm. Các tab 'scene' cung cấp một phiên bản tĩnh, có sửa đổi của gameworld. Các tab 'inspector' cho phép người dùng chỉnh sửa các thực thể trong thế giới trò chơi bằng cách chọn chúng trong tab 'editor'. Các tab 'project' cho phép người dùng duyệt qua các tập tin của dự án và kéo model, material, và các resource khác vào tab '‘editor' để đặt chúng trong gameworld. Cuối cùng, tab 'hierarch' cho thấy tất cả các đối tượng trong gameworld, cho phép bạn tìm các đối tượng ở xa trong cảnh, và các thực thể cha bằng cách kéo thả. Xem sơ đồ dưới đây cho các vị trí của những tab đã nói ở trên

alt

5.1 Các thực thể trong Unity

5.1.1 Meshes

Meshes (mắt lưới) là cách hình học 3D được thể hiện trong Unity. Người dùng có thể hoặc là sử dụng các đối tượng được built-in trong Unity (hình khối, hình cầu, hình trụ, vv), hoặc là nhập các mô hình 3D của riêng họ từ một gói phần mềm mô hình hóa như Blender hoặc Maya. Unity hỗ trợ một loạt các định dạng 3D, bao gồm Collada (.fbx), và .3 ds.

Các công cụ cơ bản để thao tác với các mắt lưới là scaling, rotation, và các nút translation ở góc trên bên trái của interface. Các nút này thêm các control icon vào các model trong editor view, cái mà có thể được sử dụng để thao tác chúng trong không gian. Để thay đổi kết cấu hay thuộc tính vật lý của một đối tượng, chọn chúng và sử dụng xem 'inspector' để phân tích các thành phần ‘material’ và 'rigidbody'.

5.1.2 Các element GUI

Sprites GUI và text có thể được hiển thị bằng cách sử dụng 'GUI Text' và GUI Textu GameObjects 'trong trình soạn thảo. Tuy nhiên, một cách mạnh mẽ và thực tế hơn để xử lý các yếu tố về giao diện người dùng là sử dụng các văn bản 3D và Quad GameObjects để đặt các yếu tố HUD vào gameworld như một thực thể. Trong phần ‘hierarchy', những yếu tố gameplay có thể được kéo vào camera chính.

5.1.3 Materials

Materials là sự kết hợp của các textures và shaders, và có thể được kéo trực tiếp vào đối tượng trò chơi từ các tab dự án. Một số lượng lớn các shaders có ở trong Unity Pro, và bạn có thể điều chỉnh textures gắn liền với chúng bằng cách sử dụng tab inspector đối với một đối tượng mà họ đang áp dụng.

Để import 1 texture, chỉ cần chuyển nó sang một jpg, png, bmp hay, và kéo nó vào thư mục 'assets' dưới thư mục dự án Unity. Sau một vài giây, một thanh loading bả sẽ xuất hiện trong trình soạn thảo. Khi nó kết thúc, bạn sẽ có thể tìm thấy ảnh như một texture dưới tab 'project'.

5.1.5 Lights

Lights là GameObjects tạo sáng cho gameworld. Nếu không có đèn chiếu sáng trong scene, tất cả các đa giác được vẽ ở cấp độ sáng như nhau, sẽ đem lại cho một thế giới với góc nhìn 'phẳng'.

Đèn có thể được positioned, rotated, và có một số đặc điểm mà bạn có thể tùy chỉnh. Các thanh trượt 'intensity' điều khiển độ sáng của ánh sáng, và các 'range' kiểm soát tốc độ fade out. Các guidelines trong giao diện scene cho thấy phạm vi tối đa của ánh sáng. Bạn cũng có thể điều chỉnh màu sắc của ánh sáng.

Ba loại chính của light là 'spot', 'point', và 'directional'. Spot lights sẽ có một vị trí trong không gian 3D và ánh sáng dự án chỉ theo một hướng trong một hình nón của góc. Việc này sẽ tốt cho flashlights, searchlights, và, nói chung, giúp bạn điều khiển chính xác hơn của ánh sáng. Spot lights cũng có thể đổ bóng. Point lights có một vị trí trong không gian 3D tạo ánh sáng đồng đều ở tất cả các hướng. Point lights không đổ bóng. Directional lights được sử dụng để mô phỏng ánh sáng mặt trời: nó chiếu ánh sáng theo một hướng như thể từ vô cùng xa. Đèn Directional ảnh hưởng đến mọi đối tượng trong cảnh, và có thể tạo bóng.

5.1.6 Hệ thống Particle

Hệ thống Particle này là thuật ngữ cho Unity GameObjects tạo ra và kiểm soát hàng trăm hoặc hàng ngàn Particle cùng một lúc. Các Particle là các các đối tượng 2D nhỏ được tối ưu hóa để hiển thị trong không gian 3D. Các hệ thống Particle sử dụng hiển thị đơn giản hóa và vật lý, nhưng có thể hiển thị hàng ngàn đơn vị trong thời gian thực mà không hề có vấn đề gì. Việc này làm cho chúng lý tưởng cho các hiệu ứng như khói, lửa, mưa, tia lửa, hiệu ứng ma thuật, và nhiều hơn nữa.

Hiện có rất nhiều thông số mà bạn có thể tinh chỉnh để đạt được các hiệu ứng mong muốn, và bạn có thể truy cập chúng bằng cách tạo một hệ thống Particle ở mục component editor, lựa chọn các hệ thống Particle, và sau đó mở tab 'inspector'. Bạn có thể thay đổi kích thước, tốc độ, hướng, xoay, màu sắc và kết cấu của mỗi Particle, và thiết lập hầu hết các thông số để thay đổi theo thời gian. Ở thuộc tính 'collision', nếu bạn kích hoạt nó và thiết lập không gian mô phỏng đến 'world', bạn sẽ có được các Particle sẽ va chạm với các đối tượng trong thế giới, ở đây bạn chú ý là có thể được sử dụng cho một số hiệu ứng thực tế, như là mưa, nước khi di chuyển, và tia lửa.

6. Ví dụ: Các yếu tố yếu tố của một game

Trong với hướng dẫn này, chúng ta sẽ làm cho một trò chơi đơn giản của Pong. Trong phần này, chúng tôi sẽ chỉ đi qua việc sắp xếp các yếu tố cốt lõi.

Trước tiên, hãy chia trò chơi của Pong thành các thành phần cơ bản của nó. Đầu tiên, chúng ta cần hai mái chèo, và một quả bóng. Bóng sẽ bay offscreen, vì vậy chúng ta sẽ cần một cơ chế để thiết lập lại nó. Chúng tôi cũng cần text để hiển thị số điểm hiện tại, và sẽ cần có một hiệu ứng Particle ưa thích khi bạn đánh bóng.

Vậy là chúng ta sẽ cần một đối tượng bóng, một spawner, hai đạo cụ đánh bóng với bộ phát sinh Particle kèm theo, một thực thể 3D-text, và một ánh sáng tại chỗ. Đối với hướng dẫn này, chúng tôi sẽ sử dụng các material mặc định. Dưới đây là hướng dẫn thiết lập như thế nào:

alt alt

Đầu tiên, tạo một cube prop cho đạo cụ đánh bóng .

alt

Scale nó lên một cách thích hợp, sao chép nó, và đặt một quả cầu giữa các vợt đánh bóng cho bóng.

alt

Sau đó, tạo ra một đối tượng 3DText và scle đặt nó vào vị trímột cách chính xác, thay đổi của kích thước thuộc tính ‘font size’.

alt

Tiếp theo, tạo ra hai hệ thống Particle, chọn những đặc điểm bạn muốn, và đính kèm chúng vào các vợt đánh bóng.

alt alt

Tiếp theo, bạn sẽ muốn chỉnh và xoay camera để nó lấy khung cảnh một cách chính xác.

alt

Trước khi kết thúc, chúng ta cần phải tạo ra hai cube bổ sung để cản bóng, để ngăn chặn bóng từ nảy ra khỏi khu vực trò chơi. Chúng ta có thể làm cho chúng vô hình bằng cách bỏ chọn 'mesh renderer' trong tab inspector.

alt

alt

Nếu bạn nhấn Play, bây giờ bạn có thể thấy các yếu tố cơ bản của trò chơi của đang được đặt ra. Nó sẽ không làm bất cứ điều gì, nhưng chúng ta sẽ chỉnh sửa tiếp !

alt

Bây giờ chúng ta đã có thiết lập này, tiếp tục tôi sẽ nói tiếp về những gì liên quan đến kịch bản các yếu tố để làm cho một trò chơi.

7. Scripting trong Unity

Một khi bạn có một kịch bản gắn liền với một đối tượng, bạn có thể sửa lại nó bằng cách nhấp đúp vào nó trong "inspector". Nó sẽ mở MonoDevelop, môi trường phát triển mặc định cho Unity. Về bản chất, MonoDevelop là một trình soạn thảo văn bản với các tính năng đặc biệt tối ưu đối với lập trình. Keywords và comments ​​được nổi bật trong các giá trị màu xanh và màu xanh lá cây, và số và chuỗi xuất hiện trong màu đỏ. Nếu bạn đã sử dụng Eclipse hay IDE khác, MonoDevelop là sẽ khá giống. Bạn có thể "xây dựng" kịch bản của bạn từ bên trong trình soạn thảo, để kiểm tra lỗi cú pháp :

alt

Nói chung, để có được kịch bản của bạn để tương tác với Unity, bạn sẽ cần phải tham khảo các yếu tố mà các đối tượng cầm kịch bản sở hữu. Sau đó bạn có thể gọi phương thức, hoặc các biến cho từng yếu tố để tạo nên các thay đổi mà bạn muốn. Nếu bạn muốn có một kịch bản về một đối tượng để ảnh hưởng đến các thuộc tính của một đối tượng khác, bạn có thể tạo một biến GameObject trong kịch bản của bạn, và sử dụng inspector để gán nó vào một đối tượng khác trong bối cảnh đó.

Danh sách các yếu tố một đối tượng có thể có như sau

  • Biến đổi
  • Cube (Mesh Filter)
  • Box Collider
  • Lưới Renderer

Mỗi phần của đối tượng có thể bị ảnh hưởng từ bên trong một kịch bản.

7.1 Transform

Chức năng Transform cho một GameObject trong Unity kiểm soát các thông số vật lý của đối tượng đó: scale, vị trí và hướng của nó. Bạn có thể truy cập chúng từ bên trong một kịch bản như thế này:

  transform.position = newPositionVector3;
  transform.rotation = newRotationQuaternion;
  transform.localScale = newScaleVector3;

7.2 Renderer

Chức năng renderer trong Unity cho phép bạn kiểm soát cách các bề mặt của đạo cụ được hiển thị trên màn hình. Bạn có thể gán lại texture, thay đổi màu sắc, và thay đổi các shader và khả năng hiển thị của đối tượng. Cú pháp như sau:

  renderer.enabled = false;
  renderer.material.color = new Color(0, 255, 0);
  renderer.material.mainTexture = myTexture;
  renderer.material.shader = newShader;

7.3 Physics

Unity đi kèm với một engine vật lý tích hợp cho phép bạn chỉ định các tính chất vật lý của các đối tượng và handle các chi tiết của mô phỏng cho bạn.

  rigidbody.angularDrag = 0.1f;
  rigidbody.mass = 100;
  rigidbody.isKinematic = false;
  rigidbody.useGravity = true;
  rigidbody.AddForce(transform.forward * 100);

7.4 Collision

Thông thường, khi xây dựng một trò chơi, bạn muốn một vụ va chạm dẫn đến một số thay đổi trạng thái trong luật chơi của bạn mà không phải chỉ để mô phỏng vật lý. Đối với điều này, bạn sẽ cần một phương pháp phát hiện va chạm.

Có một số lượng nhất định các công việc chuẩn bị cần thiết để phát hiện va chạm trong Unity. Đầu tiên, ít nhất một trong các đối tượng trong các vụ va chạm cần một rigidbody gắn liền với nó. Cả hai đối tượng phải có va chạm chính xác, thiết lập non-triggers. Tổng tốc độ của cả hai đối tượng phải đủ thấp để nó thực sự va chạm thay vì chỉ đơn giản là lướt qua nhau.

Nếu bạn đã có tất cả những gì đã đề cập ở trên, bạn có thể kiểm tra va chạm bằng cách đặt một phương thức phát hiện va chạm đặc biệt trong một kịch bản gắn liền với đối tượng mà bạn muốn kiểm tra va chạm. Phương pháp này sẽ trông như thế này:

  void OnCollisionEnter(Collision other){
      //do things here
  }

7.5 Time Correction

Một yếu tố quan trọng cần phải nhớ khi bạn đang thao tác đối tượng có liên quan tới framerate. Dù cho bạn cố gắng cẩn thận để tối ưu hóa, tốc độ khung hình sẽ luôn luôn thay đổi, framerate sẽ luôn biến đổi, và bạn sẽ không muốn tốc độ game của bạn thay đổi theo nó. Nếu ai đó chạy game của bạn trên một máy tính nhanh hơn bạn máy tính phát triển nó, bạn rõ ràng sẽ không muốn các trò chơi được chạy ở tốc độ gấp đôi.

Bạn nên sửa cho điều này bằng cách nhân giá trị mà bạn đang sử dụng bởi thời gian đã mất để render khung hình cuối cùng. Điều này được thực hiện bằng cách sử dụng 'Time.deltaTime. Điều này có hiệu quả làm thay đổi tốc độ của bất kỳ biến bạn đang tăng mỗi khung từ ‘change per frame’ thành 'change per second’, và có lẽ bạn nên thực hiện thay đổi này cho bất kỳ giá trị mà bạn đang tăng hoặc giảm mỗi khung hình.

7.6 Audio Sources and Listeners

Bây giờ chúng ta đã làm thế nào để tạo, render, và các đối tượng điều khiển, chúng ta hãy nói về những cảm giác khác mà các trò chơi máy tính có thể phục vụ: cụ thể là, âm thanh. Unity hỗ trợ hai loại âm thanh: âm thanh 2D và 3D.

Để chạy được âm thanh, bạn sẽ cần phải đính kèm một 'audiosource' đến 1 prop. Bạn có thể sử dụng myAudioSource.Pause () và myAudioSource.Play () để kiểm soát các tập tin âm thanh.

7.7 Input

Không nhiều trò chơi mà không có bất kỳ thông tin đầu vào từ người sử dụng. Có rất nhiều loại khác nhau của đầu vào, bạn có thể đọc, và gần như tất cả trong số đó có thể truy cập thông qua các đối tượng Input và KeyCode.

    Vector3 mousePos = Input.mousePosition;
    bool isLeftClicking = Input.GetMouseButton(0);
    bool isPressingSpace = Input.GetKey(KeyCode.Space);

7.8 Debugging a Script

Nếu có lỗi cú pháp hoàn toàn với C #, các trò chơi sẽ thường từ chối để chạy khi bạn nhấn play, và một số thông báo lỗi khá hữu ích được cung cấp nếu bạn xây dựng kịch bản từ bên trong trình soạn thảo. Xem bên dưới:

8. Xây dựng game của bạn / Biên dịch để một ứng dụng độc lập

Khi bạn đã xây dựng một cái gì đó bạn cảm thấy nó đã hoàn thành rồi, đó là thời gian để di chuyển trò chơi của bạn từ trình soạn thảo và biến nó thành một cái gì đó mà bạn có thể đăng bài trên mạng Internet. Để làm điều đó, bạn sẽ cần phải xây dựng một ứng dụng độc lập. Các tin tốt là trong Unity, điều này là rất, rất dễ dàng.

alt


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí