【问题标题】:How to Activate RawImage on button click in Unity?如何在 Unity 中单击按钮时激活 RawImage?
【发布时间】:2021-03-10 13:42:54
【问题描述】:

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

现在这就是我所拥有的;

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

    }

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

【问题讨论】:

  • 你是如何给 rawimage 赋值的?有什么错误吗?

标签: c# visual-studio unity3d user-interface


【解决方案1】:

首先,您不能在RawImage 引用上使用SetActive,它必须是GameObject。我假设你只把它放在代码 sn-p 中,所以很清楚发生了什么。

我在简单的测试项目中设置了VideoPlayer,您的代码可以很好地激活对象并播放视频,因此您可能会错过以下几点:

  • 您是否检查过您的按钮是否有效?你的画布中有GraphicRaycaster 组件吗?您是否通过检查器或代码订阅了按钮的 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();
    }
}

【讨论】:

    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    相关资源
    最近更新 更多