Unity3D에서 게임을 만들 때 워크 플로우를 알고 싶습니다.
그것은 당신을 위해 많은 코드를 생성합니까?
내 이해는 Unity에서 게임을 설명하고 논리를 수행하기 위해 백엔드에서 스크립팅을한다는 것입니다. 여러분은 퍼펫을 설명하기 위해 Unity를 사용하고 퍼펫 마스터로 스크립팅 언어를 사용하는 것과 같습니다.
Unity3D에서 게임을 만들 때 워크 플로우를 알고 싶습니다.
그것은 당신을 위해 많은 코드를 생성합니까?
내 이해는 Unity에서 게임을 설명하고 논리를 수행하기 위해 백엔드에서 스크립팅을한다는 것입니다. 여러분은 퍼펫을 설명하기 위해 Unity를 사용하고 퍼펫 마스터로 스크립팅 언어를 사용하는 것과 같습니다.
답변:
Unity3D는 게임 엔진과 (아주 초보적인) 3D 편집기로 구성됩니다. 메시, 텍스처, 쉐이더, 터 레인, 카메라, 애니메이션, 파티클 시스템, 오디오 샘플 및 비디오 게임에 유용한 다른 종류의 오브젝트를 제공합니다. 여기에는 PHYSX (Nvidia 소유의 물리 엔진) 및 Mono (공통 언어 런타임의 오픈 소스 구현, 일명 .NET)가 포함됩니다.
이 중 얼마를 사용 하느냐는 귀하에게 달려 있습니다. 모든 데이터 구조를 Unity 객체로 표현하고 Unity 에디터에서 세계를 구축하며 물리를 켜고 최소한의 스크립팅으로 이벤트가 진행되도록 할 수 있습니다. 또는 물리 엔진을 끄고 알고리즘 방식으로 세계를 구성하며 객체의 모든 동작과 물리를 명시 적으로 프로그래밍 할 수 있습니다.
C #, JavaScript 또는 Boo 언어 중 하나를 사용하여 Mono로 동작을 완전히 프로그래밍하거나 다른 언어로 작성하여 Unity 프로젝트와 연결할 수 있습니다. (게임 오브젝트와의 실제 통합은 Mono를 통해 이루어져야하지만 원한다면 상당히 얇은 레이어 일 수 있습니다.)
워크 플로는 모든 게임 엔진과 거의 동일합니다. 아티스트는 모델과 텍스처, 애니메이션을 만들고, 오디오 전문가는 소리를 내고, 프로그래머는 쉐이더와 동작을 작성합니다.
Unity 프로그래머 커뮤니티는 answers.unity3d.com 및 forum.unity3d.com 모두에서 매우 유용 합니다. (아마도 스택 교환에서?)
알아내는 가장 좋은 방법은 시험해 보는 것입니다 . 기본 버전은 무료이며 "Pro"버전의 30 일 평가판 기간이 있습니다.
Unity3D는 '드래그 앤 드롭'게임 엔진보다 래퍼 / 라이브러리입니다. 코드를 생성하지 않으며 '기성품'스크립트와 함께 제공되지 않습니다.
예를 들어, Unreal에는 기본 1 인칭 카메라, 캐릭터 컨트롤러, 충돌 감지 및 AI가 있습니다.
Unity3D에는 그중 아무것도 없습니다. Unity3D는 게임 루프, 컴포넌트 기반 엔터티 시스템, 포괄적 인 수학 라이브러리로 미디어로드, 메시 처리, 카메라, 즉각적인 모드 GUI, 쉐이더, 렌더링 파이프 라인 및 기타 저수준 기능을 의미합니다. 멋진 편집자도 있습니다. 높은 수준의 기능에 대해서만 걱정하면됩니다. 예를 들어, 여전히 1 인칭 카메라를 코딩해야합니다 (기본 카메라를 사용하지 않는 경우). 그러나 look-at 벡터 등을 계산할 필요는 없습니다.
Unity3D는 게임 코드를 엄격하게 생성하지 않습니다 (게임 실행을위한 코드를 생성하여 더 정확하지만 게임 플레이를위한 코드는 생성하지 않습니다)
게임을 정의하려면 API를 사용해야합니다. Unity3D와 함께 제공되는 예제를보고 해당 코드를 재사용 할 수 있습니다. 미리 정의 된 두 개의 스크립트가 있지만 일반적으로 필요에 맞게 스크립트를 사용자 정의해야합니다.
스크립팅을 통해 게임을 만듭니다. 행동에 대한 스크립트를 작성하고, Unity3D에서 레벨을 디자인하고, 그 행동을 엔티티 (또는 게임 오브젝트)에 할당합니다. 매우 유연하지만 여전히 게임을 작성하려면 노력이 필요합니다. 3D 용 Flash와 비교하겠습니다.
플래시와의 비유는 옳지 만 꼭두각시와의 비유는 이해하지 못합니다.
화합의 좋은 점은 다음과 같습니다.
나쁜 것 :
Unity에서 마음에 들지 않는 것은 모든 노력이 끝났다는 느낌이 들기 때문에 프로그래머의 가치가 훨씬 떨어진다는 것입니다. 반면에 사람들에게 물건을 빨리 만드는 법을 빠르게 가르치는 데 좋습니다.
결론적으로, Unity (또는 Unity와 같은 도구)는 훌륭한 프로그래머에게 손을 뻗을 수는 없지만 약간의 게임 스크립팅을하는 것을 아는 아티스트에게는 더 유용합니다. 코스의 모든 기능을 갖춘 게임을 만들고 현실적인 IA를 추가하고 mmo 넷 코드를 수행하는 등의 작업을 수행 할 수 있지만 대기업은 Unity를 사용하지 않습니다.
프로그래밍 모델을 사용하면 "독립적 인"게임 제작자에게 적합하도록 3/4의 개발 도구에 적합한 솔루션을 제안 할 수 있습니다. 이 도구는 하나의 특정 도구를 중요하게 여기고 아티스트도 중요하지만 프로그래머는 아닙니다 (물론 팀의 도구는 제외).
Unity는 프로그래머가 아닌 사람에게는 좋은 지름길이지만 비디오 게임은 코드 라인에서 나 왔으며 멋진 도구로 모든 것을 할 수는 없다는 것을 이해해야합니다. 어떤 시점에서는 저수준 프로그래밍에 대해 알아야합니다.
개인 프로젝트를 염두에두고 C #이나 Boo를 좋아하지 않기 때문에 Unity를 사용하지 않을 것입니다 (Panda는 파이썬에 좋으므로 상용 소프트웨어를 사용하는 이유는 무엇입니까?). 내 프로젝트를 보여 주면 완료됩니다. 통일, 그것은 훨씬 덜 인상적입니다.
많은 코드를 생성하여 충돌 감지 및 회전 계산 (라이브러리)과 관련하여 인생을 쉽게 만들 수있는 사전 빌드 함수를 포함하면 그림에서 많은 코딩이 필요합니다. 사용중인 버전을 최적화하고 바로 사용할 수 있습니다. 대부분의 빌드에서 게임 개발에 특별히 필요한 기능입니다.
이것은 말할 것도없이 들릴 수도 있지만, 내 경험상 Unity3D가 충돌하거나 빌드하지 않을 때 내가 원하는 것을 바꿀 수있게하고 쿼터니언 기반 수학을 수학 석사 학위를 가진 사람들에게 맡겨서 내 인생을 편하게 만듭니다. 여전히 내가 원하는 것을 바꿀 수있을만큼 나를 믿어 줘
그것은 당신을 위해 아무것도 쓰지 않고 오히려 최선이라고 생각하는 방식으로 당신을 돕고 당신이 원하는 것을 쓸 수있게합니다.
한마디로 유연함