71 lines
1.8 KiB
Markdown
71 lines
1.8 KiB
Markdown
---
|
|
uid: input-system-add-layout-from-json
|
|
---
|
|
|
|
# Add a layout from JSON
|
|
|
|
You can also create a layout from a JSON string that contains the same information. This is mostly useful if you want to be able to store and transfer layout information separate from your code - for instance, if you want to be able to add support for new Devices dynamically without making a new build of your application. You can use [`InputControlLayout.ToJson()`](xref:UnityEngine.InputSystem.Layouts.InputControlLayout) and [`InputControlLayout.FromJson()`](xref:UnityEngine.InputSystem.Layouts.InputControlLayout) to convert layouts to and from the format.
|
|
|
|
The same layout as above looks like this in JSON format:
|
|
|
|
```
|
|
{
|
|
"name": "MyDevice",
|
|
"format": "MDEV",
|
|
"controls": [
|
|
{
|
|
"name": "button1",
|
|
"layout": "Button",
|
|
"offset": 0,
|
|
"bit": 0,
|
|
},
|
|
{
|
|
"name": "button2",
|
|
"layout": "Button",
|
|
"offset": 0,
|
|
"bit": 1,
|
|
},
|
|
{
|
|
"name": "dpad",
|
|
"layout": "Dpad",
|
|
"offset": 0,
|
|
"bit": 2,
|
|
"sizeInBits": 4,
|
|
},
|
|
{
|
|
"name": "dpad/up",
|
|
"offset": -1,
|
|
"bit": 2,
|
|
},
|
|
{
|
|
"name": "dpad/down",
|
|
"offset": -1,
|
|
"bit": 3,
|
|
},
|
|
{
|
|
"name": "dpad/left",
|
|
"offset": -1,
|
|
"bit": 4,
|
|
},
|
|
{
|
|
"name": "dpad/right",
|
|
"offset": -1,
|
|
"bit": 5,
|
|
},
|
|
{
|
|
"name": "stick",
|
|
"layout": "Stick",
|
|
"offset": 4,
|
|
"format": "VEC2",
|
|
},
|
|
{
|
|
"name": "trigger",
|
|
"layout": "Axis",
|
|
"offset": 12,
|
|
"format": "BYTE",
|
|
|
|
}
|
|
]
|
|
}
|
|
```
|