|
发表于 2022-1-13 20:32:54
|
显示全部楼层
本帖最后由 Nostalie 于 2022-1-13 23:29 编辑
怎么没有这种设置?不会不代表没有吧。这方面教程资料比较少而已但也不是没有UI Editor - SC2Mapster Wiki (fandom.com)
stategroup 里when 或者animation的event都可以来监测其他控件的状态并作出改变
另外不单单是按钮,你要显示的东西也得在ui里先定义好。再用触发器衔接。实时更新内容。
这样做也不麻烦。你触发器只需要管内容更新,无需考虑大小位置层级显示的问题。
如果是用勾选框来显示影藏的用stategroup非常简单。
按钮就复杂一些要记录之前的状态所以用到两个stategroup不过自己DIY还是很容易的。
直接上ui代码算了。虽然自己折腾理解会更好,这个ui布局能在观战ui多加一个label和按钮。按钮能显示影藏label。label只是起个演示你换成frame。在里面装更多东西都可以。
<Frame type="LeaderPanel" name="GameUI/UIContainer/FullscreenUpperContainer/LeaderPanel" file="GameUI">
<Frame type="Label" name="ObLabel" template="TriggerDialogFrame/TriggerControlLabelTemplate">
<Style val="@@@InfoPaneHeroWeapon"/>
<Text val="内容触发器衔接后可实时修改"/>
<Anchor side="Top" relative="$parent" pos="Mid" offset="0"/>
<Anchor side="Left" relative="$parent" pos="Mid" offset="0"/>
<StateGroup name="VisibilityToggle">
<DefaultState val="Visible"/>
<State name="Visible">
<Action type="SetProperty" frame="$this" Visible="True"/>
</State>
<State name="NotVisible">
<Action type="SetProperty" frame="$this" Visible="False"/>
</State>
</StateGroup>
<StateGroup name="Pushed">
<State name="Show">
<When type="Property" frame="$parent/ObButton" Pushed="True"/>
<When type="StateGroup" frame="$this" VisibilityToggle="NotVisible"/>
<Action type="SetState" frame="$this" group="VisibilityToggle" state="Visible" on="Exit"/>
</State>
<State name="Hide">
<When type="Property" frame="$parent/ObButton" Pushed="True"/>
<When type="StateGroup" frame="$this" VisibilityToggle="Visible"/>
<Action type="SetState" frame="$this" group="VisibilityToggle" state="NotVisible" on="Exit"/>
</State>
</StateGroup>
</Frame>
<Frame type="Button" name="ObButton" template="TriggerDialogFrame/TriggerControlButtonTemplate">
<Style val="@@@InfoPaneHeroAttribute"/>
<Anchor side="Bottom" relative="$parent/ObLabel" pos="min" offset="4"/>
<Anchor side="Left" relative="$parent/ObLabel" pos="Mid" offset="0"/>
<Width val="70"/>
<Height val="30"/>
<Text val="按钮"/>
</Frame>
</Frame>
头目的UI教程教过怎么hookup,对于重载时新定义的控件注意template指定TriggerDialogFrame里的。其他和已有控件的hookup是一样的。
之后就可以在触发器里操控这些定义在ui布局里的控件。你想放啥内容就爱放啥。
|
|