![如何让 Unity2D 切换启动器的背光?](https://linux22.com/image/822749/%E5%A6%82%E4%BD%95%E8%AE%A9%20Unity2D%20%E5%88%87%E6%8D%A2%E5%90%AF%E5%8A%A8%E5%99%A8%E7%9A%84%E8%83%8C%E5%85%89%EF%BC%9F.png)
我如何才能改变启动器图标的行为,以便只有在应用程序运行时才会打开它们的背景?
如果应用程序处于活动状态,我希望背景或边框突出显示,就像我在 Unity 3D 上一样。
答案1
恐怕您无法在 Unity-2D 中切换启动器项目的背光。它显然仅适用于 Unity-3D,而且鉴于 Unity-2D 的大部分开发已停止,我认为此功能不可能得到开发。
我还偶然发现错误 #753969并发现了这一点未经测试的补丁如果你知道如何在 Unity-2D 上获得可切换的背光从源代码构建 Unity-2D。
答案2
我得到了它!感谢 jokerdino 链接的补丁,我能够配置 Unity2D 以使其按照所需的方式运行。
我已经准备好一个脚本,可以自动应用所需的更改。因此,您需要做的就是下载并运行它。
重要的提醒:此脚本仅适用于 Ubuntu 12.04。由于它修补了 Unity 的文件,因此使用它需要您自担风险!特别是,如果它检测到并抱怨无法正确执行修补,请不要强制它应用修补程序。
wget http://people.ubuntu.com/~rafalcieslak256/Unity2dBgToggle.sh
chmod +x Unity2dBgToggle.sh
./Unity3dBgToggle.sh
该脚本将要求您输入 root 密码、修补两个文件并重新启动 Unity2D shell。
要撤销更改,只需重新安装包unity-2d-shell
。
笔记:此更改将随着更新而丢失。届时您将需要再次运行该脚本。
脚本内容如下:
#!/bin/sh
cat > /tmp/IconTile.patch << EOF
--- IconTile.qml 2012-10-05 14:47:31.341845516 +0200
+++ IconTile.qml_new 2012-10-05 14:47:55.757966590 +0200
@@ -32,6 +32,7 @@
property string selectedTileBackgroundImage: ""
property string tileBackgroundImage: ""
property string tileShineImage: ""
+ property alias tileBackgroundVisible: tileBackground.visible
property color defaultBackgroundColor: "#333333"
property color selectedBackgroundColor: "#dddddd"
EOF
cat > /tmp/LauncherItem.patch << EOF
--- LauncherItem.qml 2012-10-05 14:40:37.267792239 +0200
+++ LauncherItem.qml_new 2012-10-05 14:43:00.136500682 +0200
@@ -210,6 +210,7 @@
tileShineImage: (item.isBfb) ? "../launcher/artwork/squircle_shine_54.png" : ""
selectedTileBackgroundImage: (item.isBfb) ? "../launcher/artwork/squircle_base_selected_54.png" : ""
+ tileBackgroundVisible: running | launching
/* tile background fade in/out animation */
SequentialAnimation on backgroundOpacity {
NumberAnimation { to: 0.0; duration: 1000; easing.type: Easing.InOutQuad }
EOF
sudo patch /usr/share/unity-2d/shell/common/IconTile.qml < /tmp/IconTile.patch
sudo patch /usr/share/unity-2d/shell/launcher/LauncherItem.qml < /tmp/LauncherItem.patch
killall unity-2d-shell
unity-2d-shell > /dev/null 2>&1 &