creator 3D怎么将3D坐标转化到canvas上面

我是想做血条,然后拿到人物的坐标之后将血条显示到canvas上,或者大佬有直接在3D模型上面做血条的思路也可以,求教!!!!

1赞

官方3ddemo中一个射击游戏里面有效果
https://github.com/cocos-creator/example-3d
simple-shooting: a simple shooting game demo.

兄弟fps的血条不是跟随主角的,是固定在界面上的

2dui在3d物体坐标进行显示:
注意点是2dui要有ui组件:

this.testNode.getWorldPosition(_v3_0);
this.CameraNode.convertToUINode(_v3_0, this.testNodeUI.parent, _v3_0);//需要在物体加载完毕后,才能执行到3D 节点转 UI 本地节点坐标。

this.testNodeUI.setPosition(_v3_0);

官方案例有很多功能例子不错~

我记得1.0.4版本的demo中有,我回去看一下

好的谢谢啦

你好,我不是太明白第一个this.testNode.getWorldPosition(v30);这个是3D模型的坐标吗?
第二行
为什么要this.testNodeUI.parent 而不是this.testNodeUI

第一点,是你要用来转换的 3d 点的坐标,你这里如果用的是模型位置做坐标转换,那就是模型的世界坐标

第二点,为什么选的是 parent,是看你要转换的空间,你可以理解为是在哪个 ui 节点下,计算得出的偏移,假如你当前 2d 节点是 testNodeUI,那么,做计算的时候它的位置是相对于它的 parent 偏移了多少,如果传的是自身,就是相对于自身偏移了多少,自身又相对于自身,这个理解就很怪了对吧

好的谢谢,有没有demo用了这些代码呢?

可以看下我们的测试例工程

https://github.com/cocos-creator/test-cases-3d

搜索一下关于 coordinate 的部分测试例

谢谢,已经弄好了