【问题标题】:Is there a way to get Material MainTexture name?有没有办法获得 Material MainTexture 名称?
【发布时间】:2019-02-16 00:55:57
【问题描述】:

我正在尝试实例化一个具有 VideoPlayer 组件的平面,该组件将视频发送到同一平面的材质的 MainTexture。 我从 URL 获取视频并将“材质覆盖”作为我的渲染模式。

问题是:我必须根据视频的纵横比调整平面大小(宽度必须始终相同,所以我只需要调整高度)。

我可以访问我的飞机的材质,但是当我尝试访问主纹理时它返回 null。我只需要这个主纹理的大小(我相信它是一个临时的 RenderTexture,由统一创建,与视频分辨率具有完全相同的大小),这样我就可以得到比例来缩放我的平面。

我必须通过脚本来执行此操作,因为播放器必须从他的计算机中选择视频,因此它必须与播放器选择的任何视频一起使用。

如果有人知道从视频播放器获取视频分辨率的另一种方法(记住视频来自 URL,所以它不是 VideoClip),我也可以尝试一下。

【问题讨论】:

  • 您可以尝试通过 videoPlayer.texture 访问纹理,或者简单地说,不使用 MaterialOverride,而是手动覆盖材质
  • @zambari 当我放 videoPlayer.texture 时它也返回 null ...通过手动覆盖材料,您的意思是,创建一个 RenderTexture,将视频放在上面,然后将 RenderTexture 放在平面材料?如果是,我已经尝试过这样做,但是当我自己创建一个 RenderTexture 时,它​​的静态大小不会改变,无论视频分辨率如何。

标签: unity3d


【解决方案1】:

哦,刚刚发现我必须先检查 VideoPlayer 是否已准备好,然后才能从其纹理中获取任何信息。这解决了错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2017-04-06
    • 2013-01-08
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    相关资源
    最近更新 更多