有没有3.x在3D角色头上加2D文字的示例?

2D文字跟随3D角色,如何实现?

1赞

@property(Node)

pos_3d: Node = null!;

@property(Node)

pos_2d: Node = null!;

@property(CameraComponent)

camera: CameraComponent = null!;


start () {

    let _v3_0: Vec3 = new Vec3(0, 0, 0);

    this.pos_3d.getWorldPosition(_v3_0);

    console.log("p3:"+_v3_0)

    this.camera.convertToUINode(_v3_0, this.pos_2d.parent!, _v3_0);

    console.log("p2:"+_v3_0)

this.pos_2d.setPosition(_v3_0)

}

console输出:
p3:(57.66, 31.55, 41.96)
p2:(46124.00, 11357.13, 21.48)

转换后的点的坐标怎么是好几万啊,是我用法不对吗?我把pos_p2节点是放到Canvas下面的。

延迟1帧,试试。

1赞

原来把转换代码放到 lateUpdate里就可以了,太感谢了!!其实很多问题解决方法都是很简单的,但就是很多文档或教程不说清楚,这个3D转2D坐标也找了几个教程,都写了一大堆不重要的代码,唯独不讲这个关键点,以至于研究了好久也做不出来。

emmm…

参考这个 Demo 看看。

https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.0.0/3DDemo/Model3DText

谢谢!已经做出来了,就是我上面那段代码把start 里的代码换到LateUpdate里就可以了。

更新链接

https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.0.x/demo/Creator3.0.0_3D_Model3DText

1赞

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。