Unity3D, 얼마나 많은 코드를 작성하십니까? [닫은]


16

Unity3D에서 게임을 만들 때 워크 플로우를 알고 싶습니다.

그것은 당신을 위해 많은 코드를 생성합니까?

내 이해는 Unity에서 게임을 설명하고 논리를 수행하기 위해 백엔드에서 스크립팅을한다는 것입니다. 여러분은 퍼펫을 설명하기 위해 Unity를 사용하고 퍼펫 마스터로 스크립팅 언어를 사용하는 것과 같습니다.



2
이 질문을 UnityAnswers 에 게시 할 수 있습니다 . 보다 단합 중심이기 때문에 훨씬 더 나은 반응을 얻을 수 있습니다
Joe the Person

답변:


18

Unity3D는 게임 엔진과 (아주 초보적인) 3D 편집기로 구성됩니다. 메시, 텍스처, 쉐이더, 터 레인, 카메라, 애니메이션, 파티클 시스템, 오디오 샘플 및 비디오 게임에 유용한 다른 종류의 오브젝트를 제공합니다. 여기에는 PHYSX (Nvidia 소유의 물리 엔진) 및 Mono (공통 언어 런타임의 오픈 소스 구현, 일명 .NET)가 포함됩니다.

이 중 얼마를 사용 하느냐는 귀하에게 달려 있습니다. 모든 데이터 구조를 Unity 객체로 표현하고 Unity 에디터에서 세계를 구축하며 물리를 켜고 최소한의 스크립팅으로 이벤트가 진행되도록 할 수 있습니다. 또는 물리 엔진을 끄고 알고리즘 방식으로 세계를 구성하며 객체의 모든 동작과 물리를 명시 적으로 프로그래밍 할 수 있습니다.

C #, JavaScript 또는 Boo 언어 중 하나를 사용하여 Mono로 동작을 완전히 프로그래밍하거나 다른 언어로 작성하여 Unity 프로젝트와 연결할 수 있습니다. (게임 오브젝트와의 실제 통합은 Mono를 통해 이루어져야하지만 원한다면 상당히 얇은 레이어 일 수 있습니다.)

워크 플로는 모든 게임 엔진과 거의 동일합니다. 아티스트는 모델과 텍스처, 애니메이션을 만들고, 오디오 전문가는 소리를 내고, 프로그래머는 쉐이더와 동작을 작성합니다.

Unity 프로그래머 커뮤니티는 answers.unity3d.comforum.unity3d.com 모두에서 매우 유용 합니다. (아마도 스택 교환에서?)

알아내는 가장 좋은 방법은 시험해 보는 것입니다 . 기본 버전은 무료이며 "Pro"버전의 30 일 평가판 기간이 있습니다.


6

Unity3D는 '드래그 앤 드롭'게임 엔진보다 래퍼 / 라이브러리입니다. 코드를 생성하지 않으며 '기성품'스크립트와 함께 제공되지 않습니다.

예를 들어, Unreal에는 기본 1 인칭 카메라, 캐릭터 컨트롤러, 충돌 감지 및 AI가 있습니다.

Unity3D에는 그중 아무것도 없습니다. Unity3D는 게임 루프, 컴포넌트 기반 엔터티 시스템, 포괄적 인 수학 라이브러리로 미디어로드, 메시 처리, 카메라, 즉각적인 모드 GUI, 쉐이더, 렌더링 파이프 라인 및 기타 저수준 기능을 의미합니다. 멋진 편집자도 있습니다. 높은 수준의 기능에 대해서만 걱정하면됩니다. 예를 들어, 여전히 1 인칭 카메라를 코딩해야합니다 (기본 카메라를 사용하지 않는 경우). 그러나 look-at 벡터 등을 계산할 필요는 없습니다.

Unity3D는 게임 코드를 엄격하게 생성하지 않습니다 (게임 실행을위한 코드를 생성하여 더 정확하지만 게임 플레이를위한 코드는 생성하지 않습니다)

게임을 정의하려면 API를 사용해야합니다. Unity3D와 함께 제공되는 예제를보고 해당 코드를 재사용 할 수 있습니다. 미리 정의 된 두 개의 스크립트가 있지만 일반적으로 필요에 맞게 스크립트를 사용자 정의해야합니다.

스크립팅을 통해 게임을 만듭니다. 행동에 대한 스크립트를 작성하고, Unity3D에서 레벨을 디자인하고, 그 행동을 엔티티 (또는 게임 오브젝트)에 할당합니다. 매우 유연하지만 여전히 게임을 작성하려면 노력이 필요합니다. 3D 용 Flash와 비교하겠습니다.


1
"Unreal에는 기본 1 인칭 카메라, 캐릭터 컨트롤러, 충돌 감지 및 AI가 있습니다. Unity3D에는 해당 기능이 없습니다"
jcurrie33

8
실제로 Unity에는 이러한 모든 기능을위한 구성 요소가 포함되어 있으며 다운로드 가능한 플러그인으로 제공됩니다. 특정 기능을 사용하려면 사용자 정의하고 코드를 작성해야하지만 이러한 구성 요소의 조합으로 모든 기능에 매우 근접 할 수 있습니다. 기능성 총으로 시작하지 않기 때문에 언리얼만큼 넉넉하지는 않지만 개인적으로 Unity에서 일반적으로 (FPS가 아닌) 게임을 얻는 것이 더 쉽다고 생각합니다. 이 중 많은 부분이 의미 론적입니다. 실제로 무언가를 얻으려면 실제로 프로그래밍해야합니다.
jcurrie33

