Борьба со специфической c вещью здесь. Мне нужно изменить сцены, когда калибровка прошла успешно. Для этого я могу использовать:
if (someVariable == true)
{
SceneManager.LoadScene("MainScene");
}
Код, который вызывает начало калибровки:
private void Update()
{
if (Input.GetKeyDown(_startKey))
{
var calibrationStartResult = StartCalibration(
resultCallback: (calibrationResult) =>
Debug.Log("Calibration was " + (calibrationResult ? "successful" : "unsuccessful"))
);
Debug.Log("Calibration " + (calibrationStartResult ? "" : "not ") + "started");
}
}
Мне нужен способ использовать этот resultCallback внутри private void Update () для смены сцен, потому что resultCallback возвращает либо true, либо false, если калибровка моей системы VR прошла успешно. Кроме того, вот что StartCalibration () возвращает:
public bool StartCalibration(Vector3[] points = null, System.Action<bool> resultCallback = null)
Q: Как мне это кодировать, чтобы использовать логическое значение resultCallback для изменения сцены? Пока что он пишет в консоль, каким бы ни был результат, но мне не нужен этот вывод, если я могу заставить его автоматически менять сцену.
Я не очень опытен в C#.
Я пробовал следующее, но, конечно, это не работает:
private void Update()
{
if (Input.GetKeyDown(_startKey))
{
var calibrationStartResult = StartCalibration(
resultCallback: (calibrationResult) =>
Debug.Log("Calibration was " + (calibrationResult ? "successful" : "unsuccessful"))
if (calibrationResult == true)
{
SceneManager.LoadScene("MainScene");
}
);
Debug.Log("Calibration " + (calibrationStartResult ? "" : "not ") + "started");
}
}