Я собираюсь использовать BrowserButton, чтобы открыть BrowserWindow, внутренний браузер в приложении Unity. Это перенаправление со строкой ссылки, содержащейся в функции BrowserButton onClick.
Однако, когда я написал скрипт для открытия BrowserWindow, он не смог найти компонент, запускающий браузер.
Вот моя иерархия ниже. BrowserWindow — компонент, содержащий кнопки браузера и управления. webView — это компонент для рендеринга самого браузера. BrowserButton — это кнопка для вызова окна и предоставления строки ссылки для перенаправления — как закладка на рабочем столе.
И мой сценарий внизу.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OpenCloseOption : MonoBehaviour
{
// Close the browser window with the cross button
public void Close()
{
gameObject.SetActive(false);
}
// Open the browser with preset link
public void Open()
{
gameObject.SetActive(true);
}
// Open the browser window with bookmark button
public void OpenLikns(string link)
{
gameObject.SetActive(true);
Canvas.GetComponent<BrowserWindow.webView>.Navigate(link);
}
}
Кто-нибудь может помочь мне выяснить, какое имя компонента или иерархия неверны?
BrowserWindow и webView не являются компонентами. Это игровые объекты. Чтобы получить ссылку на них, используйте следующее:
[SerializeField] private GameObject browserWindow;
[SerializeField] private GameObject webView;
Затем нажмите на игровой объект с компонентом OpenCloseOption. Будет два слота для окна браузера и веб-представления. Вы можете перетаскивать игровые объекты в слоты, чтобы создавать ссылки.
Я не уверен, откуда взялся метод Navigate(), но вы не можете вызвать его для игрового объекта. Если у вас есть MonoBehavior, прикрепленный к webView с общедоступным методом Navigate, вы можете сделать что-то вроде webView.GetComponent<ScriptWithNavigateMethod>().Navigate()
.
Спасибо, Исаак, я новичок в C# и Unity, не совсем понял, для чего используется [SerializeField]. Теперь это работает. Однако у меня возникла проблема с запуском внутреннего браузера после его закрытия и повторного открытия. Когда я впервые запускаю приложение, использую закладки для запуска браузера, он открывается с URL-адресом по умолчанию, но, щелкнув закладки, он все еще может перейти к URL-адресу закладок. И после того, как я закрою окно браузера и открою его снова, он поймает
NullReferenceException: Object reference not set to an instance of an object
взаимодействие с браузером, не подскажете, что с ним не так?