如何在 Unity 中单击按钮时激活 RawImage?
Posted
技术标签:
【中文标题】如何在 Unity 中单击按钮时激活 RawImage?【英文标题】:How to Activate RawImage on button click in Unity? 【发布时间】:2021-03-10 13:42:54 【问题描述】:我刚开始学习 Unity 并尝试创建一个视频库,现在我创建了一个按钮,图片上显示了红十字。更大的矩形是包含我的视频的原始图像。 我想在按钮上添加一个缩略图,然后单击该按钮 RawImage 将启动相应的视频。目前它正在按上述方式工作,但只要我激活 RawImage。我不希望在单击按钮之前看到 RawImage。
现在这就是我所拥有的;
RawImage rawImage1;
public void StartVideoOne()
rawImage1.SetActive(true);
videoPlayer.Play();
但是,如果我尝试在按钮 onClick 调用期间激活 RawImage,则不会启动视频。我该如何解决这个问题?
【问题讨论】:
你是如何给 rawimage 赋值的?有什么错误吗? 【参考方案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();
【讨论】:
以上是关于如何在 Unity 中单击按钮时激活 RawImage?的主要内容,如果未能解决你的问题,请参考以下文章