как вращать камеру / мир, чтобы сфокусироваться на любом объекте - PullRequest
0 голосов
/ 07 октября 2019

Я хочу сделать что-то похожее на это, и у меня проблема с вращением камеры / сцены (я пробовал оба). Проблема, с которой я сталкиваюсь, заключается в том, что мы больше не можем устанавливать поворот камеры в рамке, и я попытался обернуть ее в тег a-entity, который я буду называть camera-rig и поворачивать его, однако, если пользователь взаимодействует с камерой и затем нажимает накнопка, на которой объект, который должен быть в фокусе, не будет в фокусе, может кто-нибудь помочь мне с этим

что я хочу сделать ( нажмите здесь )

что у меня естьсделано ( нажмите здесь )

Чтобы повернуть мир в глюке, пожалуйста, нажмите на кнопку представить в сцене

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Анимация взгляда на движение к цели немного сложнее. Я в основном получил его на работу, но есть некоторые проблемы. глюк здесь

0 голосов
/ 08 октября 2019

Да, это правда, что look-controls переопределяет компонент вращения. Но вы все равно можете установить поворот камеры с помощью команд THREEjs.

    AFRAME.registerComponent('camcontrol',{     
        init: function(){
            let self = this;
            this.el.addEventListener('loaded', function(){
                self.cam3d = self.el.object3D.children[0];
            });
            this.el.addEventListener('animationcomplete__look', function(){
                self.data.animactive = false;
            });
        },
        update: function(){
            if (this.data.animactive){
                let rot = this.data.rot;
                // console.log('update: rot ', rot);
                let euler = new THREE.Euler( rot.x, rot.y, rot.z, 'ZXY');
                this.cam3d.setRotationFromEuler(euler);
            }
        },
        lookAt: function(pos){          
            this.cam3d.lookAt(pos.x, pos.y, pos.z);         
        }
    });

глюк здесь

...