Все это отлично работает при использовании Obi Fluid v6.0.1 в Unity 2021.3.31, но больше не работает при использовании Obi Fluid 6.5.4 в Unity 2022.3.28.
В старой версии я устанавливал вектор гравитации в методе void Update(), используя
Код: Выделить всё
if (Input.GetKey(KeyCode.W))
{
obiSolver.parameters.gravity = Quaternion.Euler(0, 0, zRotationRate * Time.deltaTime) * obiSolver.parameters.gravity;
}
obiSolver.PushSolverParameters();
Однако в новой версии это вообще не меняет параметр. Как ни странно, после нескольких проб и ошибок я обнаружил, что мне нужно использовать временную переменную Vector3, а затем установить параметр.
Код: Выделить всё
if (Input.GetKey(KeyCode.W))
{
TempGravityVector = Quaternion.Euler(0, 0, zRotationRate * Time.deltaTime) * TempGravityVector;
}
obiSolver.parameters.gravity = TempGravityVector;
obiSolver.PushSolverParameters();
PS Другие комбинации версий Оби и Unity я не пробовал, мне это показалось бы кошмаром.
Подробнее здесь: https://stackoverflow.com/questions/784 ... -particles