Как правильно читать json файл в C#
Ребят, нашел данный код, но есть проблема в том, что код читается по "прямой" ссылке, которая после билда в Unity не работает. Как можно исправить код, чтобы он работал? public class DS4
{
// Gyroscope
public static ButtonControl gyroX = null;
public static ButtonControl gyroY = null;
public static ButtonControl gyroZ = null;
public static Gamepad controller = null;
public static Gamepad getConroller(string layoutFile = null)
{
// Read layout from JSON file
string layout = File.ReadAllText(layoutFile == null ? "Assets/Script/customLayout.json" : layoutFile);
// Overwrite the default layout
InputSystem.RegisterLayoutOverride(layout, "DualShock4GamepadHID");
var ds4 = Gamepad.current;
DS4.controller = ds4;
bindControls(DS4.controller);
return DS4.controller;
}
private static void bindControls(Gamepad ds4)
{
gyroX = ds4.GetChildControl<ButtonControl>("gyro X 14");
gyroY = ds4.GetChildControl<ButtonControl>("gyro Y 16");
gyroZ = ds4.GetChildControl<ButtonControl>("gyro Z 18");
}
public static Quaternion getRotation(float scale = 1)
{
float x = processRawData(gyroX.ReadValue()) * scale;
float y = processRawData(gyroY.ReadValue()) * scale;
float z = -processRawData(gyroZ.ReadValue()) * scale;
return Quaternion.Euler(x, y, z);
}
private static float processRawData(float data)
{
return data > 0.5 ? 1 - data : -data;
}
}
Ответы (1 шт):
Автор решения: Yaroslav
→ Ссылка
Создай лучше ScriptableObject описывыющий туже модель, как этот json для удобного редактирования и задайте на него ссылку в инспекторе для вашего класса.
Через JsonUtility его легко превратить в Json и скормить методу RegisterLayoutOverride.
ПланБ: public TextAsset MyJson;.
В любом случае, ссылку на файл задавайте в инспекторе.