2017-12-07 5 views
0

나는 아주 쉽게해야한다고 생각하는 일을하고있는 중대한 문제가 있습니다. 카메라가 고정되어 움직일 수있는 캔버스 안에있는 공간 배경 이미지 위에 스프라이트가 있습니다. 이것은 주요 장면입니다.Unity - 스프라이트를 스프라이트의 자식으로 스폰합니다. (스프라이트의 맨 위에)

나는 플레이어가 방에 방을 추가 할 수있게하고 싶습니다. 이것은 기본적으로 스테이션 스프라이트 맨 위의 공간에 삽입 할 수있는 또 다른 스프라이트로 구성됩니다. 이미지에 스프라이트를 추가하고 스프라이트 뷰의 스테이션 상단에서 볼 수는 있지만 게임이 실행되는 동안은 게임보기에서 볼 수 없습니다. 나는 시도했다.

  • 게임 객체를 인스턴스화 할 수있는 캔버스가 있고 이미지를 새 룸 이미지로 설정했다.
  • 스프라이트를 기지국 스프라이트에 추가하고 레이어 스프라이트가 같은 레이어에 있는지 확인한 다음 정렬 레이어와 레이어의 순서를 변경하면 올바르게 처리 된 것으로 생각하지 않습니다.

룸 스프라이트는 스테이션의 하위이며 게임에 표시 할 수 없습니다. 아무도 내가 놓친 것일 수있는 제안을 제시 할 수 있습니까?

Rooms are empty but need a room sprite to be added by player

Sprite added and can be seen in game view Nothing seen during runtime

+0

여기에 아무 것도 보이지 않습니다. 스프라이트를 다른 스프라이트의 자식으로 쑤셔 넣었습니다. 아이는 아무 것도 조정할 필요없이 맨 위에 렌더링됩니다. "계층의 순서"가 동일한 값 (또는 양의 무한대로 갈수록 커질 때)이면 최상위로 렌더링됩니다 (다른 레이어 인 경우 레이어를 기반으로합니다). 즉 : 스프라이트 *는 캔버스 이미지가 아닙니다. * 스프라이트는 항상 스크린 공간과 카메라 공간 캔버스 뒤에 렌더링됩니다. – Draco18s

+0

@Nick Proud UI에서이 작업을 수행해서는 안됩니다. 단순히 세계 공간에서 스프라이트를 사용해 보았습니까? 그렇다면 왜 그렇게하지 않았습니까? – Fiffe

+0

캔버스에 대한 이해가 부족합니다. 캔버스에 스프라이트가 담겨 있었는데 카메라가 공간 안에서 움직일 수있는 공간으로 고정되었으므로 주 캔버스에 내 HUD가 들어 있습니다. 본질적으로 나는 카메라가 역을 내려다 보는 특별한 위치에서 시작해야한다. 그런 다음 플레이어는 HUD 요소를 제 위치에 고정시키면서 카메라를 전 세계를 내려다 보면서 움직일 수 있습니다. 그래서 왜 내가 캔버스를 사용 했지. 내가 택해야하는 다른 방법들? –

답변

0

당신은 UI 캔버스에 전체 게임을 렌더링해서는 안된다; 그들은 UI를 위해 설계되었습니다. Canvas 오브젝트 내의 렌더링 순서를 관리하려면 느리고 불필요한 계층 구조를 다시 정렬해야합니다. Unity's Canvas docs 가입일

: 캔버스에

UI 요소는 그들이 계층에서 나타나는 순서와 동일한 순서로 당겨진다. 첫 번째 자식이 먼저 그려지며 두 번째 자식이 다음에 그려집니다. 등등. 두 개의 UI 요소가 겹치면, 나중에 UI 요소 중 하나가 위에 나타납니다.

다른 요소 위에 나타나는 요소를 변경하려면 단순히 요소를 드래그하여 순서를 변경하십시오. 순서는 변환 구성 요소 : SetAsFirstSibling, SetAsLastSiblingSetSiblingIndex에서 이러한 메서드를 사용하여 스크립팅에서 제어 할 수도 있습니다. 당신은 전체 튜토리얼을 통해가는 기분하지 않는 경우

대신에, 나는 적어도 게임이 제대로 SpriteRenderer을 활용하는 방법의 이해에 대한 Sorting Layers 부분에 들여다 봐도, Unity's Rogue-Like Tutorial를 통과 추천 것 . 그들은 훨씬 쉽게 관리 할 수 ​​있습니다.

관련 문제