html显示到 Babylonjs GUI

使用 html2canvas 将html 转成 canvas;通过 canvas.toDataURL() 生成 dataURL 传给GUI

  html2canvas(dom, { width: this.width, height: this.height }).then(canvas => {
            // dom.remove();
            // 关联GUI
            addButton(transForm, canvas.toDataURL(), callBack)
        }).catch(err => {
            console.log(err)
        })
   addButton(mesh: Mesh | TransformNode, bash64Img: string, callBack: (eventData: Vector2WithInfo, eventState: EventState) => void) {
        const advancedTexture = AdvancedDynamicTexture.CreateFullscreenUI(uuid(), true, this.scene);
        advancedTexture.rootContainer.scaleX = window.devicePixelRatio;
        advancedTexture.rootContainer.scaleY = window.devicePixelRatio;
  
        const buttonImg = Button.CreateImageWithCenterTextButton(uuid(), "", bash64Img);
        buttonImg.width = this.width + "px";
        buttonImg.height = this.height + "px";
        buttonImg.color = "rgba(0,0,0,0)";
        buttonImg.background = "rgba(0,0,0,0)";
        advancedTexture.addControl(buttonImg);
        buttonImg.linkWithMesh(mesh)
        buttonImg.linkOffsetY = -95;
        buttonImg.onPointerClickObservable.add(callBack)
        //----连线
        const line = new Line();
        line.lineWidth = 2;
        line.color = "Orange";
        line.y2 = 90;
        line.y1 = -10;
        line.linkOffsetY = -75;
        // line.dash = [5, 10];
        advancedTexture.addControl(line);
        line.linkWithMesh(mesh);
        line.connectedControl = buttonImg;
        // // //底部圆点
        const ellipse = new Ellipse();
        ellipse.width = "10px";
        ellipse.height = "10px";
        ellipse.color = "rgba(0,0,0,.5)";
        ellipse.thickness = 4;
        ellipse.background = "rgba(0,0,0,0)";
        advancedTexture.addControl(ellipse);
        ellipse.linkWithMesh(mesh);
        const b1 = new gImage(uuid(), "/image/a98a7f2f28243e66c014ab6e28cfbe45.png");
        b1.width = "10px";
        b1.height = "10px";
        b1.stretch = gImage.STRETCH_EXTEND;
        ellipse.addControl(b1);

    }

效果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值