猫史档案馆


✨【技术帖子】如何实时的获取玩家的射线方向?举例:通过方向检测视角说对的方块(不需要onPres)✨

用户:全能代码师全能代码师查看:13 回复:8 评论:13 创建时间:2022-08-26T12:54:01


function raycastE(entity = new Box3Entity) {
    var x = entity.player.facingDirection.x
    var y = Math.sin(-entity.player.cameraPitch)
    var z = entity.player.facingDirection.z
    world.say('---')
    world.say(`[${x},${y},${z}]`)
    var raycast = world.raycast(entity.position, new Box3Vector3(x, y, z), { ignoreEntities: true })//注意了,如果是实喵线会被挡住,要添加选择器!
    world.say(`${voxels.name(raycast.hitVoxel)}`)
}


回复

上一页1 页 / 共 1下一页
全能代码师全能代码师

沙发

点赞0


评论


全能代码师全能代码师

这个函数循环检测就可以了!我最近打算拿这个做坦克(x和z是固定的,只需要看附近y轴上有没有方块就能判断坦克朝向)

点赞0


评论


全能代码师全能代码师

射线的好处:

1.可以防止穿墙等bug,射击更加精准

2.速度更快,并且一点也不卡()

点赞0


评论


DebugDynamoDebugDynamo

沙发!!!

点赞0


评论


全能代码师全能代码师

友情提示:请使用fps视角效果更佳()

点赞0


评论


FML饭米粒FML饭米粒

function raycastE(entity = new Box3Entity) {
    var x = entity.player.facingDirection.x
    var y = Math.sin(-entity.player.cameraPitch)
    var z = entity.player.facingDirection.z
    world.say('---')
    world.say(`[${x},${y},${z}]`)
    var raycast = world.raycast(entity.position, new Box3Vector3(x, y, z), { ignoreEntities: true })//注意了,如果是实体射线会被挡住,要添加选择器!
    world.say(`${voxels.name(raycast.hitVoxel)}`)
}

点赞0


评论


全能代码师全能代码师

友情提示:follow还要求出视角位置

点赞0


评论


伴只狗头伴只狗头

有两点确定一条射线的代码吗awa

点赞0


评论