@Jancpoot

Как читать json файл в Unity3d?

Ребят, нашел данный код, но есть проблема в том, что код читается по "прямой" ссылке, которая после билда в 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("gyro X 14");
gyroY = ds4.GetChildControl("gyro Y 16");
gyroZ = ds4.GetChildControl("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;
}
}
  • Вопрос задан
  • 44 просмотра
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Положить файл в StreamingAssets и читать оттуда, используя относительные пути.
Можно еще через Resources.Load
Ответ написан
Pixel_Guy
@Pixel_Guy
C# программист разрабатывающий игры на unity
Используй Application.dataPath для получения пути папки проекта. А вообще, лучше json перенести в другое место, так как при билде юнити "в себя" это все запечатает.

Можно перенести весь текст json в string поле и его уже передавать, но вариант опять же не динамический.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы