Obi Fluid в Unity — изменение вектора гравитации решателя не влияет на частицыC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Obi Fluid в Unity — изменение вектора гравитации решателя не влияет на частицы

Сообщение Anonymous »

У меня есть сцена в Unity, в которой используется Obi Fluid. Потоком жидкости можно управлять, вращая вектор гравитации решателя Obi в ответ на WSAD (или ввод гироскопа при работе на мобильном устройстве, который я не тестировал в новой версии, но который работал в старой). Обратите внимание, что изменение вектора гравитации более удобно программно, чем вращение объектов сцены, поскольку это означает, что мне будет легче использовать общий сценарий. Кроме того, он кажется более стабильным, чем вращающаяся геометрия.
Все это отлично работает при использовании 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();
(и еще три для других клавиш), и это работает нормально (потом я записываю вектор гравитации в текстовое поле) — частицы движутся в ответ на изменение направления силы тяжести.< /p>
Однако в новой версии это вообще не меняет параметр. Как ни странно, после нескольких проб и ошибок я обнаружил, что мне нужно использовать временную переменную Vector3, а затем установить параметр.

Код: Выделить всё

if (Input.GetKey(KeyCode.W))
{
TempGravityVector = Quaternion.Euler(0, 0, zRotationRate * Time.deltaTime) * TempGravityVector;
}

obiSolver.parameters.gravity = TempGravityVector;
obiSolver.PushSolverParameters();
(Очевидно, после установки TempGravityVector = obiSolver.parameters.gradity; в методе Start()). Это действительно устанавливает параметр гравитации. Однако это вообще не влияет на частицы. Вектор гравитации меняется, но частицы, кажется, не знают об этом, и я не понимаю, почему. У кого-нибудь есть идеи?
PS Другие комбинации версий Оби и Unity я не пробовал, мне это показалось бы кошмаром.

Подробнее здесь: https://stackoverflow.com/questions/784 ... -particles
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»