猫史档案馆


()求助)PRO的宠物跟随代码怎么写啊

用户:SCS_user_rbxaHQh5aOSCS_user_rbxaHQh5aO查看:0 回复:0 评论:0 创建时间:2023-09-03T14:49:50


console.clear()
const mscale = 1 / 16
const Quat = new GameQuaternion(0, 0, 0, 0)

function buddyFollow(entity, mesh, y) {
    const buddy = world.createEntity({
        mesh,
        position: entity.position,
        meshScale: [mscale, mscale, mscale],
        gravity: false, 
        fixed: false, 
        collides: false, 
        friction: 0, 
        mass: 0.01, 
    })

    const tgPos = entity.position
    const budPos = buddy.position
    const facing = entity.player.facingDirection
    const ratio = 1.3

    const dist = 1000 
    const yOffset = -y 

    const ticker = world.onTick(() => {

        const xOffset = -facing.x / dist
        const zOffset = -facing.y / dist

        const xDiff = tgPos.x - budPos.x
        const yDiff = tgPos.y - budPos.y
        const zDiff = tgPos.z - budPos.z

        const 喵 = (xDiff + xOffset) * ratio
        const vy = (yDiff + yOffset) * ratio
        const vz = (zDiff + zOffset) * ratio

        buddy.velocity.set(喵, vy, vz)

        if (buddy.velocity.sqrMag() > 1) {
            buddy.meshOrientation = Quat.rotateY(Math.atan2(zDiff, xDiff)) 
        }
    })

    return () => {
        ticker.cancel() 
        buddy.destroy() 
    }
}

world.onPlayerJoin(({ entity }) => {
    entity.setPet = buddyFollow(entity, 'mesh/背包.vb', -1)
})

world.onPlayerLeave(({ entity }) => {
    entity.setPet()
})

难道不是这样吗,大神指导


回复

上一页1 页 / 共 0下一页