J'ai ma caméra avec les paramètres initiaux ci-dessous: camera.lookAt (200f, 100f, -300f); camera.position.set (0f, 0f, 0f); et les instances de modèle affichées comme ci-dessous: image initiale

J'ai codé un bouton au clic et j'ai appelé l'ensemble des méthodes: camera.lookAt (200f, 100f, -300f); camera.position.set (0f, 0f, 0f);

Et l'écran est devenu comme ci-dessous: appeler à nouveau les méthodes de la caméra

Entre l'image initiale et le clic du bouton, je n'ai rien fait d'autre. Pour résoudre ce problème, j'ai essayé d'ajouter camera.up.set (xyz), camera.normalizedUp () mais je n'ai pas résolu le problème.

Toute suggestion? Merci d'avance.

0
Herman Tse 26 nov. 2017 à 11:53

3 réponses

Meilleure réponse

J'ai trouvé que ce ne sont pas les ModelInstances déplacées. C'est la caméra déplacée par le redimensionnement (). Dans le cadre de la méthode resize (), j'ai codé viewport.update (width, height, true) qui centrera la caméra dans la fenêtre et donc la caméra se déplacera sans mon avis. De plus, la skybox est codée de manière à ce qu'elle se déplace avec la caméra et donne l'impression que la caméra n'a pas bougé.

0
Herman Tse 28 nov. 2017 à 11:24

Vous définissez le même objet vectoriel de position de caméra sur l'objet de vecteur de position des instances de modèle. Ainsi, lorsque la caméra se déplace, les instances de modèle le font. Créez simplement un nouveau vecteur pour chaque instance de modèle, définissez sa position sur la position de la caméra myModelPos.set(camera.pos), et tout devrait bien se passer.

J'ai fait un exemple de mouvement de base mario 64 sur ce guthub, j'espère que cela vous aidera.

0
Hllink 27 nov. 2017 à 16:56

Essayez d'abord de définir la position, puis effectuez l'appel lookat ()

0
Andreas Toresäter 27 nov. 2017 à 01:57
47494452