Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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# 在UI按钮中插入运动图像或gif_C#_Unity3d_Game Development - Fatal编程技术网

C# 在UI按钮中插入运动图像或gif

C# 在UI按钮中插入运动图像或gif,c#,unity3d,game-development,C#,Unity3d,Game Development,我尝试在UI按钮图像中放置动画gif,但它不移动。这是否可以在UI按钮图像中放置动画gif或运动图像 如果Unity不支持视频格式,您可以从多个PNG帧生成WebM。它需要Adobe MediaEncoder(或您找到的任何程序)从中生成WebM视频。还有其他,我使用WebM来支持透明性 如果您已经有了视频格式,您可以直接跳到3节。在下面的Unity for UI中使用动画 1.将动画另存为PNG文件 我不知道你的动画是从哪里来的,但是你必须把每一帧保存为PNG文件。最好使用相应的名称后缀(

我尝试在UI按钮图像中放置动画gif,但它不移动。这是否可以在UI按钮图像中放置动画gif或运动图像

  • 如果Unity不支持视频格式,您可以从多个
    PNG
    帧生成
    WebM
    。它需要
    Adobe MediaEncoder
    (或您找到的任何程序)从中生成
    WebM
    视频。还有其他,我使用WebM来支持透明性

  • 如果您已经有了视频格式,您可以直接跳到3节。在下面的Unity for UI中使用动画

1.将动画另存为PNG文件 我不知道你的动画是从哪里来的,但是你必须把每一帧保存为PNG文件。最好使用相应的名称后缀(例如,
frame_001.png
frame_002.png
,…)

2.将PNG文件编码为WebM视频格式
  • 使用WebM_Premiere_v1.1.0.msi安装适用于Adobe Premiere和MediaEncoder的WebM编解码器,或下载至

  • 打开AdobeMediaEncoder

  • 转到
    文件
    ->
    添加源…

  • 选择动画的第一帧。例如./Source/2.混合器输出

  • 队列
    视图中,单击当前目标编解码器

  • 作为格式选择
    WebM

  • 图像设置
    部分,您可以调整设置,也可以只需单击
    匹配源

  • 在编解码器
    设置中
    切换到
    VP8
    ,因为Unity不支持
    VP9
    (还?)

  • 您可能希望进行进一步的调整,但最重要的是:启用
    包括Alpha通道

  • 当您认为已完成时,点击窗口底部的
    Ok

  • 回到
    队列
    视图中,单击播放符号开始编码

  • 完成并关闭AdobeMediaEncoder后,您将在源帧所在的同一文件夹中找到结果,

  • 3.在Unity for UI中使用动画(也适用于其他视频格式)
  • 将生成的文件(例如
    [0001-0027].webm
    [0001-0027].webm.xmp
    导入UnityProject)。对于导入设置,将其设置为

    也许这是默认的(我不记得了)

  • 在相应的
    按钮上
    游戏对象移除组件
    图像

    并将其替换为
    RawImage
    组件

    确保在
    按钮
    目标图形
    字段中再次引用此
    原始图像

  • 创建一个新的
    RenderTexture

    并将其用作
    原始图像
    组件的
    纹理

  • 在场景中的任何位置(我只是在同一个对象上做的)添加
    VideoPlayer
    组件

    将其渲染到创建的
    RenderTexture

    并作为
    VideoClip
    选择导入的webm(或其他格式)视频

    然后你可以通过脚本启动视频。。。但我通常会让它在清醒状态下玩和循环状态下玩


  • 结果


    请注意,在

    请记住,这将创建一个额外的draw调用,每个RawImage都存在,因此最好仅将其用于背景或临时可见图形


    因此,您应该尽量少使用这种格式。

    您是指动画gif吗?@mjwills是的。我已经有了一张精灵纸,这张精灵纸和一张动画gif一样?@mjwills。我不知道你说的精灵是什么意思。但我使用这个精灵表来创建动画预制