Ребят, нашел данный код, но есть проблема в том, что код читается по "прямой" ссылке, которая после билда в 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;
}
}
Вопрос задан
более трёх лет назад
421 просмотр