怎么在自己人物头顶显示血条?不是全部友方血条
一直找不到哪里可以设置,很不方便。有知道的吗?
[del]没改过按键就是shift+v,大兄弟,这真的是百度一下就有的东西啊....... [/del]没看仔细,这个要插件的
同问啊!真的想知道
自己的好像没有,只有敌友血条显示。
游戏内设置不了这种,要是有那就得插件了
7.0就有了,不过不是在头上。在人物下方。
有啥用?看人物头像框架不就行了。
看了这么多人居然没一个知道的。。显示敌对血条是v,友方血条是ctrl+v。。。
[quote][pid=86570,1]Reply[/pid] [b]Post by [uid=9052286]kokerkov[/uid] ( 10:51):[/b]有啥用?看人物头像框架不就行了。[/quote]大兄弟,看清人家的标题哦,他只想显示自己人物角色血条呢
(回复7楼的,点错)
[b]Reply to [pid=86570,1]Reply[/pid] Post by [uid=]会思想的便便[/uid] ( 11:05)[/b]人家是问怎么
显示自身的生命条。
[b]Reply to [pid=86570,1]Reply[/pid] Post by [uid=]会思想的便便[/uid] ( 11:05)[/b]无语 你认真看题了么? 楼主说是看自己的血条,不是友方血条
然而并没有吧
[color=blue]把你头像框拉倒屏幕左中下方 方便你看血条要是非要什么快捷键 这个并没有[/color]
[b]Reply to [pid=86570,1]Reply[/pid] Post by [uid=]七夜琥珀[/uid] ( 10:15)[/b]用哪个插件呢?
用tmw做一个放头顶假装那是血条[s:ac:喘]
楼主肯定是个T
[b]Reply to [pid=86570,1]Reply[/pid] Post by [uid=]矮挫丑[/uid] ( 11:40)[/b]这都知道?… 血DK和防骑双修[s:ac:嘲笑]
[b]Reply to [pid=86570,1]Reply[/pid] Post by [uid=]jackyeel[/uid] ( 12:14)[/b]网易有爱自带集中值监视条放头上位置
esc-界面里面设置Unity3D研究院之人物头顶名称与血条更新与绘制(二十六)
我的图书馆
Unity3D研究院之人物头顶名称与血条更新与绘制(二十六)
人物的名称与血条的绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的人物坐标换算成2D平面中的坐标,继而找到人物头顶在屏幕中的2D坐标最后使用GUI将名称与血条绘制出来。
首先学习本文的重点内容,如何将游戏世界中任意3D坐标转换成屏幕中的2D坐标。根据这个方法计算出的2D坐标屏幕左下角的点为0.0 ,屏幕右上角的坐标为1.1 所以真实的2D坐标还得通过Screen.height 与Screen.width计算一下才行。
1Vector2 position = camera.WorldToScreenPoint (worldPosition);
& & & &在Unity工程导入角色控制器组件,不知道角色控制器的朋友请阅读我之前的文章哈。创建一个Plane做为游戏的地面,然后利用角色控制器组件创建两个模型,一个做为主角,一个作为NPC,主角可以通过控制来移动从四周来观察NPC对象。由于地面的面积比较小移动主角时为了避免主角越界掉下去,我们做一个边界的物理层。物理层其实很简单,就是给平面四周放置四个平面在四周将平面包围着,给四周的四个平面绑定上Box Collider组件,这样主角就不会越界掉下去啦。因为没有给贴图所以效果上看不到这四个对象。哇咔咔~&如下图所示,在场景是途中主角被四个平面包围这,即时它拼命的想往外条但是还是跳不出去,哈哈。
创建脚本NPC.cs 然后把脚本挂在NPC对象身上,在脚本中我们绘制主角的血条以及名称。
001using UnityE002using System.C003&004public class NPC : MonoBehaviour {005&006&&&&//主摄像机对象007&&&&private C008&&&&//NPC名称009&&&&private string name = "我是雨松MOMO";010&011&&&&//主角对象012&&&&GameO013&&&&//NPC模型高度014&&&&float npcH015&&&&//红色血条贴图016&&&&public Texture2D blood_017&&&&//黑色血条贴图018&&&&public Texture2D blood_019&&&&//默认NPC血值020&&&&private int HP = 100;021&022&&&&void Start ()023&&&&{024&&&&&&&&//根据Tag得到主角对象025&&&&&&&&hero = GameObject.FindGameObjectWithTag("Player");026&&&&&&&&//得到摄像机对象027&&&&&&&&camera = Camera.028&029&&&&&&&&//注解1030&&&&&&&&//得到模型原始高度031&&&&&&&&float size_y = collider.bounds.size.y;032&&&&&&&&//得到模型缩放比例033&&&&&&&&float scal_y = transform.localScale.y;034&&&&&&&&//它们的乘积就是高度035&&&&&&&&npcHeight = (size_y *scal_y) ;036&037&&&&}038&039&&&&void Update ()040&&&&{041&&&&&&&&//保持NPC一直面朝主角042&&&&&&&&transform.LookAt(hero.transform);043&&&&}044&045&&&&void OnGUI()046&&&&{047&&&&&&&&//得到NPC头顶在3D世界中的坐标048&&&&&&&&//默认NPC坐标点在脚底下,所以这里加上npcHeight它模型的高度即可049&&&&&&&&Vector3 worldPosition = new Vector3 (transform.position.x , transform.position.y + npcHeight,transform.position.z);050&&&&&&&&//根据NPC头顶的3D坐标换算成它在2D屏幕中的坐标051&&&&&&&&Vector2 position = camera.WorldToScreenPoint (worldPosition);052&&&&&&&&//得到真实NPC头顶的2D坐标053&&&&&&&&position = new Vector2 (position.x, Screen.height - position.y);054&&&&&&&&//注解2055&&&&&&&&//计算出血条的宽高056&&&&&&&&Vector2 bloodSize = GUI.skin.label.CalcSize (new GUIContent(blood_red));057&058&&&&&&&&//通过血值计算红色血条显示区域059&&&&&&&&int blood_width = blood_red.width * HP/100;060&&&&&&&&//先绘制黑色血条061&&&&&&&&GUI.DrawTexture(new Rect(position.x - (bloodSize.x/2),position.y - bloodSize.y ,bloodSize.x,bloodSize.y),blood_black);062&&&&&&&&//在绘制红色血条063&&&&&&&&GUI.DrawTexture(new Rect(position.x - (bloodSize.x/2),position.y - bloodSize.y ,blood_width,bloodSize.y),blood_red);064&065&&&&&&&&//注解3066&&&&&&&&//计算NPC名称的宽高067&&&&&&&&Vector2 nameSize = GUI.skin.label.CalcSize (new GUIContent(name));068&&&&&&&&//设置显示颜色为***069&&&&&&&&GUI.color& = Color.070&&&&&&&&//绘制NPC名称071&&&&&&&&GUI.Label(new Rect(position.x - (nameSize.x/2),position.y - nameSize.y - bloodSize.y ,nameSize.x,nameSize.y), name);072&073&&&&}074&075&&&&//下面是经典鼠标点击对象的事件,大家看一下就应该知道是什么意思啦。076&&&&void OnMouseDrag ()077&&&&{078&&&&&&&&Debug.Log("鼠标拖动该模型区域时");079&&&&}080&081&&&&void OnMouseDown()082&&&&{083&&&&&&&&Debug.Log("鼠标按下时");084&085&&&&&&&&if(HP &0)086&&&&&&&&{087&&&&&&&&&&&&HP -=5 ;088&&&&&&&&}089&090&&&&}091&&&&void OnMouseUp()092&&&&{093&&&&&&&&Debug.Log("鼠标抬起时");094&&&&}095&096&&&&void OnMouseEnter()097&&&&{098&&&&&&&&Debug.Log("鼠标进入该对象区域时");099&&&&}100&&&&void OnMouseExit()101&&&&{102&&&&&&&&Debug.Log("鼠标离开该模型区域时");103&&&&}104&&&&void OnMouseOver()105&&&&{106&&&&&&&&Debug.Log("鼠标停留在该对象区域时");107&&&&}108&109}
注解1:通过collider.bounds.size&可以拿到模型对应三个轴向的高度,但是模型是可以缩放的,所以真实的模型高度应当是原始高度乘以缩放系数才行。 transform.localScale可以拿到模型对应三个轴向的缩放系数,因为这里我们需要模型的高度,所以忽略X轴与Z轴。
注解2:在这里我们计算血条的宽度,GUI.skin.label.Calcsize()这个方法是以默认的皮肤对象Label对象去参数对象的宽高。参数是new GUIContent(blood_Red)意思是拿红色血条的贴图的宽高,它将保存在返回的size中。最后以宽高将血条绘制在屏幕中,我们的血条采取两层。背景是黑色的,前面是红色的,当人物费血时红色血条减少。
注解3: 这里通过字符串来获取它整体的宽度与高度,因为NPC的名称是可变的,所以我们需要动态的获取整体的显示区域。同样是以GUI.skin.label对象去调用CalcSize。
如下图所示,当使用鼠标点击NPC对象时,NPC头顶的血条将开始发生减血。这个例子我使用OnGUI绘制当然大家也可以在Hierarchy 视图中的创建GUI Texture 或者GUI Text对象 来实现,不过原理都是这样的 大家可以试试 哇咔咔。
最后雨松MOMO希望和大家一起进步,一起学习,哇咔咔~ & &
本章内容下载地址:
TA的最新馆藏
喜欢该文的人也喜欢我看好多人截的图头上会显示出血条和蓝条,不知道是怎么弄出来的??
点击左上角的你的头像旁边的HP字样,就会在你的人物头顶显示血条。
点击左上角的你的头像旁边的MP字样,就会在你的人物头顶显示蓝条。
点击左上角的你的头像旁边的EXP字样,就会在你的人物头顶显示经验条。
其他***(共2个回答)
左上角人物头像头像和红蓝条的中间有个小圆点,点一下就可以在自己人物头上显示红蓝条。
您好"
在头像的旁边可以取消掉.
-------------------------诛仙资料组 小宝
血条的话可以下载斤lol盒子,工具中有血条样式供选择。
你屏幕上的一条条线,是显示器有问题,而不是病毒的问题,你可以看看,周围是不是有干扰源存在,比如更换显示器的位置和方向,看看还有没有问题,如果还是有问题那人就要考...
答: 锦母角和爱心大世界怎么样呀?
答: 朋友相处要严以律己,宽以待人。
朋友出去玩,AA制最好。如果不是,自己要抢先付钱,不要斤斤计较。你就是不坐船也要抢先付钱才对。
意欲取之,必先予之。其实朋友只是...
答: 网络没问题就查查毒,还有你要是开了其他程序,也会影响
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区