Unity3D, bạn viết bao nhiêu mã? [đóng cửa]


16

Tôi tò mò muốn biết quy trình làm việc khi tạo trò chơi trong Unity3D?

Nó có tạo ra rất nhiều mã cho bạn không?

Hiểu biết của tôi là bạn mô tả trò chơi trong Unity và viết kịch bản ở mặt sau để làm logic. Kiểu như bạn sử dụng Unity để mô tả những con rối và bạn sử dụng ngôn ngữ kịch bản là bậc thầy bù nhìn.



2
Bạn có thể muốn đăng câu hỏi này tại UnityAnswers . Bạn sẽ nhận được phản hồi tốt hơn nhiều vì nó tập trung vào sự đoàn kết hơn
Joe the Person

Câu trả lời:


18

Unity3D bao gồm một công cụ trò chơi cộng với trình chỉnh sửa 3D (khá thô sơ). Nó cung cấp các mắt lưới, kết cấu, đổ bóng, địa hình, máy ảnh, hình động, hệ thống hạt, mẫu âm thanh và các loại đối tượng khác hữu ích trong các trò chơi video. Nó bao gồm PHYSX (một công cụ vật lý độc quyền thuộc sở hữu của Nvidia) và Mono (triển khai mã nguồn mở của Common Language Runtime, hay còn gọi là .NET).

Bao nhiêu điều này bạn sử dụng là tùy thuộc vào bạn. Bạn có thể biểu diễn tất cả các cấu trúc dữ liệu của mình dưới dạng các đối tượng Unity, xây dựng thế giới của bạn trong trình soạn thảo của Unity, bật vật lý và để các sự kiện diễn ra theo cách của chúng, với mức tối thiểu là kịch bản. Ngoài ra, bạn có thể tắt công cụ vật lý, xây dựng thế giới của bạn bằng thuật toán và lập trình rõ ràng tất cả hành vi và vật lý của các đối tượng.

