微吼云上線多路互動直播服務 加速多場景互動直播落地
1444
2025-03-31
該文章是WebView 插件系列文章,傳送門:瀏覽器插件3D WebView專欄
上一篇文章對3D WebView 插件的 IWebView 做了一個詳細的介紹說明
那本篇文章就來介紹下 WebViewPrefab的說明和使用方法
核心模塊 網絡視圖預制件—WebViewPrefab
WebViewPrefab是一個預制件,可以在 3D 世界空間中輕松查看IWebView并與之交互。它負責創建 IWebView、顯示其紋理以及處理來自用戶的指針交互,如單擊、拖動和滾動。
因此,您需要做的就是指定要加載的 URL 或 HTML,然后用戶可以查看它并與之交互。
創建 WebViewPrefab 有兩種方法:
通過編輯器將WebViewPrefab.prefab文件拖到場景中并設置其“初始 URL”屬性。
或者通過使用WebViewPrefab.Instantiate()以編程方式創建實例,等待它初始化,然后調用其WebView屬性上的方法,如LoadUrl()。
如果用例需要高度自定義,可以使用Web.CreateWebView()在預制件之外創建一個 IWebView 。
核心API調用方法
WebViewPrefab公共屬性
1.單擊啟用
bool ClickingEnabled
確定是否啟用單擊。
2.對撞機
Collider Collider { get; }
獲取預制件的碰撞器
3.拖動模式
DragMode DragMode
確定預制件如何處理拖動交互。
4.拖動閾值
float DragThreshold
確定觸發拖動的閾值(以網絡像素為單位)。默認值為 20。
當預制件的DragMode設置為DragToScroll 時,此屬性確定指針在不再被視為單擊之前必須拖動的距離。
當預制件的DragMode設置為DragWithinPage 時,此屬性確定指針在頁面內觸發拖動之前必須拖動的距離。
5.懸停已啟用
bool HoveringEnabled
確定是否啟用懸停交互。
6.初始分辨率
float InitialResolution
以每個 Unity 單位的像素為單位設置 webview 的初始分辨率。您可以更改分辨率以使 Web 內容看起來更大或更小。WebViewPrefab 的默認分辨率是1300.
7.初始網址
string InitialUrl
如果您通過編輯器將 WebViewPrefab.prefab 拖入場景,您可以在編輯器中設置此屬性,使其在實例初始化后自動加載給定的 URL。
8.日志控制臺消息
bool LogConsoleMessages
確定是否將來自IWebView.ConsoleMessageLogged 的javaScript 控制臺消息打印到 Unity 日志中。
9.材料
Material Material { get; set; }
獲取或設置預制件的材質。
10.是否啟用系統本機鍵盤
bool NativeOnScreenKeyboardEnabled
確定當 webview 中的文本輸入被聚焦時是否自動顯示操作系統的本機屏幕鍵盤。WebViewPrefab 的默認值是false.
11.啟用遠程調試
bool RemoteDebuggingEnabled
確定是否啟用遠程調試。
12.滾動已啟用
bool ScrollingEnabled
確定是否啟用滾動。
13.滾動靈敏度
float ScrollingSensitivity
允許調整滾動靈敏度。WebViewPrefab 的默認敏感度是0.005.
14.可見的
bool Visible { get; set; }
獲取或設置實例是否可見。默認值為true.
15.網頁視圖
IWebView WebView { get; }
獲取預制件的 IWebView,在引發Initialized事件后可用。在初始化完成之前,這個屬性是null。
WebViewPrefab公共方法
1.轉換到屏幕點
Vector2 ConvertToScreenPoint(Vector3 worldPosition)
將給定的世界位置轉換為標準化的屏幕點。返回點的x和y分量是 0 到 1 之間的標準化值。
2.破壞
void Destroy()
銷毀實例及其子實例。請注意,如果您使用Object.Destroy()銷毀實例的父級,則不需要調用此方法。
3.實例化
static WebViewPrefab Instantiate(float width, float height, WebViewOptions options)
與Instantiate(float, float ) 一樣,除了它也接受一個選項標志對象,可用于更改生成的 webview 的行為。
4.實例化
static WebViewPrefab Instantiate(float width, float height)
使用 Unity 單位中的給定尺寸創建一個新實例。所述web視圖屬性初始化完成,它是由所指示的后可用初始化事件或WaitUntilInitialized() 。webview 的默認分辨率是每個 Unity 單位 1300px,但可以使用IWebView.SetResolution()進行更改。
例子 // Create a 0.5 x 0.5 instance var webViewPrefab = WebViewPrefab.Instantiate(0.5f, 0.5f); // Position the prefab how we want it webViewPrefab.transform.parent = transform; webViewPrefab.transform.localPosition = new Vector3(0, 0f, 0.5f); webViewPrefab.transform.LookAt(transform); // Load a URL once the prefab finishes initializing webViewPrefab.Initialized += (sender, e) =>; { webViewPrefab.WebView.LoadUrl("https://vuplex.com"); };
5.實例化
static WebViewPrefab Instantiate(IWebView webView)
與Instantiate(float, float) 一樣,除了它使用現有的已初始化 IWebView 實例初始化實例。這會導致 WebViewPrefab 使用現有的 IWebView 實例而不是創建一個新實例。
6.調整大小
void Resize(float width, float height)
將預制網格和 webview 的大小調整為 Unity 單位中的給定尺寸。webview 的默認分辨率是每個 Unity 單位 1300px,但可以使用IWebView.SetResolution()進行更改 。
7.設置指針輸入檢測器
void SetPointerInputDetector(IPointerInputDetector pointerInputDetector)
默認情況下,預制件通過 Unity 的事件系統檢測諸如單擊之類的指針輸入事件,但您可以使用此方法來覆蓋檢測輸入事件的方式。
8.SetWebViewForInitialization
void SetWebViewForInitialization(IWebView webView)
默認情況下,預制件在初始化期間創建一個新的 IWebView。但是,您可以在預制件初始化之前調用此方法,以將現有的、已初始化的 IWebView 傳遞給它以供使用。此方法只能在預制件初始化之前調用(即直接在實例化它或將其設置為活動之后)。
9.等待直到初始化
Task WaitUntilInitialized()
返回一個任務,該任務在預制件初始化時(即當其WebView屬性準備好使用時)解決。
WebViewPrefab公共活動
1.點擊
EventHandler
表示點擊了預制件。請注意,預制件會自動為您調用IWebView.Click()。
2.已初始化
EventHandler Initialized
表示預制件已完成初始化,因此其WebView屬性已準備好使用。
3.滾動
EventHandler
表示預制件已滾動。請注意,預制件會自動為您調用IWebView.Scroll()。
示例
1.手動初始化WebViewPrefab的網址
這樣WebViewPrefab的默認連接網址就成了我們設置的!直接調用API方法即可
_webViewPrefab.InitialUrl = "http://www.baidu.com";
2.設置WebView的尺寸
使用 Unity 單位中的給定尺寸創建一個新實例
這里注意是創建一個新的實例的時候直接修改的尺寸,并不是創建完了之后進行修改!
WebViewPrefab.Instantiate(500,600);
3.網頁視圖已初始化
_mainWebViewPrefab.Initialized += (initializedSender, initializedEventArgs) => { //初始化后可以在這個活動里面 添加一些事件 或者 執行某些方法 _mainWebViewPrefab.WebView.LoadUrl("https://www.baidu.com"); };
總結
本文介紹了插件的核心模塊 網絡視圖預制件—WebViewPrefab
該預制體是顯示網頁的重要對象,瀏覽器的網頁視圖就是通過這個WebViewPrefab顯示出來的
也有很多API方法可以調用,文中也給出了幾個示例,其他API都可以使用!
unity WebView
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。