气球组件
概述
气球组件(Balloon Component )可以实现在人物、物体的任意位置显示需要的内容,如:人物的血条、名称,如下图所示:
创建气球组件
创建角色
创建气球组件首先需要一个角色,从资源预览( Resource Preview )窗口中拖拽一个角色(SK_Human_new.actor)至场景中。
添加气球组件
在大纲(Hierarchy)面板选中刚创建的角色(SK_Human_new.actor),然后在观察器(Inspector)面板依次点击添加组件(Add Component) -> 气球组件(Balloon Component)添加一个气球组件。
编辑气球组件
选中刚添加的气球组件(LBalloon),在项目(Project)面板中选择任意UI文件(此处选择血条UI文件form_blood-bar.ui)并拖拽到Balloon分类下的File属下拉框里,即可看到血条UI出现在角色头顶上方(默认显示在角色头顶上方)。可以在Proxy Object下的Balloon里修改气球组件属性。
属性和方法
属性
属性 | 描述 |
---|---|
绑定X位置(Bind X) | 在3D空间中的绑定X方向偏移(位置) |
绑定Y位置(Bind Y) | 在3D空间中的绑定Y方向偏移(高度) |
绑定Z位置(Bind Z) | 在3D空间中的绑定Z方向偏移(距离) |
偏移位置(Offset Left) | 以Bind X为起点左右偏移的距离 |
偏移高度(Offset Top) | 以Bind Y为起点左右偏移的距离 |
最近显示距离(Near Distance) | 当前摄像机到组件的最近显示距离 |
最远显示距离(Far Distance) | 当前摄像机到组件的最远显示距离 |
方向模式(Use Up) | 方向模式 若勾选:远离世界中心的方向偏移 若未勾选: 正交相对位置(默认在头顶,例如血条) |
使用深度缩放(Use Depth Scale) | GUI控件跟随绑定的对象进行同步缩放 |
方法
方法 | 描述 |
---|---|
LoadForm | 该方法需要传入一个UI文件 |
AddControl | 该方法需要添加一个自定义控件,无需再传入UI文件 |
注:LoadForm传入的是UI文件,AddControl传入的是自定义控件,UI文件与自定义控件只有一个生效,用户可根据自己的需求决定调用LoadForm方法还是AddControl方法。
LoadForm
-- DECLARE_METHOD_1:LoadForm
-- 加载UI文件,默认添加到角色头顶
LBalloonComponent* m_pBalloonComponent = NewObject<LBalloonComponent>(this, FXTEXT("BalloonComponent"));
m_pBalloonComponent->LoadForm("skin\\blood_bar\\form_blood_bar.ui")
AddControl
-- DECLARE_METHOD_1:AddControl
-- 添加自定义GUI控件,默认添加到角色头顶
IEntity* pGui = (IEntity*)CHelper::GetGlobalEntity("gui");
PERSISTID button = pGui->Create("Button")
IEntity* pButton = g_pCore->GetEntity(button);
CHelper::SetPropertyInt(pButton, "Width", 240);
CHelper::SetPropertyString(pButton, "DrawMode", "FitWindow");
CHelper::SetPropertyString(pButton, "BackImage", "skin_res\\button\\btn_push.png");
LBalloonComponent* m_pBalloonComponent = NewObject<LBalloonComponent>(this, FXTEXT("BalloonComponent"));
m_pBalloonComponent->AddControl(button)