유니티 에디터의 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 |