【发布时间】:2019-02-16 00:55:57
【问题描述】:
我正在尝试实例化一个具有 VideoPlayer 组件的平面,该组件将视频发送到同一平面的材质的 MainTexture。 我从 URL 获取视频并将“材质覆盖”作为我的渲染模式。
问题是:我必须根据视频的纵横比调整平面大小(宽度必须始终相同,所以我只需要调整高度)。
我可以访问我的飞机的材质,但是当我尝试访问主纹理时它返回 null。我只需要这个主纹理的大小(我相信它是一个临时的 RenderTexture,由统一创建,与视频分辨率具有完全相同的大小),这样我就可以得到比例来缩放我的平面。
我必须通过脚本来执行此操作,因为播放器必须从他的计算机中选择视频,因此它必须与播放器选择的任何视频一起使用。
如果有人知道从视频播放器获取视频分辨率的另一种方法(记住视频来自 URL,所以它不是 VideoClip),我也可以尝试一下。
【问题讨论】:
-
您可以尝试通过 videoPlayer.texture 访问纹理,或者简单地说,不使用 MaterialOverride,而是手动覆盖材质
-
@zambari 当我放 videoPlayer.texture 时它也返回 null ...通过手动覆盖材料,您的意思是,创建一个 RenderTexture,将视频放在上面,然后将 RenderTexture 放在平面材料?如果是,我已经尝试过这样做,但是当我自己创建一个 RenderTexture 时,它的静态大小不会改变,无论视频分辨率如何。
标签: unity3d