我正在开发一个Unity应用程序,它可以使用书签按钮打开多个内部浏览器窗口。现在,我把浏览器Prefab,并示例化它同时打开多个窗口。但窗口会重叠在一起,用户不会知道它是打开了一个新窗口,或在现有窗口重定向,除非他们拖走一个。
我尝试了一个'for'循环来打开多个窗口,但是在for循环中所有的窗口都是一次点击就能打开的,而且都是同一个url。幸运的是,在我想要的偏移位置。
但应该是一次点击打开一个新窗口,另一次点击打开一个新窗口偏移到前一个。
下面是我的书签按钮脚本:
// Open the browser window instance with bookmark button
public void OpenLinks(string link)
{
for (int i = 0; i<=10; i++)
{
GameObject browser = Instantiate(browserWindow, new Vector2(i * 50 + 50, -(i * 50) - 50), browserWindow.transform.rotation);
browser.SetActive(true);
browser.GetComponent<SimpleWebBrowser.WebBrowser2D>().Navigate(link);
browser.transform.parent = Windows.transform;
browser.name = "Page - " + link;
}
}
我假设可能需要一个if语句而不是for循环,但我不知道如何去做,因为我需要在OpenLinks()
中保存示例化,这样我就可以在以后销毁示例以释放内存,然后重新打开。
有人能帮我吗?
1条答案
按热度按时间c3frrgcw1#
看起来你要做的是一次打开一个窗口,并存储该窗口示例。然后每个窗口都在下一个位置打开,所以你需要存储下一个窗口需要打开的位置的值,要么存储上一个位置,要么存储下一个位置。在下面的示例代码中,我们存储了窗口下次打开的位置。
有很多额外的代码需要输入,比如当下一个要打开的窗口不在屏幕上时会发生什么,真的需要重新编码到屏幕的顶部,但是我们现在只需要快速检查硬编码的位置。
话虽如此,下面是一段示例代码,它应该能完成您所寻找的任务: