最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
Ngui血条跟随
2015年02月01日 09:37
0 点赞
0 评论
更新于 2025-11-21 15:49
在游戏开发中,实现血条跟随角色是一个常见的需求。下面为大家分享一段关于 Ngui 血条跟随的代码,大家可以参考学习。如果在理解或使用过程中遇到问题,可以在社区里提问交流。
代码实现
using UnityEngine;
using System.Collections;
public class Blood : MonoBehaviour {
// 获取血条信息,这里是你的 ngui 或 dfgui 血条控件
public GameObject _bloodBar;
// 获取主摄像机(非 UI 相机),并把主摄像机的 culling mask 值改为加上 UI 层或设置为 everything
public GameObject MainCamera;
void Update () {
// 让血条信息一直处于人物的头顶某处
_bloodBar.transform.position = new Vector3(transform.position.x, transform.position.y + 0.3f, transform.position.z);
// 求出游戏对象朝摄像机的方向
Vector3 v = transform.position - MainCamera.transform.position;
// 四元数
Quaternion rotation;
rotation = Quaternion.LookRotation(v);
// 让血条一直面向摄像机。由于摄像机是以人物为目标的,所以 v 应该为人物的位置到摄像机位置的向量,否则信息栏会出现偏差
_bloodBar.transform.rotation = rotation;
}
}
代码解释
- 变量声明:
_bloodBar:用于引用 Ngui 或 Dfgui 血条控件,通过该变量可以对血条的位置和旋转进行操作。MainCamera:引用主摄像机,这里需要注意的是该摄像机不是 UI 相机,并且需要将其culling mask值设置为包含 UI 层或者设置为everything,以确保能正确渲染血条。
Update方法:- 血条位置设置:通过
_bloodBar.transform.position将血条的位置设置在人物头顶上方一定距离处,这里是在人物的y坐标上增加了0.3f。 - 计算方向向量:通过
transform.position - MainCamera.transform.position计算出从人物到摄像机的方向向量v。 - 计算旋转:使用
Quaternion.LookRotation(v)计算出一个四元数rotation,该四元数表示血条应该朝向的旋转角度。 - 设置血条旋转:将计算得到的旋转赋值给血条的
transform.rotation,使得血条始终面向摄像机。
- 血条位置设置:通过
希望这段代码能帮助你实现 Ngui 血条跟随的功能。如果有任何疑问,欢迎在社区提出。