项目经验总结(3)
来源:互联网 发布:网络名字大全女孩 编辑:程序博客网 时间:2024/05/05 10:55
欢迎来到unity学习、unity培训
这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌
这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌
项目经验总结(3)
前两天太累了,本来想写着,躺了会就第二天了。好了,废话不多说,今天就把血条和名字来写下来。
1、血条
首先是两张作为血条的图片,一条设置好想要的长度,放在下面,另一条要根据自己的总血量,然后分成那么多分,让Update实时的更新血条,然后通过OnGUI让你想要的长度除以最大血量,然后乘以现有血量,并且位置要和上一条一样,并且覆盖在上面,这样就可以是一个血条了。
我的代码:
//这是两个血条的图片
public Texture2D blood_Red;
public Texture2D blood_Black;
void OnGUI() //血条的GUI显示
{
int blood_width = 172 * Player.HP / 20; //这个是实时更新的血条长度
//两个血条图片的GUI
GUI.DrawTexture(new Rect(111f, 31.5f, 172, 17.7f), blood_Black);
GUI.DrawTexture(new Rect(111f, 31.5f, blood_width, 17.7f), blood_Red);
GUI.color = Color.red;//用来设置下面在血条上的文字的颜色的
GUI.skin.label.fontSize = 12;//用来设置下面在血条上的文字的大小的
//血条上加文字,显示血,还可以获取任务的血量,然后让血量显示在上面
GUI.Label(new Rect(114f, 31.5f, 100, 17.7f), "人血:" + Player.HP);
}
2、头顶名字
这个应该比较常用,在游戏中好多都是要有名字的,这个为了好看当然是要加载人物的头顶上了。。。算了,废话我也不多说,来说一下具体的实现吧。就是通过将在应该在游戏里的3D坐标转换成2D坐标,获取x和z的坐标,然后加上y周的高度,就可以加载你想要的地方了,估计遮掩解释很难看懂,下面看看代码吧,基本是粘上就能用的代码
我的代码:
//首先是先声明需要的对象,这里因为要用到摄像机来寻找坐标,所以声明了摄像机
private Camera camera; //主摄像机对象
private string name = "NPC2"; //NPC名称
private float npcHeight = 1.5f; //NPC模型高度
void Start () {
camera = Camera.main; //通过start来寻找主摄像机
}
void OnGUI()
{
GUI.skin.label.fontSize = 20; //这个是改变名字的大小的,因为GUI是一步一步执行的,所以每变化一次大小或颜色就要写一个
Vector3 worldPosition = new Vector3(transform.position.x, transform.position.y + npcHeight, transform.position.z);
Vector2 position = camera.WorldToScreenPoint(worldPosition);//根据NPC头顶的3D坐标换算成它在2D屏幕中的坐标
position = new Vector2(position.x, Screen.height - position.y);//得到真实NPC头顶的2D坐标
Vector2 nameSize = GUI.skin.label.CalcSize(new GUIContent(name));//计算NPC名称的宽高
GUI.color = Color.green;//设置显示颜色为绿色
//绘制NPC名称
GUI.Label(new Rect(position.x - (nameSize.x / 2), position.y - nameSize.y - 20, nameSize.x, nameSize.y), name);
GUI.color = Color.white;//最后还原颜色,防止下一次执行时前面的颜色有变化
}
好了,老样子,碎叫去了,困死了,明天继续来
0 0
- 项目经验总结(3)
- SSH做项目时经验总结 (3)
- 项目经验总结(一)
- 项目经验总结(二)
- 项目经验总结(三)
- 项目经验总结(1)
- 项目经验总结(2)
- 项目经验总结(—)
- 项目经验总结
- 项目经验总结
- 项目经验总结
- 项目经验总结
- 项目经验总结
- 项目经验总结
- 项目经验总结
- 项目经验总结
- 项目经验总结
- 项目经验总结
- IOS学习之UINavigationController
- IOS学习之Segue
- maven环境快速搭建
- JAVA中的内部类整理
- Java集合框架面试问题集锦(六)
- 项目经验总结(3)
- window.open (参数使用post方式提交)
- HDU 2037 今年暑假不AC
- IOS开发记录
- git遇到的错误及解决
- 基于java config的springSecurity(五)--session并发控制
- PowerDesigner使用教程
- Lua千分位格式化数字
- cocos2dx中lua计算两个点之间夹角计算