unity3d 未能在Unity中使用GetComponent函数找到正确的组件

ruyhziif  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(315)

我将使用BrowserButton打开BrowserWindow,这是Unity应用程序中的一个内部浏览器,它通过BrowserButton的onClick函数中包含的链接字符串进行重定向。
但是,当我编写用于打开BrowserWindow的脚本时,它无法找到运行浏览器的组件。x1c 0d1x
下面是我的层次结构。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);
    }
}

任何人都可以帮助我找出哪个组件名称或层次结构不正确?

2exbekwf

2exbekwf1#

BrowserWindow和webView不是组件。它们是GameObject。要获取对它们的引用,请使用以下命令:

[SerializeField] private GameObject browserWindow;
[SerializeField] private GameObject webView;

然后用OpenCloseOption组件点击游戏对象,会出现两个窗口分别用于浏览器窗口和网页视图,你可以将游戏对象拖到窗口中创建引用。
我不确定Navigate()方法的来源,但你不能在游戏对象上调用它。如果你有一个MonoBehavior附加到webView,并带有一个公共方法Navigate,你可以做类似webView.GetComponent<ScriptWithNavigateMethod>().Navigate()的事情。

相关问题