Bạn có thể chọn lập trình hành vi hoàn toàn bằng Mono (sử dụng một trong các ngôn ngữ C #, JavaScript hoặc Boo) hoặc bạn có thể viết nó bằng ngôn ngữ khác và liên kết nó với dự án Unity của bạn. (Việc tích hợp thực tế với các đối tượng trò chơi phải thông qua Mono, nhưng đây có thể là một lớp khá mỏng nếu bạn muốn.)

Quy trình làm việc cũng giống như với bất kỳ công cụ trò chơi nào. Các nghệ sĩ tạo ra các mô hình và kết cấu và hình ảnh động, các chuyên gia âm thanh tạo ra âm thanh, lập trình viên viết shader và hành vi.

Cộng đồng lập trình viên Unity là rất hữu ích, cả ở answers.unity3d.comforum.unity3d.com . (Và có lẽ ở đây tại Stack Exchange?)

Cách tốt nhất để tìm hiểu là dùng thử : phiên bản cơ bản là miễn phí và bạn có thời gian dùng thử 30 ngày cho phiên bản "Pro".


6

Unity3D là một công cụ bao bọc / thư viện hơn là một công cụ trò chơi 'kéo và thả'. Nó không tạo mã và cũng không đi kèm với các tập lệnh 'ngoài luồng'.

Ví dụ, Unreal có máy ảnh người thứ nhất mặc định, bộ điều khiển nhân vật, phát hiện va chạm và AI.

Bạn không có cái nào trong Unity3D. Những gì bạn nhận được từ Unity3D là một vòng lặp trò chơi, hệ thống thực thể dựa trên thành phần, thư viện toán học toàn diện, có nghĩa là tải phương tiện, xử lý các mắt lưới, máy ảnh, GUI chế độ tức thời, đổ bóng, kết xuất đường ống và chức năng cấp thấp khác. Cộng với một biên tập viên tốt đẹp. Bạn chỉ cần lo lắng về chức năng cấp cao. Ví dụ: bạn vẫn phải mã hóa máy ảnh người đầu tiên của riêng bạn (nếu bạn không sử dụng máy ảnh mặc định). Tuy nhiên, bạn không cần phải đối phó với việc tính toán các vectơ nhìn và như vậy.

Unity3D không tạo ra bất kỳ mã nào cho trò chơi của bạn, hoàn toàn (Nó tạo mã để chạy trò chơi của bạn, chính xác hơn, nhưng không có mã nào cho trò chơi của bạn)

Bạn sẽ phải sử dụng API để xác định trò chơi của mình. Bạn có thể xem các ví dụ đi kèm với Unity3D và sử dụng lại các mã đó; có một vài tập lệnh được xác định trước, nhưng thông thường bạn phải tùy chỉnh chúng để đáp ứng nhu cầu của bạn.

Bạn tạo trò chơi thông qua kịch bản; bạn viết các kịch bản cho các hành vi, thiết kế cấp độ trong Unity3D và gán các hành vi đó cho các thực thể (hoặc các đối tượng trò chơi). Nó rất linh hoạt, nhưng nó vẫn đòi hỏi nỗ lực để viết một trò chơi. Tôi sẽ so sánh nó với Flash cho 3D.


1
Tuyên bố này không chính xác: "Unreal có máy ảnh người thứ nhất mặc định, bộ điều khiển nhân vật, phát hiện va chạm và AI. Bạn không có cái nào trong Unity3D"
jcurrie33

8
Trên thực tế, Unity bao gồm các thành phần cho tất cả các chức năng này được tích hợp và nhiều hơn nữa dưới dạng các plugin có thể tải xuống. Bạn phải tùy chỉnh và mã để có được chức năng cụ thể, nhưng bạn có thể đến rất gần với đầy đủ chức năng với sự kết hợp của các thành phần này. Mặc dù nó không hoàn toàn giống như Unreal bởi vì bạn không bắt đầu với một khẩu súng chức năng, nhưng cá nhân tôi nghĩ rằng việc chơi một trò chơi nói chung (không phải FPS) trong Unity sẽ dễ dàng hơn. Rất nhiều trong số này là ngữ nghĩa - bạn thực sự cần phải lập trình để có bất cứ điều gì xảy ra.
jcurrie33

1
Có lẽ tốt hơn để nói rằng các công cụ trò chơi khác có hệ thống con được liên kết chặt chẽ hơn Unity3D. Khi bạn bắt đầu một dự án Unity3D mới và không nhập bất kỳ tài sản nào, bạn sẽ nhận được một bảng trống. Một cái gì đó mà tôi coi là một điều tốt. Có lẽ điều này đã làm lệch quan điểm của tôi về một chút lý do tại sao tôi nghĩ rằng không có hệ thống con mặc định. Có điều, chỉ là chúng không phù hợp với các dự án tôi phải làm. Và đây là một trong những điều hay về Unity3D. Thật dễ dàng để loại bỏ những cái mặc định và mã của riêng bạn nếu bạn quá nghiêng.
Extrakun

3

Bề mặt của Unity3D trông có vẻ siêu dễ dàng và gần như mọi thứ đều được xây dựng trước, nhưng không có gì là đúng. Nếu bạn bỏ qua để sử dụng các tập lệnh đã có (tồn tại cho mọi công cụ, điểm xấu so với Unity) và các plugin mà bạn mô tả là hơi mạnh mẽ, thì chúng chắc chắn không phải, Unity chỉ là giao diện lập trình với trình chỉnh sửa.

Bạn có hầu hết các mã của riêng bạn. Tôi đã trải nghiệm điều đó trong 2 dự án khác nhau.


2

Sự tương tự với đèn flash hoàn toàn đúng, nhưng tôi không thực sự hiểu sự tương tự của bạn với những con rối.

Những điều tốt đẹp về sự thống nhất là:

  • đa nền tảng: Đó là một điểm cộng rất lớn, tôi sẽ nói lý do lớn hơn.
  • Công cụ và triển khai chất lượng cao, ý tôi là sử dụng các trò chơi Unity, v.v.
  • Rất dễ dàng để tạo một trò chơi đơn giản từ đầu, vì vậy đó là một điểm cộng để tạo nguyên mẫu.

Những điều xấu:

  • Không thể liên kết với C ++ hoặc C, vì vậy dự án của bạn chỉ có thể hoạt động trên Unity. Với C #, người ta có thể lập luận rằng nó sẽ hoạt động trên XNA, nhưng C ++ sẽ rất tuyệt. Với nhận xét này, tôi muốn nói rằng đó không phải là một công cụ mà các chuyên gia kỳ cựu hoặc tự động sử dụng sẽ sử dụng, vì bạn không có toàn quyền kiểm soát ứng dụng của mình, nhưng điều này không có nghĩa là bạn không thể làm gì với Unity. Mặt khác, một đội ngũ có ý tưởng tuyệt vời và các nghệ sĩ tài năng có thể làm những thứ tuyệt vời mà không cần các lập trình viên có kinh nghiệm.
  • Nó khá mới, vì vậy rõ ràng không ai biết công cụ này sẽ dẫn đến đâu.

Điều tôi không thích với Unity là cảm giác như tất cả công việc khó khăn đã được thực hiện, vì vậy các lập trình viên ít có giá trị hơn nhiều. Mặt khác, thật tuyệt vời khi nhanh chóng dạy mọi người cách xây dựng mọi thứ nhanh chóng.

Vì vậy, để kết luận: Unity (hoặc công cụ như Unity) dành cho các nghệ sĩ không thể tiếp cận với các lập trình viên tuyệt vời, nhưng vẫn có thể biết để làm một kịch bản trò chơi nhỏ. KHÓA HỌC bạn có thể tạo một trò chơi đầy đủ tính năng, thêm IA thực tế, thực hiện mã mạng mmo và những gì không, nhưng các công ty lớn sẽ không sử dụng Unity.

Các mô hình lập trình cho phép người ta đề xuất một giải pháp phù hợp với 3/4 công cụ phát triển sao cho phù hợp với các nhà sản xuất trò chơi "độc lập" đó. Nó coi trọng một công cụ cụ thể và nó cũng đánh giá cao các nghệ sĩ, nhưng không phải là lập trình viên (ngoại trừ những người từ nhóm thống nhất, tất nhiên).

Unity là một lối tắt tốt cho những người không lập trình, nhưng họ phải hiểu rằng các trò chơi video đến từ các dòng mã và bạn không thể làm mọi thứ chỉ với một công cụ tuyệt vời. Tại một số điểm, nó đòi hỏi phải biết một cái gì đó về lập trình cấp thấp.

Có một dự án cá nhân, tôi sẽ không sử dụng Unity, vì tôi không thích C # hoặc Boo (Panda tốt với python, vậy tại sao phải bận tâm với một phần mềm thương mại?), Và bởi vì nếu tôi hiển thị dự án của mình và nó đã được thực hiện với đoàn kết, nó sẽ ít ấn tượng hơn nhiều.


1
Nhận xét bản thân: cũng có các plugin pro cho phép lập trình trong C ++, vì vậy về mặt lý thuyết, đó cũng là một công cụ C ++ ...
jokoon

1

Unity yêu cầu bạn phải viết kịch bản, nhưng không có tất cả các mẫu. Trong một trò chơi OpenGL điển hình, bạn sẽ cần khởi tạo ma trận và máy ảnh như điên. Trong Unity, bạn tạo một tập lệnh để nói hành vi của một cái gì đó, sau đó gắn nó vào một đối tượng để làm cho nó hoạt động.


1

Nếu bằng cách tạo ra nhiều mã cho bạn, bạn sẽ bao gồm các hàm dựng sẵn mà bạn có thể sử dụng để làm cho cuộc sống của bạn dễ dàng liên quan đến tính toán phát hiện va chạm và xoay vòng (Thư viện), vâng, phải mất rất nhiều mã hóa từ hình ảnh và đưa ra bạn đã tối ưu hóa các phiên bản trong tay và sẵn sàng để đi. Chủ yếu là các chức năng mà bạn sẽ cần đặc biệt cho Phát triển trò chơi trong tất cả các bản dựng.

Nghe có vẻ dư thừa, nhưng theo kinh nghiệm của tôi, khi Unity3D không bận bịu hoặc xây dựng nó khiến cuộc sống của tôi trở nên dễ dàng bằng cách cho phép tôi thay đổi bất cứ điều gì tôi muốn và để lại toán học dựa trên Đệ tứ cho những người có bằng thạc sĩ toán học và vẫn đủ tin tưởng tôi để tôi thay đổi bất cứ điều gì tôi muốn.

Nó sẽ không viết gì cho bạn, thay vào đó giúp bạn hiểu theo cách nó nghĩ là tốt nhất và cho phép bạn viết bất cứ điều gì bạn muốn.

Trong một từ, Linh hoạt

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.