Version: Unity 6.0 (6000.0)
언어 : 한국어
씬 뷰 뷰 옵션 오버레이
기즈모 메뉴

Gizmos 및 Handles

Gizmos 및 Handles 클래스를 사용하면 씬(Scene) 뷰와 게임(Game) 뷰에 라인과 셰이프뿐만 아니라 인터랙티브 핸들과 컨트롤도 그릴 수 있습니다. 이 두 클래스를 함께 사용하면 이 뷰에 표시되는 내용을 확장하고 원하는 방식으로 프로젝트를 편집할 수 있는 인터랙티브 툴을 구축할 수 있습니다. 예를 들어 인스펙터에 숫자를 입력하는 대신 게임에서 논플레이어 캐릭터(NPC) 주위에 드래그 가능한 원형 반지름 기즈모를 만들 수 있습니다. 이 기즈모는 플레이어를 보거나 플레이어의 소리를 들을 수 있는 영역을 나타냅니다.

이 페이지에서는 Gizmos 및 Handles 클래스에 대한 간단한 개요를 제공합니다. Gizmos 및 Handles 클래스의 모든 구성원에 대한 전체 기술 자료와 레퍼런스는 GizmosHandles에 대한 스크립트 레퍼런스 페이지를 참조하십시오.

Gizmos

Gizmos 클래스를 사용하면 프로젝트를 개발하는 동안 디버깅, 설정 지원 또는 툴로 사용할 라인, 구체, 큐브, 아이콘, 텍스처, 메시를 씬 뷰에 그릴 수 있습니다.

예를 들어 게임 오브젝트 주의에 10단위 노란색 와이어 큐브를 그리려면 다음 코드를 사용할 수 있습니다.

using UnityEngine;
public class GizmosExample : MonoBehaviour
{
    void OnDrawGizmosSelected()
    {
        // Draw a yellow cube at the transform position
        Gizmos.color = Color.yellow;
        Gizmos.DrawWireCube(transform.position, new Vector3(10, 10, 10));
    }
}

다음은 방향 광원 게임 오브젝트에 배치한 큐브의 모습입니다.

위치 주위에 큐브 기즈모를 그리는 추가 스크립트가 적용된 광원 게임 오브젝트
위치 주위에 큐브 기즈모를 그리는 추가 스크립트가 적용된 광원 게임 오브젝트

Gizmos 사용법을 설명하는 전체 기술 자료는 Gizmos 스크립트 레퍼런스 페이지를 참조하십시오.

핸들

Handles는 Gizmos와 유사하지만 상호 작용 및 조작 측면에서 더 많은 기능을 제공합니다. Unity가 씬 뷰에서 항목을 조작하기 위해 제공하는 3D 컨트롤은 Gizmos와 Handles의 조합입니다. Transform 컴포넌트를 통해 오브젝트를 배치하고, 확대/축소하고, 회전시키는 익숙한 툴과 같은 여러 빌트인 핸들 GUI가 있습니다. 하지만 커스텀 컴포넌트 에디터와 함께 사용할 고유한 핸들 GUI를 정의할 수도 있습니다. 이러한 GUI는 절차적으로 생성된 씬 콘텐츠, ‘보이지 않는’ 항목, 웨이포인트, 위치 마커와 같은 관련 오브젝트 그룹을 편집하는 데 매우 유용합니다.

예를 들어 다음은 화살표 모양 핸들을 사용하여 원호 영역을 생성하여 씬 뷰에서 ‘보호막 영역’을 수정하는 방법을 보여줍니다.

using UnityEditor;
using UnityEngine;
using System.Collections;

//this class should exist somewhere in your project
public class WireArcExample : MonoBehaviour
{
    public float shieldArea;
}

// Create a 180 degrees wire arc with a ScaleValueHandle attached to the disc
// that lets you modify the "shieldArea" value in the WireArcExample
[CustomEditor(typeof(WireArcExample))]
public class DrawWireArc : Editor
{
    void OnSceneGUI()
    {
        Handles.color = Color.red;
        WireArcExample myObj = (WireArcExample)target;
        Handles.DrawWireArc(myObj.transform.position, myObj.transform.up, -myObj.transform.right, 180, myObj.shieldArea);
        myObj.shieldArea = (float)Handles.ScaleValueHandle(myObj.shieldArea, myObj.transform.position + myObj.transform.forward * myObj.shieldArea, myObj.transform.rotation, 1, Handles.ConeHandleCap, 1);
    }
}
원호 핸들과 스케일 핸들의 예
원호 핸들과 스케일 핸들의 예

Handles 사용법을 설명하는 전체 기술 자료는 Handles 스크립트 레퍼런스 페이지를 참조하십시오.

씬 뷰 뷰 옵션 오버레이
기즈모 메뉴