Unity3D之人物头顶名称与血条更新与绘制时间:12-07-18栏目:Unity3D教程作者:liuxiaoni评论:3人物的名称与血条的绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的人物坐标换算成2D平面中的坐标,继而找到人物头顶在屏幕中的2D坐标最后使用GUI将名称与血条绘制出来。首先学****本文的重点内容,如何将游戏世界中任意3D坐标转换成屏幕中的2D坐标。,。Vector2position=(worldPosition);在Unity工程导入角色控制器组件,不知道角色控制器的朋友请阅读我之前的文章哈。创建一个Plane做为游戏的地面,然后利用角色控制器组件创建两个模型,一个做为主角,一个作为NPC,主角可以通过控制来移动从四周来观察NPC对象。由于地面的面积比较小移动主角时为了避免主角越界掉下去,我们做一个边界的物理层。物理层其实很简单,就是给平面四周放置四个平面在四周将平面包围着,给四周的四个平面绑定上BoxCollider组件,这样主角就不会越界掉下去啦。因为没有给贴图所以效果上看不到这四个对象。如下图所示,在场景是途中主角被四个平面包围这,即时它拼命的想往外条但是还是跳不出去。,在脚本中我们绘制主角的血条以及名称。;;lassNPC:MonoBehaviour{//主摄像机对象privateCameracamera;//NPC名称privatestringname="我是雨松MOMO";//主角对象GameObjecthero;//NPC模型高度floatnpcHeight;//红色血条贴图publicTexture2Dblood_red;//黑色血条贴图publicTexture2Dblood_black;//默认NPC血值privateintHP=100;voidStart(){//根据Tag得到主角对象hero=("Player");//得到摄像机对象camera=;//注解1//得到模型原始高度floatsize_y=;//得到模型缩放比例floatscal_y=;//它们的乘积就是高度npcHeight=(size_y*scal_y);}voidUpdate(){//();}voidOnGUI(){//得到NPC头顶在3D世界中的坐标//默认NPC坐标点在脚底下,所以这里加上npcHeight它模型的高度即可Vector3worldPosition=newVector3(
unity3d角色血条 来自淘豆网www.taodocs.com转载请标明出处.