找回密码
 点一下
查看: 591|回复: 7

222222222222

[复制链接]
发表于 2022-1-11 05:52:00 | 显示全部楼层 |阅读模式
本帖最后由 18726317637 于 2022-11-2 14:10 编辑

2222222222222222222
发表于 2022-1-12 11:34:27 | 显示全部楼层
本帖最后由 Nostalie 于 2022-1-12 11:52 编辑

观战ui能重载的话这个做起来不麻烦吧

点评

UI重载只是重新布局界面而已。 而我做的是原版的观战UI所没有的功能,重载UI没有一点关系  详情 回复 发表于 2022-1-12 18:52
回复

使用道具 举报

 楼主| 发表于 2022-1-12 18:52:44 | 显示全部楼层
Nostalie 发表于 2022-1-12 11:34
观战ui能重载的话这个做起来不麻烦吧

UI重载只是重新布局界面而已。
而我做的是原版的观战UI所没有的功能,重载UI没有一点关系
回复

使用道具 举报

发表于 2022-1-12 21:27:52 | 显示全部楼层
本帖最后由 Nostalie 于 2022-1-12 23:20 编辑

你不会以为ui重载就只能改改大小位置吧。
其实ui重载更爽的地方是你能在重载的对象里造新的东西。并且是可以被触发器衔接的。但并不是所有都能重载的,比如菜单。所幸观战ui是可以的。

没必要执着于全部用触发器。
你有没有想过,你观战和看录像可能是同一种模式。
而看录像的时候当然不会正常触发触发器。否则你就改写历史了。。。

总的思想就是内容交给触发器做。但是显示交给ui逻辑(不仅可以继承原有的逻辑写起来简单省事而且观战模式下有效)



点评

即使可以用UI重载创建一个新按钮,但是如何设置才能让该按钮被点击时,显示触发器做的对话框呢?UI编辑器可没有这种设置  详情 回复 发表于 2022-1-13 06:33
回复

使用道具 举报

 楼主| 发表于 2022-1-13 06:33:33 | 显示全部楼层
Nostalie 发表于 2022-1-12 21:27
你不会以为ui重载就只能改改大小位置吧。
其实ui重载更爽的地方是你能在重载的对象里造新的东西。并且是可 ...

即使可以用UI重载创建一个新按钮,但是如何设置才能让该按钮被点击时,显示触发器做的对话框呢?UI编辑器可没有这种设置
回复

使用道具 举报

发表于 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布局里的控件。你想放啥内容就爱放啥。


点评

感谢如此费心费力解答。试了一下果然有效,你的回答给我打开了新世界的大门~!  详情 回复 发表于 2022-1-14 06:40
回复

使用道具 举报

 楼主| 发表于 2022-1-14 06:40:58 | 显示全部楼层
Nostalie 发表于 2022-1-13 20:32
怎么没有这种设置?不会不代表没有吧。这方面教程资料比较少而已但也不是没有UI Editor - SC2Mapster Wiki  ...

感谢如此费心费力解答。试了一下果然有效,你的回答给我打开了新世界的大门~!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-22 11:21 , Processed in 0.233524 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表