Skip to main content

气球组件

概述

气球组件(Balloon Component )可以实现在人物、物体的任意位置显示需要的内容,如:人物的血条、名称,如下图所示:

创建气球组件

创建角色

创建气球组件首先需要一个角色,从资源预览( Resource Preview )窗口中拖拽一个角色(SK_Human_new.actor)至场景中。

image-20230721110929294

添加气球组件

大纲(Hierarchy)面板选中刚创建的角色(SK_Human_new.actor),然后在观察器(Inspector)面板依次点击添加组件(Add Component) -> 气球组件(Balloon Component)添加一个气球组件。

image-20230721111302152

编辑气球组件

选中刚添加的气球组件(LBalloon),在项目(Project)面板中选择任意UI文件(此处选择血条UI文件form_blood-bar.ui)并拖拽到Balloon分类下的File属下拉框里,即可看到血条UI出现在角色头顶上方(默认显示在角色头顶上方)。可以在Proxy Object下的Balloon里修改气球组件属性。

image-20230721124959433

属性和方法

属性

属性描述
绑定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)