J'essaie de convertir un événement souris en événement VR Raycast.Input.mousePosition.x ou équivalent sur Raycast avec le canevas World Space
J'ai Input.mousePosition.x
& Input.mousePosition.y
comme coordonnée d'un événement de clic de souris. Je veux appliquer le même événement sur un hit VR Raycast.
J'ai le code suivant
Ray ray = new Ray(CameraRay.transform.position, CameraRay.transform.forward);
RaycastHit hit;
if (GetComponent<Collider>().Raycast(ray, out hit, 100)) {
Debug.Log ("True");
Vector3 point = camera.WorldToScreenPoint(hit.point);
} else {
Debug.Log ("False");
}
De l'raycast point de frapper, comment puis-je obtenir les coordonnées x-y équivalentes de l'endroit où le rayon frappe le collisionneur?
Mise à jour:
Le script suivant est attaché à un objet sélecteur de couleur dans ma configuration de l'unité pour Google Cardboard. En vol stationnaire sur le sélecteur de couleurs, je veux obtenir les coordonnées de l'endroit où le Raycast frappe le collisionneur (afin que je puisse obtenir la couleur dans cette coordonnée).
Question 1: Au FixedUpdate, j'ai une instruction if if (GetComponent<Collider>().Raycast(ray, out hit, 100))
et il est faux retour. Qu'est-ce que j'oublie ici?
Question 2: Ai-je raison de supposer que si le hit.point est réglé, je pourrais obtenir x, y, z du point où le rayon touche le collisionneur à être le point [0], point 1 et le point [2]?
J'ai essayé d'implémenter ceci, le code 'if (GetComponent() .Raycast (rayon, out hit, 100))' cependant retourne 'false'. Auriez-vous une idée de ce qui se passe? Semble mon code précédent avait également le même problème –
ptamzz
Attendez une seconde. Pourquoi utilisez-vous même Collider.Raycast()? Physics.Raycast() est ce que vous utiliseriez habituellement. Je ne peux pas vraiment faire une recherche détaillée pendant que je ne suis pas à la maison, mais essayez-le. –
Essayé 'Physics.Raycast (ray, out hit, 100)' aussi mais n'a pas fonctionné. C'est manger ma tête! Merci de m'avoir aidé. – ptamzz