700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > UnityUI超简单实现敌方血条近大远小的效果

UnityUI超简单实现敌方血条近大远小的效果

时间:2023-03-15 08:57:19

相关推荐

UnityUI超简单实现敌方血条近大远小的效果

具体思路就是使用UnityC#里的Camera.WorldToScreenPoint方法,其z轴近似敌方到玩家摄像机的距离,通过这个z轴数值乘以血条的长宽来实现近大远小

首先附上我的血条制作博客:

Unity创建能跟随玩家移动血条HP的方法,so easy_wanghexuan的博客-CSDN博客1.首先创建画布,渲染模式Render Mode改成Word Space,并调整参数至玩家头顶2. 再创建两个Texture,一个作为背景,一个作为血量,HPBarBG背景颜色最好设置成暗色调作为血量的texture(HPBar)需要设置一张自己的2D图片(不然下面的工作无法进行)再改变image Type为Filled,Fill Method为水平Horizontal改变FillAmount就可以改变图片的显示范围,就可以模拟一个血条血槽辣3. ../wanghexuan/article/details/121742206?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164014076916780274182132%2522%252C%2522scm%2522%253A%25220713.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.把敌方当前位置 转换成 屏幕位置//摄像机里面提供了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;

大功告成!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。