Three.js: Problema ao definir camera.position para Vector3

Criado em 21 mai. 2017  ·  2Comentários  ·  Fonte: mrdoob/three.js

Descrição do problema

Percebi que ao definir a posição de PerspectiveCamera para THREE.Vector3 nada é exibido, mas quando eu defino os valores diretamente, funciona perfeitamente.

camera.position.set( 0, 0, 0 );

funciona, mas

var newVector = new THREE.Vector3(0, 0, 0)
camera.position.set(newVector);

não. Eu queria saber se isso é um bug?

Veja os dois JSFiddle a seguir:
L8-10: https://jsfiddle.net/4zqkn7yw/5/
L9: https://jsfiddle.net/4zqkn7yw/4/

Versão Three.js
  • [x] r82
Navegador
  • [x] Todos eles
  • [ ] Cromada
  • [ ] Raposa de fogo
  • [] Internet Explorer
SO
  • [x] Todos eles
  • [ ] Janelas
  • [ ] Mac OS
  • [] Linux
  • [] Android
  • [] iOS
Requisitos de hardware (placa gráfica, dispositivo VR, ...)
Question

Comentários muito úteis

Object3D position , rotation , quaternion e scale são imutáveis.

O seguinte padrão é inválido:

object.position = vector;

Em vez disso, você deve usar

object.position.set( x, y, z );

ou

object.position.copy( vector );

Veja Object3D.js .

Todos 2 comentários

Isso não é um bug. Experimente isto:

var newVector = new THREE.Vector3( 0, 0, 0 )
camera.position.copy( newVector );

Dê uma olhada na documentação do Vector3 para entender a API.

Object3D position , rotation , quaternion e scale são imutáveis.

O seguinte padrão é inválido:

object.position = vector;

Em vez disso, você deve usar

object.position.set( x, y, z );

ou

object.position.copy( vector );

Veja Object3D.js .

Esta página foi útil?
0 / 5 - 0 avaliações