问题是,如何将启动器自动隐藏延迟时间设置为 0 ?我想要的是当我将鼠标移开时启动器立即消失。请注意,这与隐藏动画持续时间无关,因为动画仅在延迟后开始。这是我需要找到的延迟设置。将显示延迟设置为零非常容易,但是我找不到隐藏延迟设置。
这似乎被硬编码到 Unity 源代码中。请参见第32 行:
const unsigned int HIDE_DELAY_TIMEOUT_LENGTH = 400;
Run Code Online (Sandbox Code Playgroud)
实际的隐藏函数位于第 63 行:
void LauncherHideMachine::SetShouldHide(bool value, bool skip_delay)
{
if (_should_hide == value)
return;
if (value && !skip_delay)
{
_hide_delay_timeout.reset(new glib::Timeout(HIDE_DELAY_TIMEOUT_LENGTH));
_hide_delay_timeout->Run([&] () {
EnsureHideState(true);
return false;
});
}
else
{
_should_hide = value;
_hide_changed_emit_idle.reset(new glib::Idle(glib::Source::Priority::DEFAULT));
_hide_changed_emit_idle->Run(sigc::mem_fun(this, &LauncherHideMachine::EmitShouldHideChanged));
}
}
Run Code Online (Sandbox Code Playgroud)
我也不确定是否有办法标记该skip_delay争论。您可能需要向 Unity 团队提交错误报告,看看是否可以让他们允许自定义此变量。否则你可能需要自己修补和编译 Unity。
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |