您好
我试图将舞台3D中的一个对象(我正在使用away3d框架)移动到空间中的一个点(向量3d),它很好并且正常工作,但我希望该对象将它变成“前脸”到那一点,所以它将远离“寻找”并“走”到它。
移动对象的代码:
Tweener.addTween(
mainReference.carHolder,
{
time:.1,
x:points[point].x,
y:points[point].y,
z:points[point].z,
transition:"Linear",
onComplete:function():void
{
moveCar(point + 1);
}
});
我已尝试过:
var angleX:Number = Vector3D.angleBetween(
new Vector3D(
mainReference.carHolder.x,
mainReference.carHolder.y,
mainReference.carHolder.z),
new Vector3D(
mainReference.carHolder.x,
points[point].y,
points[point].z)
) * 180 / Math.PI;
var angleY:Number = Vector3D.angleBetween(
new Vector3D(
mainReference.carHolder.x,
mainReference.carHolder.y,
mainReference.carHolder.z),
new Vector3D(
points[point].x,
mainReference.carHolder.y,
points[point].z)
) * 180 / Math.PI;
var angleZ:Number = Vector3D.angleBetween(
new Vector3D(
mainReference.carHolder.x,
mainReference.carHolder.y,
mainReference.carHolder.z),
new Vector3D(
points[point].x,
points[point].y,
mainReference.carHolder.z)
) * 180 / Math.PI;
var angle:Number = Vector3D.angleBetween(
new Vector3D(
mainReference.carHolder.x,
mainReference.carHolder.y,
mainReference.carHolder.z),
new Vector3D(
points[point].x,
points[point].y,
points[point].z)
) / 180 * Math.PI;
mainReference.carHolder.eulers = new Vector3D(
points[point].x,
points[point].y,
points[point].z);
mainReference.carHolder.rotateTo(
points[point].x,
points[point].y,
points[point].z);
答案 0 :(得分:0)
您是否尝试过lookAt()方法?
来自文档:
<强>的lookAt()强>
public function lookAt(target:Vector3D,upAxis:Vector3D = null):void
旋转3d对象以面向相对于父ObjectContainer3D的本地坐标定义的点。
参数
target:Vector3D - 定义要查看的点的向量
upAxis:Vector3D(默认= null) - 用于在旋转发生后定义所需的3d对象向上方向的可选向量
这应该允许您在旅行时让对象看目标位置。