[]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的效果
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的效果
没有找到相关结果
已邀请:
要回复问题请先登录
2 个回复
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);
}