欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Godot 3D 人物血条实现

程序员文章站 2022-03-26 23:19:53
...

原理其实很简单,将3D模型的坐标转为屏幕坐标,然后实时更新UI(血条)即可,直接上关键代码:

func updateUI(delta):
	#Update for UI
	#人物的全局坐标
	var world_pos = global_transform.origin
	#这里的uiSize即为血条的UI控件大小
	#camera = get_viewport().get_camera() 即为当前视图的摄像头
	#通过unproject_position将3D坐标转为屏幕坐标,这里由于人物坐标位于中心,所以需要做一定的偏移
	var pos = camera.unproject_position(world_pos) - 0.5 * uiSize
	pos.y -= 20 + uiSize.y 
	#更新UI坐标
	$Node2D/UnitView.position = pos
	#$Node2D/UnitView.updateStatus(currentHP, currentMala)
	pass

效果如下:

Godot 3D 人物血条实现

相关标签: Godot 游戏开发