我有一个代码,在控制台中的three.js中说:
已弃用:Matrix4的.multiplyVector3()已被删除。使用vector.applyMatrix4(矩阵)或vector.applyProjection(矩阵)代替。
但我不知道该怎么做。
这是我的代码:
var rotation_matrixc = new THREE.Matrix4();
rotation_matrixc.extractRotation(CHROMEboyPC.matrix);
var cam_vectorc = new THREE.Vector3( 100 , 30 , 5);
var final_cam_vectorc = rotation_matrixc.multiplyVector3(cam_vectorc);
camera.position.copy(CHROMEboy.position ).add(final_cam_vectorc );
camera.lookAt(CHROMEboy.position);
如何使用建议的方法编写等效代码。
答案 0 :(得分:6)
您使用相反的表示法:
使用矢量.applyMatrix3或.applyMatrix4函数旋转矢量
var final_cam_vectorc = cam_vectorc.applyMatrix4( rotation_matrixc );
答案 1 :(得分:0)
要替换multipleVector3,请简化遵循方法并稍微澄清前面的答案:
cameraOffset是一个Vector,其中包含摄像机相对于后跟摄像机的相对位置。
“玩家”是跟随的对象。您可能需要增加偏移量。
var cameraOffset = new THREE.Vector3(0, 1, 2.5);
// modify it relative to the followed object
var new_cam_position = cameraOffset.applyMatrix4( player.matrix );
// copy the new position vector to the camera
camera.position.copy(new_cam_position);
// look at
camera.lookAt(player.position);