레벨 에디터에서 시차 레이어를 어떻게 시각화합니까?


9

Unity에서 2D 게임을 만들고 있지만 모든 2D 게임 엔진에 적용됩니다.

직교 카메라로 다중 평면 시차를 구현하면 배경 레이어의 스프라이트를 배치하고 다른 레이어의 스프라이트와 정렬 될 위치를 파악하기가 어렵습니다.

첫 번째 본능은 각 레이어마다 하나씩 여러 대의 카메라를 사용하고 배경 레이어에 대한 카메라의 이동 속도를 줄였습니다. 이렇게하면 매 프레임마다 모든 배경 스프라이트를 이동할 필요가 없습니다. 문제는 절반 속도로 이동하는 레이어가 편집기에서 볼 때 기본 레이어 공간의 절반을 차지한다는 것입니다. 따라서 게임을 배치 할 때 스프라이트를 배치 할 위치를 알기가 어렵습니다. 레이어 수를 늘리면 문제가 기하 급수적으로 악화됩니다.

이 문제를 어떻게 해결합니까? 에디터에서 레이어를 작업하면서 의도 한 이동 속도에 따라 레이어를 반대로 스케일링하려고했습니다. 그러면 모든 배경 스프라이트가 기본 레이어를 기준으로 올바른 위치에 배치되지만 끔찍하게 왜곡됩니다.

시차 배경을 테스트하기 위해 에디터와 실행중인 게임 사이를 끊임없이 전환해야합니까?


4
그런 게임을 할 때 에디터에서 카메라를 드래그하여 시차가 어떻게 작동하는지 확인할 수 있도록 방금 만들었습니다. 그래도 Unity에서 이와 같은 작업을 구체적으로 수행하는 방법을 잘 모르겠습니다.
Tetrad

답변:


1

나는 Unity에 익숙하지 않으므로 특정 사항에 대해 도움을 줄 수는 없지만 슬라이더 또는 숫자 필드 집합을 사용하여 런타임 중에 이러한 값을 미세 조정하는 GUI 수단을 구현하는 것이 필요합니다. 런타임 중에 결정하는 값 (스케일, 속도 등)을 변경하여 즉각적인 피드백을 제공하는 필드를 구현하는 것은 매우 간단합니다. 게재 위치의 경우 클릭 드래그가 포함 된 필드 또는 수동 게재 위치를 사용할 수 있습니다 (구현하기는 다소 어렵지만 훨씬 직관적 임).

이를 통해 변경의 작은 부분마다 코드를 컴파일하고 실행하지 않고도 완벽한 제어가 가능합니다. 마지막으로 만족스러운 모양과 느낌에 도달하면 상수 목록에서 해당 값을 사용하십시오. 편집중인 변수의 수 (예 : 수많은 레벨의 수많은 스프라이트 위치)로 인해 이것이 너무 어려울 경우 수동 조정 기능과 동일한 기능을 사용하지만 레벨 편집기에서 레벨 편집기에서 구현하고 싶습니다 조정 된 데이터 생성 및 저장 결과.


예, 레벨 에디터를 사용하는 것이 자신의 코딩이든 Unity의 경우 기존 에디터와 작동하도록 설정하는 것이 가장 좋은 방법 인 것 같습니다. 각 레이어마다 별도의 카메라 객체를 사용하여 시차 설정을 코딩했으며 카메라는 각 프레임마다 기본 카메라를 기준으로 적절하게 이동했습니다. 그런 다음 [ExecuteInEditMode]를 사용하여 에디터에서 메인 카메라를 드래그 한 경우에도 업데이트되도록합니다. 메인 카메라 만 직접 움직여야한다는 것을 기억해야합니다.
TenFour04

1

아이디어 : 프론트 레이어 용 카메라로 충분하다고 생각합니다. 스프라이트를 z 평면의 스프라이트와 거리를두고 배치하면 거리를 늦추면 그 뒤로 레이어를 이동할 수있는 부분이 줄어 듭니다.

예를 들어, 전면 카메라에서 물체 거리 10은 배경 레이어에서 1/10 이동합니다. 거리가 2 인 객체는 각 레이어 등에서 1/2 이동합니다.

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