Unity WebView 插件⭐️(六)核心模块 网络视图预制件—WebViewPrefab

网友投稿 1159 2022-05-29

该文章是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; }

Unity WebView 插件⭐️(六)核心模块 网络视图预制件—WebViewPrefab

获取或设置预制件的材质。

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 Clicked

表示点击了预制件。请注意,预制件会自动为您调用IWebView.Click()。

2.已初始化

EventHandler Initialized

表示预制件已完成初始化,因此其WebView属性已准备好使用。

3.滚动

EventHandler Scrolled

表示预制件已滚动。请注意,预制件会自动为您调用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小时内删除侵权内容。

上一篇:真实场景化评测,秒速十万次响应,全面解读华为云服务器S6
下一篇:高级运维需要掌握哪些技术?
相关文章