欢迎来到天天文库
浏览记录
ID:39891024
大小:65.50 KB
页数:4页
时间:2019-07-14
《Unity3D开发之游戏之怪物头上血条制作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Unity开发之3D游戏之怪物头上血条制作今天我们又重新改了一下我们的项目,并且信添加了一些新的功能。Unity游戏中血条在npc的的头顶上,并且上面写着npc的名字 //主摄像机对象privateCameracamera;//NPC名称privatestringname="老鼠"; //NPC模型高度floatnpcHeight;//红色血条贴图publicTexture2Dblood_red;//黑色血条贴图publicTexture2Dblood_black; //默认NPC血值priva
2、teintHP=100; voidStart(){//得到摄像机对象camera=Camera.main; //注解1//得到模型原始高度floatsize_y=collider.bounds.size.y;//得到模型缩放比例floatscal_y=transform.localScale.y;//它们的乘积就是高度npcHeight=(size_y*scal_y); } voidOnGUI(){//得到NPC头顶在3D世界中的坐标//默认NPC坐标点在脚底下,所以这里加上npcHeight它模型的高度即
3、可Vector3worldPosition=newVector3(transform.position.x,transform.position.y+npcHeight,transform.position.z);//根据NPC头顶的3D坐标换算成它在2D屏幕中的坐标Vector2position=camera.WorldToScreenPoint(worldPosition);//得到真实NPC头顶的2D坐标position=newVector2(position.x,Screen.height-posit
4、ion.y);//注解2//计算出血条的宽高Vector2bloodSize=GUI.skin.label.CalcSize(newGUIContent(blood_red)); //通过血值计算红色血条显示区域intblood_width=blood_red.width*HP/100;//先绘制黑色血条GUI.DrawTexture(newRect(position.x-(bloodSize.x/2),position.y-bloodSize.y,bloodSize.x,bloodSize.y),blood
5、_black);//在绘制红色血条GUI.DrawTexture(newRect(position.x-(bloodSize.x/2),position.y-bloodSize.y,blood_width,bloodSize.y),blood_red); //注解3//计算NPC名称的宽高Vector2nameSize=GUI.skin.label.CalcSize(newGUIContent(name));//设置显示颜色为黄色GUI.color =Color.yellow;//绘制NPC名称GUI.Lab
6、el(newRect(position.x-(nameSize.x/2),position.y-nameSize.y-bloodSize.y,nameSize.x,nameSize.y),name);}下图是在立方体上加的脚本文章来自【狗刨学习网】
此文档下载收益归作者所有