unity3d 血液
这里的人物头像和血条是在3d世界生成的,所以有真正的纵深感和遮挡关系,废话不多说,看我是怎么实现的。
第一步。先在UI Root里制作头像和血条。
这个制作步骤基本和我前面一篇文章介绍头像血条的制作步骤一致,以下我截个图。
就是上面的HeroPanel,东西非常easy,创建一个主面板HeroPanel。然后在里面创建一个Slider,用来显示血条,再创建一个sprite。用来显示头像,我这里另一个sprite是头像的背景框,然后调整位置和血条的颜色,不知道怎么做的看我前面的头像血条的文章,做完是这个样子:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHpocTE5ODI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" style="border:none; max-width:100%">
第二步,把头像和血条做成prefab。
把上面制作的HeroPanel拖到Project的Resources目录下(Project->Assets->Resources)。没有Resources目录的自己创建一个,为了将来的载入。这样就生成了HeroPanel的prefab,然后就能够把之前UI Root下的那个删掉了。
第三步。进入程序。
上面的准备工作OK后,就是编程环节了。
我的每一个角色下挂了一个Npc脚本,在Npc脚本的Start里载入HeroPanel的prefab。
- GameObject heroPanel = Resources.Load("HeroPanel") as GameObject;
- _heroPanel = Instantiate(heroPanel, transform.position, transform.rotation) as GameObject;
- _heroPanel.transform.localScale = new Vector3(0.006f, 0.006f, 0.006f);
- _bloodSlider = _heroPanel.GetComponentInChildren<UISlider>();
- _heroHeight = gameObject.collider.bounds.size.y;
上面代码非常easy,先是载入HeroPanel的prefab,然后生成实例_heroPanel,然后调整大小,这个一定要调成自己想要的大小。不然大的不忍直视啊。接着获取里面的UISlider脚本,赋给变量_bloodSlider,后面用得到。
假设想改变头像图片能够在这里操作,我就不改了。最后获取该角色的身高。用其碰撞盒获取,后面Update里计算坐标用得到。
然后就是Update部分:
- Vector3 pos = new Vector3(transform.position.x, transform.position.y+_heroHeight+HEAD_OFFSET, transform.position.z);
- _heroPanel.transform.position = pos;
- _heroPanel.transform.rotation = Camera.main.transform.rotation;
在Update里要随时获得角色的坐标。最重要的就是y坐标,由于要放到角色头顶上,所以这时就用到了前面的_heroHeight。后面又加了个HEAD_OFFSET,是偏移量,我这是1.0,然后把这个坐标赋给_heroPanel,这样头像血条就跟着角色走了。但另一点别忘了,就是它的朝向问题。你要时刻保持这个面板朝向摄像机,这就是第三句代码的作用。
行。在这里,你必须实现的基本功能,非常easy对,剩下的就是的血slider该,这和我以前的文章介绍如何使用相同的血。这里是变化_bloodSlider的value值。它是该百分比,在这里,我不引进。哈哈,磕踢。
unity3d 血液的更多相关文章
- unity3d Human skin real time rendering with blood and water drop effect真实模拟人皮实时渲染之血液和水珠掉落效果
在之前的一篇(链接在此)文章中写了下关于真实模拟皮肤渲染,在此基础之上又想加上血液效果,在洗澡的时候(= =:)又想在skin上加上水珠的效果,所以研究了下,做出来效果感觉还不错,放下效果图: 水珠 ...
- [Unity3D]Unity3D叙利亚NGUI血液和技能的冷却效果
---------------------------------------------------------------------------------------------------- ...
- Unity3D插件分享
网上看到一个讲unity3D插件的,看着不错,转载过来. 本文汇总了近百个Unity3D插件,供大家参考下载. 2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ...
- Unity3D 插件大全
2D_Toolkit 2d动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演游戏开发工具包 uScript-Visual-Script ...
- Unity3D 200个插件免费分享
插件清单: 2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演 ...
- Unity3d插件推荐
2D_Toolkit_1.51 动画开发插件包 FingerGestures 触摸插件 ORK_Okashi_RPG_Kit Unity3D角色扮演游戏开发工具包 uScript-Visual-Scr ...
- Unity3d 屏幕空间人体皮肤知觉渲染&次表面散射Screen-Space Perceptual Rendering & Subsurface Scattering of Human Skin
之前的人皮渲染相关 前篇1:unity3d Human skin real time rendering 真实模拟人皮实时渲染 前篇2:unity3d Human skin real time ren ...
- Unity3d学习 预设体(prefab)的一些理解
之前一直在想如果要在Unity3d上创建很多个具有相同结构的对象,是如何做的,后来查了相关资料发现预设体可以解决这个问题! 预设体的概念: 组件的集合体 , 预制物体可以实例化成游戏对象. 创建预设体 ...
- Unity3d入门 - 关于unity工具的熟悉
上周由于工作内容较多,花在unity上学习的时间不多,但总归还是学习了一些东西,内容如下: .1 根据相关的教程在mac上安装了unity. .2 学习了unity的主要的工具分布和对应工具的相关的功 ...
随机推荐
- Golang基于学习总结
1.不支持继承 重载 ,比方C++Java的接口,接口的改动会影响整个实现改接口的类行为的改动,Go 设计者觉得这一特点也许根本没用. 2.必不论什么函数定义必须花括号跟在函数声明后面而不能换行 如 ...
- WPF学习(7)命令
在上一篇中,我们学习了WPF的路由事件,而在本节将学习一个更为抽象且松耦合的事件版本,即命令.最明显的区别是,事件是与用户动作相关联的,而命令是那些与用户界面想分离的动作,例如我们最熟悉的剪切(Cut ...
- Codeforces Round #267 (Div. 2) A
题目: A. George and Accommodation time limit per test 1 second memory limit per test 256 megabytes inp ...
- android 防止多次点击提交
版权声明:本文博客原创文章.博客,未经同意,不得转载.
- lodoop打印控制具体解释
注意:这就需要引进的打印控制(我上传Demo同时): install_lodop32.exe install_lodop64.exe LodopFuncs.js jquery-1.10.0.min.j ...
- Java 新特性(3) - JDK7 新特性
http://www.ibm.com/developerworks/cn/java/j-lo-jdk7-1/ JSR292:支持动态类型语言(InvokeDynamic) 近 年来越来越多的基于 JV ...
- 【安德鲁斯】于java代码集drawableLeft给予适当的大小如何,当?
textView.setCompoundDrawables(drawable, null, null, null);如果看不到图片,这是由于需要手动定drawable适当的大小,使用drawable. ...
- linux awk命令详细使用方法
简单介绍 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部 ...
- NSString 筛选和最后一个空白、空行,多换行成一个新行
- (NSString *)filterBlankAndBlankLines:(NSString *)str { NSMutableString *Mstr = [NSMutableString st ...
- iOS ... NS_REQUIRES_NIL_TERMINATION
看到官方的一个样例不错,这里留记. #import <Cocoa/Cocoa.h> @interface NSMutableArray (variadicMethodExample) - ...
