# 기기 추가

> Explains how to define a new device to simulate and use it in the Device Simulator.

기기 시뮬레이터에 새 기기를 추가하려면 기기 정의와 기기 오버레이를 생성합니다.

기기 정의는 Unity 프로젝트에서 확장자가 `.device`인 텍스트 파일입니다. 여기에는 기기의 프로퍼티를 설명하는 JSON 파일이 포함됩니다.

기기 오버레이는 기기 화면의 테두리와 노치, 펀치아웃 및 사각형 화면에 추가되는 기타 요소를 포함하는 이미지입니다. 이를 필요에 따라 기기 정의와 함께 사용하여 하드웨어 요소가 기기 화면을 가로막는 방식을 시각화하고 이를 통해 터치 입력이 작동하지 않는 지점을 결정할 수 있습니다.

## 기기 정의 생성

기기 정의는 기기를 나타내는 JSON 파일입니다. 여기에는 필수 프로퍼티와 일부 선택적 프로퍼티가 모두 들어 있습니다. 기기 정의 파일에 오류가 있으면 해당 파일을 선택할 때 인스펙터에 오류가 표시됩니다.

### 스키마

| **프로퍼티**         | **필수** | **설명**                                                                                                                                                                                |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **friendlyName** | 지원     | 기기의 UI에 표시할 이름입니다.                                                                                                                                                                    |
| **version**      | 지원     | 기기 정의 파일의 버전을 나타냅니다. 현재 버전은 `1`입니다.                                                                                                                                                   |
| **screens**      | 지원     | 기기를 시뮬레이션할 화면을 각각 설명하는 오브젝트 리스트입니다. 여기에는 하나 이상의 화면이 포함되어야 합니다. 각 화면 오브젝트의 스키마에 대한 자세한 내용은 [화면](#screen)을 참조하십시오.                                                                      |
| **systemInfo**   | 지원     | 기기의 기능을 설명하는 오브젝트입니다. 이 오브젝트의 값은 [SystemInfo](/engine/6000.0/script-reference/unity-engine/system-info.md)에 매핑됩니다. systeminfo 오브젝트의 스키마에 대한 상세 내용은 [systeminfo](#systeminfo)를 참조하십시오. |

#### 화면

| **프로퍼티**                | **필수** | **설명**                                                                                                                                |
| ----------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| **width**               | 지원     | 화면의 너비(픽셀 단위)입니다.                                                                                                                     |
| **height**              | 지원     | 화면의 높이(픽셀 단위)입니다.                                                                                                                     |
| **navigationBarHeight** | 지원 안 함 | 전체 화면이 아닐 때 일부 기기 화면에 표시되는 Android 내비게이션 바의 높이(픽셀 단위)입니다.                                                                             |
| **dpi**                 | 지원     | 화면의 dpi입니다.                                                                                                                           |
| **orientations**        | 지원 안 함 | 화면이 시뮬레이션할 수 있는 방향을 각각 설명하는 오브젝트 리스트입니다. 이 프로퍼티의 값을 설정하지 않으면 화면이 모든 방향을 지원합니다. 각 방향 오브젝트의 스키마에 대한 자세한 내용은 [방향](#orientation)을 참조하십시오. |
| **presentation**        | 지원 안 함 | 기기 오버레이를 설명하는 오브젝트입니다. 이 오브젝트의 스키마에 대한 상세 내용은 [프레젠테이션](#presentation)을 참조하십시오.                                                        |

#### 방향

| **프로퍼티**        | **필수** | **설명**                                                                                                                               |
| --------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| **orientation** | 지원     | 화면 방향입니다. 이 프로퍼티의 값은 [ScreenOrientation](/engine/6000.0/script-reference/unity-engine/screen-orientation.md) 열거형에 매핑되는 숫자입니다.        |
| **safeArea**    | 지원 안 함 | 화면의 세이프 영역을 결정하는 [Rect](/engine/6000.0/script-reference/unity-engine/rect.md)입니다. 이 프로퍼티의 값을 설정하지 않으면 시뮬레이터는 화면을 전체를 세이프 영역으로 간주합니다. |
| **cutouts**     | 지원 안 함 | 콘텐츠를 표시할 수 없는 화면 영역을 지정하는 [Rect](/engine/6000.0/script-reference/unity-engine/rect.md) 리스트입니다.                                       |

#### 프레젠테이션

| **프로퍼티**        | **필수** | **설명**                                |
| --------------- | ------ | ------------------------------------- |
| **overlayPath** | 지원 안 함 | 기기 정의 파일과 기기 오버레이로 사용할 이미지의 상대 경로입니다. |
| **borderSize**  | 지원 안 함 | 오버레이에서 화면이 시작되는 지점까지의 거리(픽셀 단위)입니다.   |

#### 시스템 정보

이 오브젝트의 프로퍼티는 기기의 기능과 시스템 정보를 설명합니다. 시스템 정보를 설명하므로 상당수는 [SystemInfo](/engine/6000.0/script-reference/unity-engine-device/system-info.md)의 프로퍼티에 매핑됩니다.

| **프로퍼티**                    | **필수** | **설명**                                                                                                                                             |
| --------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| **deviceModel**             | 지원 안 함 | [Device.SystemInfo.deviceModel](/engine/6000.0/script-reference/unity-engine-device/system-info/device-model.md)을 참조하십시오.                          |
| **deviceType**              | 지원 안 함 | [Device.SystemInfo.deviceType](/engine/6000.0/script-reference/unity-engine-device/system-info/device-type.md)을 참조하십시오.                            |
| **operatingSystem**         | 지원     | [Device.SystemInfo.operatingSystem](/engine/6000.0/script-reference/unity-engine-device/system-info/operating-system.md)을 참조하십시오.                  |
| **operatingSystemFamily**   | 지원 안 함 | [Device.SystemInfo.operatingSystemFamily](/engine/6000.0/script-reference/unity-engine-device/system-info/operating-system-family.md)를 참조하십시오.     |
| **processorCount**          | 지원 안 함 | [Device.SystemInfo.processorCount](/engine/6000.0/script-reference/unity-engine-device/system-info/processor-count.md)를 참조하십시오.                    |
| **processorFrequency**      | 지원 안 함 | [Device.SystemInfo.processorFrequency](/engine/6000.0/script-reference/unity-engine-device/system-info/processor-frequency.md)를 참조하십시오.            |
| **processorType**           | 지원 안 함 | [Device.SystemInfo.processorType](/engine/6000.0/script-reference/unity-engine-device/system-info/processor-type.md)을 참조하십시오.                      |
| **supportsAccelerometer**   | 지원 안 함 | [Device.SystemInfo.supportsAccelerometer](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-accelerometer.md)를 참조하십시오.      |
| **supportsAudio**           | 지원 안 함 | [Device.SystemInfo.supportsAudio](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-audio.md)를 참조하십시오.                      |
| **supportsGyroscope**       | 지원 안 함 | [Device.SystemInfo.supportsGyroscope](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-gyroscope.md)를 참조하십시오.              |
| **supportsLocationService** | 지원 안 함 | [Device.SystemInfo.supportsLocationService](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-location-service.md)를 참조하십시오. |
| **supportsVibration**       | 지원 안 함 | [Device.SystemInfo.supportsVibration](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-vibration.md)을 참조하십시오.              |
| **systemMemorySize**        | 지원 안 함 | [Device.SystemInfo.systemMemorySize](/engine/6000.0/script-reference/unity-engine-device/system-info/system-memory-size.md)를 참조하십시오.               |
| **unsupportedIdentifier**   | 지원 안 함 | [Device.SystemInfo.unsupportedIdentifier](/engine/6000.0/script-reference/unity-engine-device/system-info/unsupported-identifier.md)를 참조하십시오.      |
| **graphicsDependentData**   | 지원 안 함 | 기기가 지원하는 그래픽스 API를 각각 설명하는 오브젝트 리스트입니다. 각 오브젝트의 스키마에 대한 자세한 내용은 [graphicsDependentData](#graphicsdependentdata)를 참조하십시오.                           |

#### graphicsDependentData

오브젝트의 프로퍼티는 기기가 지원하는 그래픽스 API를 설명합니다.

| **프로퍼티**                                            | **필수** | **설명**                                                                                                                                                                                                  |
| --------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **graphicsDeviceType**                              | 지원     | [Device.SystemInfo.graphicsDeviceType](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-device-type.md)을 참조하십시오.                                                                |
| **graphicsMemorySize**                              | 지원 안 함 | [Device.SystemInfo.graphicsMemorySize](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-memory-size.md)를 참조하십시오.                                                                |
| **graphicsDeviceName**                              | 지원 안 함 | [Device.SystemInfo.graphicsDeviceName](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-device-name.md)을 참조하십시오.                                                                |
| **graphicsDeviceVendor**                            | 지원 안 함 | [Device.SystemInfo.graphicsDeviceVendor](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-device-vendor.md)를 참조하십시오.                                                            |
| **graphicsDeviceID**                                | 지원 안 함 | [Device.SystemInfo.graphicsDeviceID](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-device-id.md)를 참조하십시오.                                                                    |
| **graphicsDeviceVendorID**                          | 지원 안 함 | [Device.SystemInfo.graphicsDeviceVendorID](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-device-vendor-id.md)를 참조하십시오.                                                       |
| **graphicsUVStartsAtTop**                           | 지원 안 함 | [Device.SystemInfo.graphicsUVStartsAtTop](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-uv-starts-at-top.md)을 참조하십시오.                                                        |
| **graphicsDeviceVersion**                           | 지원 안 함 | [Device.SystemInfo.graphicsDeviceVersion](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-device-version.md)을 참조하십시오.                                                          |
| **graphicsShaderLevel**                             | 지원 안 함 | [Device.SystemInfo.graphicsShaderLevel](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-shader-level.md)을 참조하십시오.                                                              |
| **graphicsMultiThreaded**                           | 지원 안 함 | [Device.SystemInfo.graphicsMultiThreaded](/engine/6000.0/script-reference/unity-engine-device/system-info/graphics-multi-threaded.md)를 참조하십시오.                                                          |
| **renderingThreadingMode**                          | 지원 안 함 | [Device.SystemInfo.renderingThreadingMode](/engine/6000.0/script-reference/unity-engine-device/system-info/rendering-threading-mode.md)를 참조하십시오.                                                        |
| **hasHiddenSurfaceRemovalOnGPU**                    | 지원 안 함 | [Device.SystemInfo.hasHiddenSurfaceRemovalOnGPU](/engine/6000.0/script-reference/unity-engine-device/system-info/has-hidden-surface-removal-on-gpu.md)를 참조하십시오.                                         |
| **hasDynamicUniformArrayIndexingInFragmentShaders** | 지원 안 함 | [Device.SystemInfo.hasDynamicUniformArrayIndexingInFragmentShaders](/engine/6000.0/script-reference/unity-engine-device/system-info/has-dynamic-uniform-array-indexing-in-fragment-shaders.md)를 참조하십시오. |
| **supportsShadows**                                 | 지원 안 함 | [Device.SystemInfo.supportsShadows](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-shadows.md)를 참조하십시오.                                                                       |
| **supportsRawShadowDepthSampling**                  | 지원 안 함 | [Device.SystemInfo.supportsRawShadowDepthSampling](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-raw-shadow-depth-sampling.md)을 참조하십시오.                                      |
| **supportsMotionVectors**                           | 지원 안 함 | [Device.SystemInfo.supportsMotionVectors](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-motion-vectors.md)를 참조하십시오.                                                          |
| **supports3DTextures**                              | 지원 안 함 | [Device.SystemInfo.supports3DTextures](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-3-d-textures.md)를 참조하십시오.                                                               |
| **supports2DArrayTextures**                         | 지원 안 함 | [Device.SystemInfo.supports2DArrayTextures](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-2-d-array-textures.md)를 참조하십시오.                                                    |
| **supports3DRenderTextures**                        | 지원 안 함 | [Device.SystemInfo.supports3DRenderTextures](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-3-d-render-textures.md)를 참조하십시오.                                                  |
| **supportsCubemapArrayTextures**                    | 지원 안 함 | [Device.SystemInfo.supportsCubemapArrayTextures](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-cubemap-array-textures.md)를 참조하십시오.                                           |
| **copyTextureSupport**                              | 지원 안 함 | [Device.SystemInfo.copyTextureSupport](/engine/6000.0/script-reference/unity-engine-device/system-info/copy-texture-support.md)를 참조하십시오.                                                                |
| **supportsComputeShaders**                          | 지원 안 함 | [Device.SystemInfo.supportsComputeShaders](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-compute-shaders.md)를 참조하십시오.                                                        |
| **supportsGeometryShaders**                         | 지원 안 함 | [Device.SystemInfo.supportsGeometryShaders](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-geometry-shaders.md)를 참조하십시오.                                                      |
| **supportsTessellationShaders**                     | 지원 안 함 | [Device.SystemInfo.supportsTessellationShaders](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-tessellation-shaders.md)를 참조하십시오.                                              |
| **supportsInstancing**                              | 지원 안 함 | [Device.SystemInfo.supportsInstancing](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-instancing.md)을 참조하십시오.                                                                 |
| **supportsHardwareQuadTopology**                    | 지원 안 함 | [Device.SystemInfo.supportsHardwareQuadTopology](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-hardware-quad-topology.md)를 참조하십시오.                                           |
| **supports32bitsIndexBuffer**                       | 지원 안 함 | [Device.SystemInfo.supports32bitsIndexBuffer](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-32-bits-index-buffer.md)를 참조하십시오.                                                |
| **supportsSparseTextures**                          | 지원 안 함 | [Device.SystemInfo.supportsSparseTextures](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-sparse-textures.md)를 참조하십시오.                                                        |
| **supportedRenderTargetCount**                      | 지원 안 함 | [Device.SystemInfo.supportedRenderTargetCount](/engine/6000.0/script-reference/unity-engine-device/system-info/supported-render-target-count.md)를 참조하십시오.                                               |
| **supportsSeparatedRenderTargetsBlend**             | 지원 안 함 | [Device.SystemInfo.supportsSeparatedRenderTargetsBlend](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-separated-render-targets-blend.md)를 참조하십시오.                            |
| **supportedRandomWriteTargetCount**                 | 지원 안 함 | [Device.SystemInfo.supportedRandomWriteTargetCount](/engine/6000.0/script-reference/unity-engine-device/system-info/supported-random-write-target-count.md)를 참조하십시오.                                    |
| **supportsMultisampledTextures**                    | 지원 안 함 | [Device.SystemInfo.supportsMultisampledTextures](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-multisampled-textures.md)를 참조하십시오.                                            |
| **supportsMultisampleAutoResolve**                  | 지원 안 함 | [Device.SystemInfo.supportsMultisampleAutoResolve](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-multisample-auto-resolve.md)를 참조하십시오.                                       |
| **supportsTextureWrapMirrorOnce**                   | 지원 안 함 | [Device.SystemInfo.supportsTextureWrapMirrorOnce](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-texture-wrap-mirror-once.md)를 참조하십시오.                                        |
| **usesReversedZBuffer**                             | 지원 안 함 | [Device.SystemInfo.usesReversedZBuffer](/engine/6000.0/script-reference/unity-engine-device/system-info/uses-reversed-z-buffer.md)를 참조하십시오.                                                             |
| **npotSupport**                                     | 지원 안 함 | [Device.SystemInfo.npotSupport](/engine/6000.0/script-reference/unity-engine-device/system-info/npot-support.md)를 참조하십시오.                                                                               |
| **maxTextureSize**                                  | 지원 안 함 | [Device.SystemInfo.maxTextureSize](/engine/6000.0/script-reference/unity-engine-device/system-info/max-texture-size.md)를 참조하십시오.                                                                        |
| **maxCubemapSize**                                  | 지원 안 함 | [Device.SystemInfo.maxCubemapSize](/engine/6000.0/script-reference/unity-engine-device/system-info/max-cubemap-size.md)를 참조하십시오.                                                                        |
| **maxComputeBufferInputsVertex**                    | 지원 안 함 | [Device.SystemInfo.maxComputeBufferInputsVertex](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-buffer-inputs-vertex.md)를 참조하십시오.                                          |
| **maxComputeBufferInputsFragment**                  | 지원 안 함 | [Device.SystemInfo.maxComputeBufferInputsFragment](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-buffer-inputs-fragment.md)를 참조하십시오.                                      |
| **maxComputeBufferInputsGeometry**                  | 지원 안 함 | [Device.SystemInfo.maxComputeBufferInputsGeometry](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-buffer-inputs-geometry.md)를 참조하십시오.                                      |
| **maxComputeBufferInputsDomain**                    | 지원 안 함 | [Device.SystemInfo.maxComputeBufferInputsDomain](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-buffer-inputs-domain.md)을 참조하십시오.                                          |
| **maxComputeBufferInputsHull**                      | 지원 안 함 | [Device.SystemInfo.maxComputeBufferInputsHull](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-buffer-inputs-hull.md)을 참조하십시오.                                              |
| **maxComputeBufferInputsCompute**                   | 지원 안 함 | [Device.SystemInfo.maxComputeBufferInputsCompute](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-buffer-inputs-compute.md)를 참조하십시오.                                        |
| **maxComputeWorkGroupSize**                         | 지원 안 함 | [Device.SystemInfo.maxComputeWorkGroupSize](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-work-group-size.md)를 참조하십시오.                                                    |
| **maxComputeWorkGroupSizeX**                        | 지원 안 함 | [Device.SystemInfo.maxComputeWorkGroupSizeX](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-work-group-size-x.md)를 참조하십시오.                                                 |
| **maxComputeWorkGroupSizeY**                        | 지원 안 함 | [Device.SystemInfo.maxComputeWorkGroupSizeY](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-work-group-size-y.md)를 참조하십시오.                                                 |
| **maxComputeWorkGroupSizeZ**                        | 지원 안 함 | [Device.SystemInfo.maxComputeWorkGroupSizeZ](/engine/6000.0/script-reference/unity-engine-device/system-info/max-compute-work-group-size-z.md)를 참조하십시오.                                                 |
| **supportsAsyncCompute**                            | 지원 안 함 | [Device.SystemInfo.supportsAsyncCompute](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-async-compute.md)를 참조하십시오.                                                            |
| **supportsGraphicsFence**                           | 지원 안 함 | [Device.SystemInfo.supportsGraphicsFence](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-graphics-fence.md)를 참조하십시오.                                                          |
| **supportsAsyncGPUReadback**                        | 지원 안 함 | [Device.SystemInfo.supportsAsyncGPUReadback](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-async-gpu-readback.md)을 참조하십시오.                                                   |
| **supportsParallelPSOCreation**                     | 지원 안 함 | [Device.SystemInfo.supportsParallelPSOCreation](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-parallel-pso-creation.md)을 참조하십시오.                                             |
| **supportsRayTracing**                              | 지원 안 함 | [Device.SystemInfo.supportsRayTracing](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-ray-tracing.md)을 참조하십시오.                                                                |
| **supportsRayTracingShaders**                       | 지원 안 함 | [Device.SystemInfo.supportsRayTracingShaders](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-ray-tracing-shaders.md)를 참조하십시오.                                                 |
| **supportsInlineRayTracing**                        | 지원 안 함 | [Device.SystemInfo.supportsInlineRayTracing](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-inline-ray-tracing.md)을 참조하십시오.                                                   |
| **supportsSetConstantBuffer**                       | 지원 안 함 | [Device.SystemInfo.supportsSetConstantBuffer](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-set-constant-buffer.md)를 참조하십시오.                                                 |
| **hasMipMaxLevel**                                  | 지원 안 함 | [Device.SystemInfo.hasMipMaxLevel](/engine/6000.0/script-reference/unity-engine-device/system-info/has-mip-max-level.md)을 참조하십시오.                                                                       |
| **supportsMipStreaming**                            | 지원 안 함 | [Device.SystemInfo.supportsMipStreaming](/engine/6000.0/script-reference/unity-engine-device/system-info/supports-mip-streaming.md)을 참조하십시오.                                                            |
| **usesLoadStoreActions**                            | 지원 안 함 | [Device.SystemInfo.usesLoadStoreActions](/engine/6000.0/script-reference/unity-engine-device/system-info/uses-load-store-actions.md)를 참조하십시오.                                                           |

#### 최소 기기 정의

다음 기기 정의에는 모든 필수 프로퍼티가 포함되어 있고 선택적 프로퍼티는 없습니다. 이는 사용할 수 있는 최소한의 기기 정의입니다.

**참고**: 이 기기 정의는 방향 데이터를 제공하지 않으므로 시뮬레이터는 기기가 모든 방향을 지원하고 세이프 영역이 화면 전체를 덮는다고 가정합니다.

```lang-json
{
    "friendlyName": "Minimal Device",
    "version": 1,
    "screens": [
        {
            "width": 1080,
            "height": 1920,
            "dpi": 450.0
        }
    ],
    "systemInfo": {
        "operatingSystem": "Android"
    }
}
```

#### 완전한 기기 정의

다음 기기 정의에는 모든 필수 및 선택적 프로퍼티가 포함되어 있습니다.

```lang-json
{
    "friendlyName": "Apple iPhone XR",
    "version": 1,
    "screens": [
        {
            "width": 828,
            "height": 1792,
            "navigationBarHeight": 0,
            "dpi": 326.0,
            "orientations": [
                {
                    "orientation": 1,
                    "safeArea": {
                        "serializedVersion": "2",
                        "x": 0.0,
                        "y": 68.0,
                        "width": 828.0,
                        "height": 1636.0
                    },
                    "cutouts": [
                        {
                            "serializedVersion": "2",
                            "x": 184.0,
                            "y": 1726.0,
                            "width": 460.0,
                            "height": 66.0
                        }
                    ]
                },
                {
                    "orientation": 3,
                    "safeArea": {
                        "serializedVersion": "2",
                        "x": 88.0,
                        "y": 42.0,
                        "width": 1616.0,
                        "height": 786.0
                    },
                    "cutouts": [
                        {
                            "serializedVersion": "2",
                            "x": 0.0,
                            "y": 184.0,
                            "width": 66.0,
                            "height": 460.0
                        }
                    ]
                },
                {
                    "orientation": 4,
                    "safeArea": {
                        "serializedVersion": "2",
                        "x": 88.0,
                        "y": 42.0,
                        "width": 1616.0,
                        "height": 786.0
                    },
                    "cutouts": [
                        {
                            "serializedVersion": "2",
                            "x": 1726.0,
                            "y": 184.0,
                            "width": 66.0,
                            "height": 460.0
                        }
                    ]
                }
            ],
            "presentation": {
                "overlayPath": "Apple iPhone 11_Overlay.png",
                "borderSize": {
                    "x": 51.0,
                    "y": 51.0,
                    "z": 51.0,
                    "w": 51.0
                }
            }
        }
    ],
    "systemInfo": {
        "deviceModel": "iPhone11,8",
        "deviceType": 1,
        "operatingSystem": "iOS 12.0",
        "operatingSystemFamily": 0,
        "processorCount": 6,
        "processorFrequency": 0,
        "processorType": "arm64e",
        "supportsAccelerometer": true,
        "supportsAudio": true,
        "supportsGyroscope": true,
        "supportsLocationService": true,
        "supportsVibration": true,
        "systemMemorySize": 2813,
        "unsupportedIdentifier": "n/a",
        "graphicsDependentData": [
            {
                "graphicsDeviceType": 16,
                "graphicsMemorySize": 1024,
                "graphicsDeviceName": "Apple A12 GPU",
                "graphicsDeviceVendor": "Apple",
                "graphicsDeviceID": 0,
                "graphicsDeviceVendorID": 0,
                "graphicsUVStartsAtTop": true,
                "graphicsDeviceVersion": "Metal",
                "graphicsShaderLevel": 50,
                "graphicsMultiThreaded": true,
                "renderingThreadingMode": 0,
                "hasHiddenSurfaceRemovalOnGPU": true,
                "hasDynamicUniformArrayIndexingInFragmentShaders": true,
                "supportsShadows": true,
                "supportsRawShadowDepthSampling": true,
                "supportsMotionVectors": true,
                "supports3DTextures": true,
                "supports2DArrayTextures": true,
                "supports3DRenderTextures": true,
                "supportsCubemapArrayTextures": true,
                "copyTextureSupport": 31,
                "supportsComputeShaders": true,
                "supportsGeometryShaders": false,
                "supportsTessellationShaders": true,
                "supportsInstancing": true,
                "supportsHardwareQuadTopology": false,
                "supports32bitsIndexBuffer": true,
                "supportsSparseTextures": false,
                "supportedRenderTargetCount": 8,
                "supportsSeparatedRenderTargetsBlend": true,
                "supportedRandomWriteTargetCount": 8,
                "supportsMultisampledTextures": 1,
                "supportsMultisampleAutoResolve": false,
                "supportsTextureWrapMirrorOnce": 0,
                "usesReversedZBuffer": true,
                "npotSupport": 2,
                "maxTextureSize": 16384,
                "maxCubemapSize": 16384,
                "maxComputeBufferInputsVertex": 8,
                "maxComputeBufferInputsFragment": 8,
                "maxComputeBufferInputsGeometry": 0,
                "maxComputeBufferInputsDomain": 8,
                "maxComputeBufferInputsHull": 8,
                "maxComputeBufferInputsCompute": 8,
                "maxComputeWorkGroupSize": 1024,
                "maxComputeWorkGroupSizeX": 1024,
                "maxComputeWorkGroupSizeY": 1024,
                "maxComputeWorkGroupSizeZ": 1024,
                "supportsAsyncCompute": false,
                "supportsGraphicsFence": true,
                "supportsAsyncGPUReadback": true,
                "supportsParallelPSOCreation": true,
                "supportsRayTracing": false,
                "supportsRayTracingShaders": false,
                "supportsInlineRayTracing": false,
                "supportsSetConstantBuffer": true,
                "hasMipMaxLevel": true,
                "supportsMipStreaming": true,
                "usesLoadStoreActions": true,
                "supportedTextureFormats": [1, 2, 3, 4, 5],
                "supportedRenderTextureFormats": [1, 2, 3, 4, 5],
                "ldrGraphicsFormat": 59,
                "hdrGraphicsFormat": 74
            }
        ]
    }
}
```

## 기기 오버레이 생성

기기 오버레이는 기기 화면의 테두리와 노치, 펀치아웃 및 사각형 화면에 추가되는 기타 요소를 포함하는 이미지입니다. 이를 필요에 따라 기기 정의와 함께 사용하여 하드웨어 요소가 기기 화면을 가로막는 방식을 시각화하고 이를 통해 터치 입력이 작동하지 않는 지점을 결정할 수 있습니다.

기기 시뮬레이터는 투명 픽셀을 탭할 수 있는 화면 영역으로 해석하고 다른 컬러의 불투명 픽셀을 하드웨어가 방해하는 영역으로 해석합니다. 텍스처 자체는 어떤 모양이든 될 수 있습니다.

다음 예제는 두 iPhone 모델의 기기 오버레이를 보여줍니다.

**참고**: 다음 예시에서는 탭할 수 있는 화면 영역에 Unity의 기본 스카이박스를 표시하여 기기 오버레이를 사용할 때 표시되는 사항을 모방합니다. 실제 기기 오버레이에서 이러한 픽셀은 투명해야 합니다.

| Apple iPhone 8 오버레이                                                                                       | Apple iPhone XS 오버레이                                                                                       |
| --------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| &#xA;**Frame:**&#xA;![](/api/media?file=/engine/6000.0/media/images/device-simulator-overlay-iphone8.png) | &#xA;**Frame:**&#xA;![](/api/media?file=/engine/6000.0/media/images/device-simulator-overlay-iphonexs.png) |

### 기기 오버레이 사용

기기 오버레이 텍스처를 만든 후 기기 정의와 함께 사용하려면 먼저 기기 오버레이 텍스처 파일을 프로젝트로 가져와야 합니다.

**참고**: 기기 시뮬레이터가 기기 오버레이 텍스처를 로드할 때 **읽기/쓰기** 활성화를 시도합니다. 활성화가 불가능한 경우 기기 시뮬레이터는 텍스처를 표시하지만 텍스처를 사용하여 입력을 마스킹할 수 없습니다. 즉, 기기 오버레이가 마스킹을 적용해야 하는 화면의 노치 및 기타 영역을 클릭하면 기기 시뮬레이터가 입력을 감지합니다. 이를 방지하려면 기기 오버레이 텍스처를 임포트할 때 Texture Import Settings 창에서 **Read/Write**를 활성화합니다.

기기 오버레이 텍스처가 프로젝트에 있을 때 기기 정의 파일을 열고 해당 기기가 지원하는 화면을 정의하는 오브젝트에서 [presentation](#presentation) 프로퍼티를 추가합니다. 여기에서 이미지 파일의 경로(`overlayPath`)와 테두리 크기(`borderSize`)를 설정합니다. 이를 수행하는 방법의 예는 다음 기기 정의 파일을 참조하십시오.

```lang-json
{
    "friendlyName": "Minimal Device with Overlay",
    "version": 1,
    "screens": [
        {
            "width": 1080,
            "height": 1920,
            "dpi": 450.0,
            "presentation": {
                "overlayPath": "Overlays/MinimalDeviceOverlay.png",
                "borderSize": {
                    "x": 51.0,
                    "y": 51.0,
                    "z": 51.0,
                    "w": 130.0
                }
            }
        }
    ],
    "systemInfo": {
        "operatingSystem": "Android"
    }
}
```

**참고**: 기기 오버레이 텍스처 파일의 경로는 기기 정의 파일을 기준으로 하거나 Unity 프로젝트의 **Assets** 또는 **Packages** 디렉토리를 포함하는 디렉토리를 기준으로 할 수 있습니다. 예를 들어 디바이스 정의 파일이 **Assets/Devices** 디렉토리에 있고 디바이스 오버레이 파일이 **Assets/Devices/Overlays** 디렉토리에 있는 경우 다음 파일 경로는 모두 유효합니다.

* 기기 정의 파일 기준: **Overlays/MinimalDeviceOverlay.png**
* **Assets** 디렉토리가 포함된 디렉토리 기준: **Assets/Devices/Overlays/MinimalDeviceOverlay.png**
