유니티 에디터의 Scene뷰와 Game뷰 에는 오브젝트 조작과 가시성의 편의를 위해 Gizmo란 것이 존재하는데

기존엔 Scene 뷰에서 조작이 가능할뿐 런타임 중에는 Gizmo를 활용할 수 없었지만 Github에 좋은게 있다.

https://github.com/HiddenMonk/Unity3DRuntimeTransformGizmo

 

GitHub - HiddenMonk/Unity3DRuntimeTransformGizmo: A runtime transform gizmo similar to unitys editor so you can translate (move,

A runtime transform gizmo similar to unitys editor so you can translate (move, rotate, scale) objects at runtime. - GitHub - HiddenMonk/Unity3DRuntimeTransformGizmo: A runtime transform gizmo simil...

github.com

21.3.25 버젼 기준 잘 동작하며 적용법도 아주 간편한데 메인이 되는 카메라에 TransformGizmo 스크립트만 넣어주면 작동이 된다

 

RunTime 중에도 기즈모가 표시되고 Position, Rotation, Scale 등 조작이 가능하다

또한 에디터 뿐만아니라 빌드 이후의 실행파일에서도 동작한다.

 

맨 아래 Selection Mask 항목을 통해서 선택하고 싶은 LayerMask도 설정할 수 있다.

 

해당 소스에서는 UnityEngine.GL 라이브러리를 이용하여 기즈모와 같이 그려주고

카메라가 모든 오브젝트의 렌더링을 마친 후에 호출되는 함수 OnPostRender() 에서 호출해주고 있었다.

void DrawQuads(List<Vector3> lines, Color color)
		{
			if(lines.Count == 0) return;

			GL.Begin(GL.QUADS);
			GL.Color(color);

			for(int i = 0; i < lines.Count; i += 4)
			{
				GL.Vertex(lines[i]);
				GL.Vertex(lines[i + 1]);
				GL.Vertex(lines[i + 2]);
				GL.Vertex(lines[i + 3]);
			}

			GL.End();
		}

 

OpenGL 사용에 대한 블로그

https://bloodstrawberry.tistory.com/705

 

유니티 GL로 화면에 그림 그리기

Unity 전체 링크 참고 - 안드로이드 OpenGL 설정 - OpenGL로 화면에 선 그리기 - OpenGL로 화면 터치 이펙트 만들기 - OpenGL로 멀티 터치 이펙트 만들기 GL은 로우 레벨(Low-level) 그래픽 라이브러리다. 아래

bloodstrawberry.tistory.com

 

'Unity' 카테고리의 다른 글

[Unity] SerializeField ? 직렬화 ?  (0) 2024.01.22
[Unity C#] Vector3  (0) 2024.01.22
2024_01_08  (0) 2024.01.08
2024-01-04// 옵셔널 체이닝, Rect Transform, Bounds  (0) 2024.01.04
Unity2D) 기본캐릭터 이동조작  (0) 2022.09.05

+ Recent posts