以下代码可实现物体转向,
let tempQuat: Quat = new Quat();
Quat.rotateAroundLocal(tempQuat, startRot, axis, angle);
Quat.normalize(tempQuat, tempQuat);
this.node.setRotation(tempQuat);
其中,Quat.rotateAroundLocal(tempQuat, startRot, axis, angle); 有一个angle参数
目标:3D场景中有两个物体,让一个物体转一定角度,面向另一物体.
问题:如何求两个物体的角度?
以下两种尝试都不对:
一、去掉y轴,直接计算两个平面弧度
let source:Vec3 = new Vec3(this.enemy.getWorldPosition().x,0,this.enemy.getWorldPosition().z);
let target:Vec3 = new Vec3(this.node.getWorldPosition().x,0,this.node.getWorldPosition().z);
Vec3.normalize(source, source);
Vec3.normalize(target, target);
let angle:number = Math.atan2(target.z - source.z, target.x - source.x);
二、用let angle: number = Vec3.angle(target, source);
求解?