Đầu vào SteamVR gần đây đã thay đổi hoàn toàn, giờ đây nó sử dụng Hành động và đây là hướng dẫn từng bước từ van về cách thiết lập nó.
Đây là một trong những cách (tốt nhất) để thăm dò ý kiến trong mã:
void Update(){
//NOTE: I could have used one-off events. But I used these constant Update() polls instead because if the VR Dashboard is on while the headset is taken off or put on,
//then the OnDown and OnUp events get eaten by the dashboard and will never reach this code in unity. (github issue here: https://github.com/ValveSoftware/openvr/issues/628)
// m_inputSourceDevice needs to be Any - there's no entry for "Headset", but the headset's sensors are reported under the Any "hand".
SteamVR_Input_Sources m_inputSourceDevice = SteamVR_Input_Sources.Any;
if(!m_isHeadsetOn && SteamVR_Input._default.inActions.Proximity_Sensor.GetState(m_inputSourceDevice)){
Debug.Log("Headset On.");
HeadsetOn();
}
else if(m_isHeadsetOn && !SteamVR_Input._default.inActions.Proximity_Sensor.GetState(m_inputSourceDevice)){
Debug.Log("Headset Off (cancellable)");
StartCoroutine(HeadsetOff());
}
}
Lưu ý rằng ngay từ bây giờ, có một lỗi ngăn bạn sử dụng SteamVR để gán Cảm biến tiệm cận cho một hành động nếu bạn có HTC Vive hoặc Vive Pro, mặc dù trớ trêu là nó hoạt động như dự định nếu bạn đang sử dụng nó với Tai nghe Oculus. Có một sửa chữa dễ dàng trên trang vấn đề github steamvr này .
Cũng lưu ý rằng mặc dù sự hợp nhất dựng sẵn OpenVR thường thực hiện những gì SteamVR đưa ra, nhưng hiện tại nó không cho phép bạn truy cập vào cảm biến tiệm cận. Điều duy nhất bạn có thể làm với OpenVR là kiểm tra EDeviceActivityLevel
như MichaelHouse đã giải thích trong câu trả lời của mình. Tuy nhiên, điều đó là vô ích vì mức độ duy nhất liên quan đến cảm biến prox là k_EDeviceActivityLevel_UserInteraction
nhưng nó là sự kết hợp của cả prox và con quay hồi chuyển, vì vậy theo OpenVR, tai nghe luôn tương tác với người dùng mãi mãi chỉ cần một làn gió nhẹ hoặc rung động nghiêng tai nghe cứ sau 10 giây lại có một chút.
[BIÊN TẬP]
Trong khi đó, một số thứ đã được sửa. Ví dụ, bây giờ có một mục cho người H'mông, thay vì Bất kỳ; và OpenVR có giá trị XRDevice.userPresence (mặc dù nó có thể không rõ ràng là cảm biến tiệm cận).