Я немного соленая. Я работаю над тем, чтобы заставить объекты, которые я отпускаю из рук в VR, использовать правильную скорость и угловую скорость контроллера, чтобы их движение было естественным. Это простой вопрос отслеживания угловой скорости и скорости контроллера и передачи его объекту при отпускании:
rigid.velocity = controller.currentVelocity;
rigid.angularVelocity = controller.currentAngularVelocity;
Однако, и здесь идет кикер, у меня также есть система локомоции, которая поворачивает CameraRig относительно головы игрока, и после этого все эти значения неверны и смещены относительно cameraRig следующим образом:
cameraRig.transform.RotateAround(headsetCamera.transform.position, Vector3.up, -(headsetCamera.transform.eulerAngles.y - lastHeadRot.y));
lastHeadRot = headsetCamera.transform.eulerAngles;
Я пытался найти некоторые ответы, подобные этому ( ref ) и этому ( ref ), но ни один из них не сработал. Любые предложения будут приветствоваться. При использовании других форм передвижения угловая скорость и скорость правильно устанавливаются для брошенных объектов, но не один раз я использовал rotateAround на cameraRig.