本帖最后由 Pepsi Cola 于 2023-6-30 13:45 编辑
分享一个点击场景里面的换装资源进行人物玩家换装
this.input = new Gameplay.TouchInput();
// 设置玩家控制器,使用前需调用一次
this.input.setPlayerController();
this.input.onTouchEnd.add((index, location, touchtype) => {
// 转换点击的屏幕坐标为3D世界坐标
const pos = InputUtil.convertScreenLocationToWorldSpace(location.x, location.y)
// 获得点击位置前方方向
const forV = pos.worldDirection;
// 计算点击位置朝向一定距离的终点位置
const endPos = pos.worldLocation.clone().add(forV.multiply(6000));
const hitInfo = Gameplay.lineTrace(pos.worldLocation, endPos, false, true, [], false, Gameplay.getCurrentPlayer());
if (hitInfo.length > 0) {
for (const hitResult of hitInfo) {
if (hitResult.gameObject.tag) {
/**给换装资源下面的正方体设置对应tag进行人物换装*/
const v2 = Gameplay.getCurrentPlayer().character.getAppearance() as Gameplay.HumanoidV2
v2.upperCloth.setMesh("63954", false)
}
}
}
})
但是射线检测在场景里面检测不到换装资源,这里我用了一个正方体放在换装资源下面,用于射线检测。
如果大家还有别的方法可以评论下
|