공부/Unity

[unity]캔버스에 3D 오브젝트(프리팹) 보이게 하기(애니메이션 동작)

개발의 피 2024. 2. 24. 01:14

2주 전에 도전해볼 때는 여러 비슷한 글을 읽어봐도 잘 모르겠고...

잘 모르겠지만 무작정 따라해보니까 대충은 되는데 절반 밖에 안 보이고....

온전히 이해가 안 된 상태에서 따라만 했더니, 나한테 발생한 문제의 원인이 뭔지도 못 찾겠고.... 진짜 많이 찾아봤다

그래서 당일엔 포기했다가 오늘 다시 요리저리 해보니 문제를 찾았고, 찾아보다보니 이제 제대로 이해하게 된 것 같다!

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 나도 믿고싶지 않지만... 이거 해결하고 나니까 울음이 났다. 이거 맞나....?? 

 

+) 단순히 DP목적으로, 프리팹을 보여야할 때 : 메인 카메라의 스크린 모드를 스페이스 모드로 설정하고, 오브젝트들의 깊이로 설정 가능!

https://yoon-0506.tistory.com/55

 

[Unity] 3D 오브젝트를 캔버스에 위치시키기

1. canvas 추가 -> button 추가 -> 대상 3D 오브젝트를 button의 자식으로 삽입 2. canvas의 Render Mode를 Screen Space - Camera로 변경 및 UICamera 추가 (UI Camera 설정 : yoon-0506.tistory.com/22) 3. 추가한 3D 오브젝트의 크

yoon-0506.tistory.com

https://ozlael.tistory.com/44

 

유니티 UI 위에 3D 오브젝트 그리기 (Rendering 3D objects on Unity's UI)

유니티의 UI 관련하여 빈번하게 문의들어오는 것 중 하나가 UI와 3D 오브젝트들의 위치 관계에 관한 것입니다. 일반적인 UI는 게임 씬 위에 덧그려지는 방식으로 만들어집니다. 기본적으로 유니티

ozlael.tistory.com

 

하지만 그 이상의 기능이 필요하다면... 더 복잡한 방법이 필요해진다. 

 

* 해당 기능을 구현하기 위해서 알아야 하는 개념 : Render Texture, Raw Image

https://docs.unity3d.com/kr/2021.3/Manual/class-RenderTexture.html

 

렌더 텍스처 - Unity 매뉴얼

렌더 텍스처는 Unity가 런타임 시점에 생성하고 업데이트하는 텍스처입니다. 렌더 텍스처를 사용하려면 Assets > Create > Render Texture를 사용하여 새 렌더 텍스처를 생성한 후 Camera 컴포넌트의 타겟

docs.unity3d.com

렌더 텍스처 속성 정리 글

https://wlsdn629.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0-Render-Texture%EC%97%90-%EB%8C%80%ED%95%B4

 

유니티 Render Texture에 대해

Render Texture을 만들면 Dimension, Size, Anti-aliasing, Enable Compatible Format, Color Format, Depth Stencil Format, Enable Mip Maps, Dynamic Scaling, Wrap Mode, Filter Mode가 존재하는 것을 확인할 수 있습니다. 이것들에 대해 간단

wlsdn629.tistory.com

https://docs.unity3d.com/kr/2018.4/Manual/script-RawImage.html

 

로우 이미지 - Unity 매뉴얼

로우 이미지(Raw Image) 컨트롤은 사용자에게 상호작용하지 않는 이미지를 표시합니다. 장식, 아이콘 등에 사용할 수 있으며, 스크립트를 통해 다른 컨트롤 변경점을 반영하도록, 이미지를 변화시

docs.unity3d.com

 

방법을 설명하자면... 

1. Main Camera가 아닌, 새로운 카메라(Object Camera라고 명명) 만들기

2. Object Camera로 캔버스에 보이고 싶은 프리팹 비추기

3. Render Texture 생성 

4. Object Camera - Target Texture에 생성한 Render Texture 할당

5. Raw Image 생성해서, 캔버스에 배치

6. Raw Image에 3번에서 만든 Render Texture 할당

1~5까지의 과정이 정리된 링크  

https://learnandcreate.tistory.com/132

 

유니티에서 렌더 텍스쳐(render texture) 사용하기

UNITY에서 렌더 텍스쳐(render texture) 사용하는 방법아래 스크린샷에서 유저가 캐릭터를 선택하면 사용자 메뉴(UI)의 특정 영역에서 애니메이션을 실행하는 3D 모델을 확인할수있다. 렌더 텍스쳐를

learnandcreate.tistory.com

 

즉 다시 설명하자면,

Render Texture를 위한 새로운 카메라를 만들고,

카메라의 Target Texture 필드에 Render Texture를 넣고,

캔버스에 Raw Image를 추가해서 Raw Image에 Render Texture를 사용 !

 

이후 필요한 과정)

- Main Camera의 Culling Mask 속성에서, 캔버스에 비추는 오브젝트의 layer를 제외하기

 

개인적인 필요에 따라 손봐야하는 속성)

- Object Camera 속성 

- Clear Flags(여백 설정) : skybox / solid color / depth only / don't clear

- culling mask : 보여주고 싶은 오브젝트의 layer만 선택 

- Object의 유형에 따라 Object Camera Projection 설정 -> 원근감 필요없으면 Orthographic(2D)으로 변경 

Orthographic으로 설정한 경우엔, 카메라 z축으로 보여줄 범위 조절 불가능 

-> Size로 보여줄 범위 크기 조절

 

 

참고)

https://youtu.be/8yzpjkoE0YA?si=eUVOGUFjaiwN8KTb

저번에 가장 도움됐던 글 

https://funfunhanblog.tistory.com/209

 

유니티) 렌더텍스쳐 Render Texture

랜더텍스처 Render Texture는 런타임에서 생성 및 갱신되는 특수한 Texture입니다. 사용하려면 먼저 새 렌더 텍스처를 만들고 Cameras 중 하나를 지정하여 거기에 렌더링합니다. 이제 정상적인 텍스처처

funfunhanblog.tistory.com

관련된 미니맵 만드는 방법

https://yoonstone-games.tistory.com/111

 

[Unity] 미니맵 원하는 모양으로 만들기 (+컬링마스크)

이번 시간에는 게임의 완성도를 높여주는 미니맵을 원하는 모양으로 만드는 방법을 배워보도록 하겠습니다 :) 1. 미니맵을 만들기 위한 준비 바닥(Plane)과 플레이어(Capsule)를 만들어 배치하고, 플

yoonstone-games.tistory.com