Untuk menambahkan perangkat baru ke Simulator Perangkat, Anda membuat definisi perangkat dan overlay perangkat.
Definisi perangkat adalah file teks dengan ekstensi .device
dalam proyek Unity Anda. Ini mengandung JSON yang menggambarkan sifat perangkat.
Overlay perangkat adalah gambar yang mengandung perbatasan layar perangkat, bersama-sama dengan notches, punchout, dan penambahan lain untuk persegi panjang layar. Anda dapat secara opsional menggunakannya dengan definisi perangkat untuk memvisualisasikan bagaimana elemen perangkat menghalangi layar perangkat, dan untuk menentukan ketika sentuh input gagal sebagai hasilnya.
Definisi perangkat adalah file JSON yang mewakili perangkat. Ini memiliki sifat yang diperlukan dan beberapa sifat opsional. Jika file definisi perangkat berisi kesalahan, kesalahan muncul di InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary ketika Anda memilih file.
Property | Required | Description |
---|---|---|
friendlyName | Yes | Nama untuk ditampilkan dalam UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info Lihat di Glossary untuk perangkat ini. |
version | Yes | Menunjukkan versi file definisi perangkat. 1 . |
screens | Yes | Daftar objek yang masing-masing menggambarkan layar untuk mensimulasikan perangkat untuk. Ini harus berisi setidaknya satu layar. Untuk informasi tentang skema setiap objek layar, lihat screen. |
systemInfo | Yes | Sebuah objek yang menggambarkan kemampuan perangkat. Nilai dalam peta objek ini menjadi SystemInfo. Untuk informasi tentang skema objek sistemInfo, lihat sistem Sitemap. |
Property | Required | Description |
---|---|---|
width | Yes | Lebar, dalam pixelsUnit terkecil dalam gambar komputer. Ukuran piksel tergantung pada resolusi layar Anda. Pencahayaan pixel dihitung pada setiap piksel layar. More info Lihat di Glossary, dari layar. |
height | Yes | Tinggi, dalam piksel, dari layar. |
navigationBarHeight | No | Tinggi, dalam pixel, dari bar navigasi Android layar on-screen yang muncul di beberapa perangkat ketika tidak di layar penuh. |
dpi | Yes | Dpi layar. |
orientations | No | Daftar objek yang masing-masing menggambarkan orientasi layar dapat mensimulasikan. Jika Anda tidak menetapkan nilai untuk properti ini, layar mendukung semua orientasi. Untuk informasi tentang skema setiap objek orientasi, lihat orientation. |
presentation | No | Sebuah objek yang menggambarkan overlay perangkat. Untuk informasi tentang skema objek ini, lihat presentation. |
Properties | Required | Description |
---|---|---|
orientation | Yes | Orientasi layar. Nilai properti ini adalah jumlah yang peta ke ScreenOrientation enum. |
safeArea | No | Sebuah Rect yang menentukan area yang aman dari layar. Jika Anda tidak menetapkan nilai untuk properti ini, simulator menganggap seluruh layar aman. |
cutouts | No | Daftar Rect yang menentukan area layar yang tidak berfungsi untuk menampilkan konten. |
Property | Required | Description |
---|---|---|
overlayPath | No | Jalur relatif dari file definisi perangkat ke gambar untuk digunakan sebagai overlay perangkat. |
borderSize | No | Jarak, dalam piksel, dari overlay ke mana layar dimulai. |
Sifat dalam objek ini menggambarkan kemampuan dan informasi sistem perangkat. Karena mereka menggambarkan informasi sistem, banyak dari mereka peta properti di SystemInfo.
Property | Required | Description |
---|---|---|
deviceModel | No | See Perangkat.SystemInfo.deviceModel. |
deviceType | No | See Perangkat.SystemInfo.deviceType. |
operatingSystem | Yes | See Perangkat.SystemInfo.operatingSystem. |
operatingSystemFamily | No | See Perangkat.SistemInfo.operatingSystemFamily. |
processorCount | No | See SiteInfo.processorCount. |
processorFrequency | No | See Perangkat.Info.processorFrequency. |
processorType | No | See Perangkat.SistemInfo.processorType. |
supportsAccelerometer | No | See Perangkat.Info.supportsAccelerometer. |
supportsAudio | No | See Perangkat.SystemInfo.supportsAudio. |
supportsGyroscope | No | See Perangkat.Info.supportsGyroscope. |
supportsLocationService | No | See Perangkat.SistemInfo.supportsLocationService. |
supportsVibration | No | See Perangkat.SistemInfo.supportsVibration. |
systemMemorySize | No | See SiteInfo.systemMemorySize. |
unsupportedIdentifier | No | See Device.SystemInfo.unsupportedIdentifier. |
graphicsDependentData | No | Daftar objek yang masing-masing menjelaskan API grafis yang mendukung perangkat. Untuk informasi tentang skema setiap objek, lihat Login Login Login. |
Sifat dalam objek menggambarkan API grafis yang mendukung perangkat.
Definisi perangkat berikut mengandung setiap properti yang diperlukan dan tidak ada sifat opsional. Ini adalah definisi perangkat minimum yang dapat Anda miliki.
Note: Definisi perangkat ini tidak menyediakan data orientasi, sehingga simulator mengasumsikan perangkat mendukung semua orientasi dan bahwa daerah yang aman mencakup seluruh layar.
{
"friendlyName": "Minimal Device",
"version": 1,
"screens": [
{
"width": 1080,
"height": 1920,
"dpi": 450.0
}
],
"systemInfo": {
"operatingSystem": "Android"
}
}
Definisi perangkat berikut mengandung setiap properti yang diperlukan dan opsional.
{
"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,
"supportsRayTracing": 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
}
]
}
}
Overlay perangkat adalah gambar yang mengandung batas layar perangkat dan fitur lain seperti notches, meninju, dan tambahan lainnya untuk persegi panjang layar. Anda dapat secara opsional menggunakannya dengan definisi perangkat untuk memvisualisasikan bagaimana elemen perangkat menghalangi layar perangkat, dan untuk menentukan ketika sentuh input gagal sebagai hasilnya.
Simulator Perangkat menafsirkan piksel transparan sebagai area layar yang dapat Anda ketuk, dan opaque piksel warna lain sebagai area yang menghalangi perangkat keras. Tekstur itu sendiri bisa menjadi bentuk apa pun.
Contoh berikut menunjukkan overlay perangkat untuk dua model iPhone.
Note: Untuk meniru apa yang Anda lihat ketika Anda menggunakan overlay perangkat, contoh ini menampilkan default Unity di area layar di mana Anda dapat tab. Dalam overlay perangkat nyata, piksel ini harus transparan.skyboxJenis khusus Bahan yang digunakan untuk mewakili langit. Biasanya enam sisi. More info
Lihat di Glossary in the area of the screen where you can tab. In a real device overlay, these pixels should be transparent.
Apple iPhone 8 Overlay | Apple iPhone XS Overlay |
---|---|
Setelah Anda membuat tekstur overlay perangkat, untuk menggunakannya dengan definisi perangkat, Anda harus mengimpor file tekstur overlay perangkat ke proyek Anda.
Note: Ketika Perangkat Simulator memuat tekstur overlay perangkat, upaya untuk mengaktifkan Read/Write untuk itu. Jika ini tidak mungkin, Simulator Perangkat menampilkan tekstur tetapi tidak dapat menggunakan tekstur untuk memasukkan masker. Ini berarti bahwa jika Anda mengklik notches dan area lain dari layar bahwa overlay perangkat harus masker, Simulator Perangkat mendeteksi input. Untuk memastikan ini tidak terjadi, ketika Anda mengimpor tekstur overlay perangkat, memungkinkan Read/Write di jendela Pengaturan Adapt Tekstur.
Ketika tekstur overlay perangkat berada di proyek Anda, buka file definisi perangkat dan, dalam objek yang mendefinisikan layar perangkat mendukung, tambahkan properti presentation. Di sini, set path ke file gambar (overlayPath
) dan ukuran perbatasan (borderSize
). Sebagai contoh cara melakukan ini, lihat file definisi perangkat berikut:
{
"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"
}
}
Note: Jalur ke file tekstur overlay perangkat dapat relatif terhadap file definisi perangkat, atau relatif ke direktori yang mengandung direktori Assets atau Packages dalam proyek Unity Anda. Misalnya, jika file definisi perangkat berada di direktori Assets/Devices dan file overlay perangkat berada di direktori Assets/Devices/Overlays, path file berikut keduanya valid: