c# - 如何在 Unity 中单击按钮时激活 RawImage?
问题描述
我刚开始学习 Unity 并尝试创建一个视频库,现在我创建了一个按钮,图像上显示了红十字。更大的矩形是包含我的视频的原始图像。 我想在按钮上添加一个缩略图,然后单击该按钮 RawImage 将启动相应的视频。现在它正在像上面提到的那样工作,但只要我激活 RawImage。在单击按钮之前,我不希望看到 RawImage。
现在这就是我所拥有的;
RawImage rawImage1;
public void StartVideoOne()
{
rawImage1.SetActive(true);
videoPlayer.Play();
}
但是,如果我尝试在按钮 onClick 调用期间激活 RawImage,这不会启动视频。我怎么解决这个问题?
解决方案
首先,您不能SetActive
在RawImage
参考上使用,它必须是GameObject
. 我假设您只将它放在代码片段中,因此很清楚发生了什么。
我设置了一个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();
}
}
推荐阅读
- typescript - 如何创建原始类型和自定义类型的联合,原始的某些属性已更改并保持不变?
- python - 如何摆脱 vs studio Python 3 中突出显示的错误
- scala - 使用 Option[Type] 进行 Scala 模式匹配
- xml - 从 shell 向 XML 文档的默认名称空间的标签添加名称空间前缀
- sql - 特定条件下同一列的平均值(SQL Server)
- java - 无法设置 TextView 的文本
- c - 当要求链接 .a 文件时,g++ / gcc 会做什么?
- xaml - 为这个 xaml 实现的代码在哪里
- django - 如何在 Django 管理员中更新活跃用户时发送邮件?
- javascript - 使用 FileUploader 动态添加 ImagePreview