具体思路就是使用UnityC#里的Camera.WorldToScreenPoint方法,其z轴近似敌方到玩家摄像机的距离,通过这个z轴数值乘以血条的长宽来实现近大远小
首先附上我的血条制作博客:
//1.把敌方当前位置 转换成 屏幕位置
//摄像机里面提供了API 可以将 世界坐标 转为 屏幕坐标
Vector3 screenPos = Camera.main.WorldToScreenPoint(this.transform.position);
//血条背景图片长宽
maxHpRect.width = 100*screenPos.z*0.1f;
maxHpRect.height = 15 * screenPos.z * 0.1f;
//血条图片长宽
hpRect.width = ((float)hp / maxHp * 100f) * screenPos.z * 0.1f;
hpRect.height = 15 * screenPos.z * 0.1f;
大功告成!!

本文介绍了如何利用UnityC#的Camera.WorldToScreenPoint方法,结合z轴距离来调整血条大小,从而实现敌方血条在游戏中的近大远小视觉效果。首先创建World Space渲染模式的画布,并设置血条UI元素,接着通过调整血条填充方法和图片类型来模拟血槽。最后,通过代码实现血条随敌方距离的变化而缩放。
https://blog.csdn.net/wanghexuan/article/details/121742206?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164014076916780274182132%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164014076916780274182132&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-121742206.nonecase&utm_term=%E8%A1%80%E6%9D%A1&spm=1018.2226.3001.4450

1万+

被折叠的 条评论
为什么被折叠?



