unity制作血条怎么一点一点加血
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity制作血条怎么一点一点加血相关的知识,希望对你有一定的参考价值。
先创建一个3D的物体命名为Player来代表人物,在它下面创建一个Canvas,点击Canvas在Inspector窗口里可以看见他有一个叫Canvas的组件,点开把渲染模式改成世界空间,这样你就可以canvas里面的UI移动到世界空间里的物体上了,这样一来我们的血条就不会和一般的UI一样一直在屏幕的固定地点而是跟着人物移动。
2. 接下来就是做血条了,先在Canvas下创建一个图片把它调到Player头上合适的位置并调成长条形。调图片只需要把Canvas的坐标重置再重置图片的坐标(因为他们的坐标都是基于父物体的),然后再调好大小和具体位置就行了。刚刚我们已经做了一个图片的UI了,可以用它来代表血条,但是游戏中往往是基础血条一个颜色而受伤后血条减少的部分是另一个颜色来作为对比,甚至像DNF里的BOSS会有很多颜色的血条来对比。所以我们直接Ctrl+D快速复制另一张图片,把原本的图片作为背景色,新创建的图片作为基础色(注意一定是背景的图片在上面,因为最下面也就是最新创建的UI会遮挡前面的UI)。
3.血条的雏形做好后,给两张图片里的Image组件里都添加一个2D图片作为源图像,然后改一下颜色,这里基础血量我就设置为绿色,而背景就设置为红色。接下来在作为基础血条的UI里找到Image组件>选择图像类型>已填充>填充方法>水平。这样我们的血条就做好了,改变基础血条里下的填充总数(FillAmount)就能实现血量减少的效果。(如果是3D项目中找不到2D的源图像可以在包管理器里添加2DSprite,然后在层级面板里点击右键->2D->Sprites随便创建一个图片,然后找到Image组件里的源图像点一下就可以找到源图像的位置,再把刚刚创建的图片删了把源图像添加到血条中去就行了。)
4.现在我们的血条就差最后一步了,那就是如何根据当前血量自动变化了。看了刚刚的操作其实大家应该都知道了,就是在代码中把填充总数和血量关联起来,方法有很多种,我这里就提供一种比较简单也好理解的思路。
首先要获取基础血条的Image组件,不过我们的脚本一般都是在Player身上,所以我们先去找game object,方法很多就不说明了。找到Image组件后让一个数等于它的fillAmount就行了,不过要注意的是fillAmount是介于0到1之间的一个数,所以最好用当前HP/最大 参考技术A 通过攻击动画使用动画事件自动造成自动互相伤害的效果
https://www.bilibili.com/video/BV19G4y1d7sT/
子弹打伤角色
https://www.bilibili.com/video/BV1VD4y1C71i/
怪物制作,包括受伤
https://www.bilibili.com/video/BV1tD4y1V7JZ/
unity3d中怎样制作血条跟随角色运动
参考技术A statelight是你要实例的物体么? 这个物体不能直接控制,而要用一个变量保存,比如在声明一个全局变量 GameObject sLight; 然后在碰撞时 sLight= Instantiate (statelight, Planee.transform.position, Planee.transform.rotation) as GameObje... 参考技术B 这几个视频都是血条跟随角色移动的球型血条制作视频
https://www.bilibili.com/video/BV15g411B7fr/
普通3d血条制作两种方法的视频
https://www.bilibili.com/video/BV1E8411e7uY/
和
https://www.bilibili.com/video/BV16K411Q79B/
以上是关于unity制作血条怎么一点一点加血的主要内容,如果未能解决你的问题,请参考以下文章
FairyGUI & Unity使用动效功能实现血条UI扣血与加血的缓动效果
Ruby‘s Adventrue游戏制作笔记(十三)Unity血条UI的显示
Ruby‘s Adventrue游戏制作笔记(十三)Unity血条UI的显示