1
다른 게임 엔진에는 Unity3D보다 하위 시스템이 더 밀접하게 결합되어 있다고 말하는 것이 좋습니다. 새 Unity3D 프로젝트를 시작하고 자산을 가져 오지 않으면 빈 슬레이트가 나타납니다. 내가 좋은 것으로 생각하는 것. 아마도 이것이 기본 하위 시스템이 없다고 생각하는 이유에 대한 나의 견해를 약간 왜곡했습니다. 내가 해야하는 프로젝트에 적합하지 않다는 것만 있습니다. 이것이 Unity3D의 좋은 점 중 하나입니다. 기본 설정을 지우고 기울어지면 쉽게 코딩 할 수 있습니다.
Extrakun

3

Unity3D의 표면은 매우 쉬운 것처럼 보이며 거의 모든 것이 사전 구축되었지만 사실은 아닙니다. 이미 존재하는 스크립트 (모든 엔진에 존재하며 Unity에 대한 나쁜 점)와 다소 강력한 것으로 설명하는 플러그인을 사용하는 것을 무시한다면, Unity는 에디터가 아닌 프로그래밍 인터페이스 일뿐입니다.

당신은 대부분의 코드를 가지고 있습니다. 나는 두 가지 다른 프로젝트에서 그것을 경험했다.


2

플래시와의 비유는 옳지 만 꼭두각시와의 비유는 이해하지 못합니다.

화합의 좋은 점은 다음과 같습니다.

  • 크로스 플랫폼 : 그것은 매우 큰 장점입니다. 더 큰 이유를 말할 것입니다.
  • 고품질 엔진 및 구현, Unity 게임 오브젝트 등을 사용하는 것을 의미합니다.
  • 간단한 게임을 처음부터 매우 쉽게 만들 수 있으므로 프로토 타입 제작에 도움이됩니다.

나쁜 것 :

  • C ++ 또는 C와 연결할 수 없으므로 프로젝트는 Unity에서만 작동 할 수 있습니다. C #을 사용하면 XNA에서 작동한다고 주장 할 수 있지만 C ++은 좋을 것입니다. 이 말을 사용하면 응용 프로그램을 완전히 제어 할 수 없기 때문에 베테랑 전문가 또는 자동 응시자가 사용하는 도구가 아니지만 Unity로 할 수없는 것이 아닙니다. 반면에, 훌륭한 아이디어와 재능있는 아티스트를 보유한 팀은 숙련 된 프로그래머가 없어도 멋진 작업을 수행 할 수 있습니다.
  • 새롭기 때문에이 도구가 어디로 인도 될지는 아무도 모릅니다.

Unity에서 마음에 들지 않는 것은 모든 노력이 끝났다는 느낌이 들기 때문에 프로그래머의 가치가 훨씬 떨어진다는 것입니다. 반면에 사람들에게 물건을 빨리 만드는 법을 빠르게 가르치는 데 좋습니다.

결론적으로, Unity (또는 Unity와 같은 도구)는 훌륭한 프로그래머에게 손을 뻗을 수는 없지만 약간의 게임 스크립팅을하는 것을 아는 아티스트에게는 더 유용합니다. 코스의 모든 기능을 갖춘 게임을 만들고 현실적인 IA를 추가하고 mmo 넷 코드를 수행하는 등의 작업을 수행 할 수 있지만 대기업은 Unity를 사용하지 않습니다.

프로그래밍 모델을 사용하면 "독립적 인"게임 제작자에게 적합하도록 3/4의 개발 도구에 적합한 솔루션을 제안 할 수 있습니다. 이 도구는 하나의 특정 도구를 중요하게 여기고 아티스트도 중요하지만 프로그래머는 아닙니다 (물론 팀의 도구는 제외).

Unity는 프로그래머가 아닌 사람에게는 좋은 지름길이지만 비디오 게임은 코드 라인에서 나 왔으며 멋진 도구로 모든 것을 할 수는 없다는 것을 이해해야합니다. 어떤 시점에서는 저수준 프로그래밍에 대해 알아야합니다.

개인 프로젝트를 염두에두고 C #이나 Boo를 좋아하지 않기 때문에 Unity를 사용하지 않을 것입니다 (Panda는 파이썬에 좋으므로 상용 소프트웨어를 사용하는 이유는 무엇입니까?). 내 프로젝트를 보여 주면 완료됩니다. 통일, 그것은 훨씬 덜 인상적입니다.


1
나 자신을 주석 : C ++로 프로그래밍 할 수있는 프로 플러그인도 있으므로 이론적으로 C ++ 엔진입니다 ...
jokoon

1

Unity는 스크립트를 작성해야하지만 모든 상용구가 없습니다. 일반적인 OpenGL 게임에서는 미친 듯이 매트릭스와 카메라를 초기화해야합니다. Unity에서는 무언가의 행동을 알려주는 스크립트를 생성 한 다음이를 객체에 연결하여 동작시킵니다.


1

많은 코드를 생성하여 충돌 감지 및 회전 계산 (라이브러리)과 관련하여 인생을 쉽게 만들 수있는 사전 빌드 함수를 포함하면 그림에서 많은 코딩이 필요합니다. 사용중인 버전을 최적화하고 바로 사용할 수 있습니다. 대부분의 빌드에서 게임 개발에 특별히 필요한 기능입니다.

이것은 말할 것도없이 들릴 수도 있지만, 내 경험상 Unity3D가 충돌하거나 빌드하지 않을 때 내가 원하는 것을 바꿀 수있게하고 쿼터니언 기반 수학을 수학 석사 학위를 가진 사람들에게 맡겨서 내 인생을 편하게 만듭니다. 여전히 내가 원하는 것을 바꿀 수있을만큼 나를 믿어 줘

그것은 당신을 위해 아무것도 쓰지 않고 오히려 최선이라고 생각하는 방식으로 당신을 돕고 당신이 원하는 것을 쓸 수있게합니다.

한마디로 유연함

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.