摄像机的位置如图:

我想让血条在模型顶部正中的位置,代码如下
this.hp.position = cc.Canvas.instance.node.convertToNodeSpaceAR(this.camera3D.getWorldToScreenPoint(this.hero.position));
实际效果
.位移过程中血条并没有按我想的一样在模型正上方,请问如何让血条 在模型的正上方呢…
ps(第一次做3d有点蒙)。。。
摄像机的位置如图:

我想让血条在模型顶部正中的位置,代码如下
this.hp.position = cc.Canvas.instance.node.convertToNodeSpaceAR(this.camera3D.getWorldToScreenPoint(this.hero.position));
实际效果
.位移过程中血条并没有按我想的一样在模型正上方,请问如何让血条 在模型的正上方呢…
ps(第一次做3d有点蒙)。。。
在线等》。。。
陪等,不孤单
…谁来指点一下呢
你这看起来像是血条速度和人物速度不统一啊
先试试同级,看会不会出现这个问题
不是速度不统一的问题呢,即便不做差值只要角色不在视图中央,血条看起来就不在角色的正上方
我之前用unity的时候碰到过这个问题- -忘了咋解决的了
unity是先获取角色的世界坐标,然后转换成2d屏幕坐标
我就是这么做的呀…
这种通常是转变的时候有误差导致的吧,2d也会出现一样的情况
要如何解决呢,看起来更像是透视问题…
应该获取头顶的坐标,不是人的坐标吧
确实,将坐标换成头顶的坐标看起来会好很多,呢么我该如何得到头顶的坐标呢(模型的高度)
我没用过3D模型,所以不知道这个模型高度能不能直接获得,如果不能的话就写死一个值吧
你的hero得坐标是人物得脚下,走到旁边之后 由于透视问题 到之后血条便宜。
在你得头顶挂一个点 然后将这个头顶得点转换未屏幕坐标显示血条就可以了
可惜了,这是creator3d才有的组件
头顶挂一个空节点呢,然后再转换坐标