[]射线检测有偏差

Laya.stage.scaleMode = Laya.Stage.SCALE_SHOWALL;
设置了这种scaleMode之后,计算射线就会出现偏差
按照官方例子设置Laya.stage.scaleMode = Laya.Stage.SCALE_FULL;就不会有偏差
已邀请:

Aar0n

赞同来自:

偏差指的是什么偏差?

chen541788

赞同来自:

碰撞检测会偏移

myala34

赞同来自:

请问这个问题有解决吗?

aSong

赞同来自:

要射出的点进行以下处理之后就可以了
this.point = this.changeToClientWorld(this.point)
//在showall模式下将屏幕坐标转换到client空间坐标,为射线检测偏差使用
public changeToClientWorld(input:Laya.Vector2):Laya.Vector2
{
let ratioX = (input.x / Laya.stage.width);
let ratioY = (input.y / Laya.stage.height);
let clientWidth = Laya.stage.clientScaleX * Laya.stage.width
let clientHeight = Laya.stage.clientScaleY * Laya.stage.height
let singleX = (Laya.Browser.width - clientWidth)/2;
let singleY = (Laya.Browser.height - clientHeight)/2;
input.x = ratioX * clientWidth;//讲道理要加singleX,但是不加效果正常,看效果自行修改
input.y = ratioY * clientHeight;
return input;
}

要回复问题请先

商务合作
商务合作