[]3d中 缓动往一个点转向并移动的问题

在unity中没问题. laya中没实现. 高手帮我看看问题在哪?
var out:Quaternion=new Quaternion();
var out1:Quaternion=new Quaternion();
var out2:Quaternion=new Quaternion();
var dir:Vector3=new Vector3() ;
Vector3.subtract(transform.position,sphere3D.transform.position,dir);
Quaternion.rotationLookAt(dir,Vector3.Up,out);
Quaternion.slerp(transform.rotation,out, Laya.timer.delta/1000,out1);
transform.rotation = out1;
transform.translate(v3)
 
附件中是unity的效果 
已邀请:

Aar0n

赞同来自:

可用缓动,或者定时器,很好实现的,你是想在这个思路的基础上做还是要实现就行?
最好上传demo 直接在项目上给你改,
或者
用tween 修改 数值,在参数中的update回调中再将这些数值赋给对象的坐标和旋转值。
需求说详细,才好给方案

谢春

赞同来自:

举个例子:缓动摄像机
        /**
         * 缓动摄像机
         * @param z z轴移动到的位置
         * @param speed 移动速度
         */
        public setCamera(z: number, speed?: number) {
            if (speed === void 0) { speed = 0.3; }
            var thiz = this;
            //创建一个Tween的属性对像
            var countdown = { value: thiz.mCamera.transform.position.z };
            //缓动动画 参数1:属性对象;参数2:终止值(对象);参数3:持续时长,ms;参数4:缓动特效(比如回弹,加速等)...
            //其中参数2中,有个update属性,值为Handler,即为动画执行时的回调,该回调中,可获取当前属性对象的属性值
            Laya.Tween.to(countdown, {
                value: z + 2, update: new Laya.Handler(this, function () {
                    thiz.mCamera.transform.position = (new Laya.Vector3(2, 2, countdown.value));
                    //移动灯光位置
                    thiz.light.transform.position = (new Laya.Vector3(-2, -2, countdown.value - 2));
                    // thiz.mCamare.transform.lookAt(new Laya.Vector3(0, 0, 0), new Laya.Vector3(0, countdown.value, 1), false);
                })
            }, speed * 1000, Laya.Ease.linearIn);
        }

要回复问题请先

商务合作
商务合作