- Laya.Tween.to方法
如果设置的默认返回对象池,记得不用的时候要手动clear掉,不然很容易报对象null
2.运动型粒子大小不符合预期
查找是否父节点也是运动物体,如果是,需要重新调节乘算因子
3.相机内模型丢失
注意检查相机的设置,观察模型是否在渲染范围内
4.模型闪烁
1)观察模型面片是否重合
2)修改相机near值为1的倍数
5.相机的平滑移动
有点麻烦,仿造unity的处理方式,这样相机就会一直以固定的距离一直平滑跟随人物模型运动。
其中this.camera是主相机
this.roleNode是人物模型
人物初始位置(0,0,800)
相机初始位置(0,1000,-1000)
平滑度可以调节movespeed
/** 处理相机跟随 */
onLateUpdate(){
if(!this.camera) return;
var movespeed = 0.008;
var newPos = new Laya.Vector3();
Laya.Vector3.add(this.roleNode.transform.position,new Laya.Vector3(0,1000,0),newPos);
//计算模型前方向量
var forward = new Laya.Vector3();
this.roleNode.transform.getForward(forward);
//计算相机到人物模型的距离
var distance = Laya.Vector3.distance(new Laya.Vector3(0,0,800),new Laya.Vector3(0,1000,-1000));
var distanceVector = new Laya.Vector3();
Laya.Vector3.multiply(forward,new Vector3(distance,distance,distance),distanceVector);
Laya.Vector3.add(newPos,distanceVector,newPos);
//相机坐标差值运算
var endPos = new Laya.Vector3();
Laya.Vector3.lerp(this.camera.transform.position,newPos,Laya.timer.delta*movespeed,endPos);
this.camera.transform.position = endPos;
//相机对着模型后屁股 y轴为up方向
this.camera.transform.lookAt(this.roleNode.transform.position,new Laya.Vector3(0,1,0),false);
}