Я искал весь интернет, но не нашел ничего полезного. Я хочу «сделать» сенсорный ввод в положение, когда луч попадает на объект, и только если он что-то наносит. Надеюсь, вы понимаете, что я имею в виду, и я знаю, что это не так часто бывает с raycast, но мне это нужно для htc vive. Заранее спасибо. или проще сказать, как я могу коснуться экрана из моего сценария, значит, без особого касания экрана?Не прикасайтесь к точке, где луч достигает единства
0
A
ответ
1
Вы можете использовать camera.ScreenToWorldPoint (новый вектор3 (позиция, которую вы хотите проверить щелчком)) в вашем коде.
//you can change the start position in your code.
var startPos =
camera.ScreenToWorldPoint(new Vector3(2,2, 10));
затем вы можете использовать эту функцию для обнаружения щелчка без реального нажатия.
public void CalculateEndPositions(Vector3 start)
{
//forward
var rayForward = new Ray(start, Vector3.up);
Debug.DrawRay(start,Vector3.up, Color.green);
RaycastHit rayForwardInfo;
if (Physics.Raycast(rayForward, out rayForwardInfo))
{
Debug.Log("Collider Name = " + rayForwardInfo.collider.name);
}
}
Надеюсь, этот код полезен для вас.