2017-01-29 1 views
2

J'ai écrit quelques outils à utiliser dans Unity pour l'édition de niveau dans mon projet. Mais lors de l'ouverture du projet sur un Mac, il y a une chose qui semble se comporter différemment. Obtenir les coordonnées dans la scène semblent fonctionner de la même façon, mais quand je l'appelleUnity ScreenToWorldPoint se comporte différemment sur Mac (comparé au PC)?

camera.ScreenToWorldPoint (posInScene)

sous Windows, la position correcte est retournée, mais sur le mac, il retourne tout autre chose. Des idées, quelle pourrait être la raison de cela? Ou comment je pourrais réparer ça? Le code est exécuté dans OnSceneGUI. Bien sûr, si les choses doivent être écrites différemment pour un mac, alors je vais juste faire en sorte que le code compile la plateforme. Comprendre la raison de la différence serait bien sûr aussi bien. Une chose peut-être liée que j'ai remarqué est que camera.rect est toujours camera.rect (x: 0.00, y: 0.00, width: 1.00, height: 1.00) sur PC, mais pour une raison étrange sur un mac pour les événements "Layout" c'est (x: 0.00, y: -0.99, largeur: 2.00, hauteur: 2.00). Quelqu'un pourrait-il expliquer cela? : o

Répondre

1

Je ne sais pas quelle est la cause première de ce problème, mais la solution de contournement consiste à utiliser HandleUtility.GUIPointToWorldRay au lieu de camera.ScreenToWorldPoint.