Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Unity中单击按钮激活RawImage?_C#_Visual Studio_Unity3d_User Interface - Fatal编程技术网

C# 如何在Unity中单击按钮激活RawImage?

C# 如何在Unity中单击按钮激活RawImage?,c#,visual-studio,unity3d,user-interface,C#,Visual Studio,Unity3d,User Interface,我刚开始学习Unity并尝试创建一个视频库,现在我创建了一个按钮,上面显示了红十字。更大的矩形是一个原始图像,保存着我的视频。 我想在按钮上添加一个缩略图,然后单击按钮,RawImage将启动相应的视频。目前,它正在工作,如前所述,但只要我激活RAWMAIGE。我不希望在单击按钮之前看到原始图像 现在这就是我所拥有的 RawImage rawImage1; public void StartVideoOne() { rawImage1.SetActive(

我刚开始学习Unity并尝试创建一个视频库,现在我创建了一个按钮,上面显示了红十字。更大的矩形是一个原始图像,保存着我的视频。 我想在按钮上添加一个缩略图,然后单击按钮,RawImage将启动相应的视频。目前,它正在工作,如前所述,但只要我激活RAWMAIGE。我不希望在单击按钮之前看到原始图像

现在这就是我所拥有的

    RawImage rawImage1;
    public void StartVideoOne()
    {
        rawImage1.SetActive(true);
        videoPlayer.Play();

    }

但如果我尝试在按钮onClick调用期间激活rawmimage,则不会启动视频。如何解决此问题?

首先,您不能在
rawmimage
参考上使用
SetActive
,它必须是
GameObject
。我假设您只将其放在代码片段中,这样就可以清楚地看到发生了什么

我在simple test project中设置了一个
VideoPlayer
,您的代码可以很好地激活对象并播放视频,因此以下是一些您可能错过的内容:

  • 你检查过你的按钮了吗?画布中是否有
    GraphicRaycaster
    组件?您是否通过inspector或code订阅了button的
    onClick
    事件?现场是否有
    EventSystem
  • 如果
    VideoPlayer
    中的渲染模式为“渲染纹理”,是否将
    RawImage
    指定为目标纹理
这是您需要具备的一个示例:

和代码:

public class PlaybackController : MonoBehaviour
{
    public Button playButton;
    public RawImage rawImage1;
    public VideoPlayer videoPlayer;

    private void OnEnable()
    {
        playButton.onClick.AddListener(StartVideoOne);
    }

    private void OnDisable()
    {
        playButton.onClick.RemoveListener(StartVideoOne);
    }

    private void StartVideoOne()
    {
        rawImage1.gameObject.SetActive(true);
        videoPlayer.Play();
    }
}

您是如何为rawimage赋值的?有错误吗?