由于MovieTexture在Unity5.6.0b1之后遭到了反对,我使用VideoPlayer Api在RawImage上播放RawImage上的视频,参考这里。我试图添加一个切换从最初大小的视频播放的RawImage纹理到全屏和回到原来的视频停止后。
我有一个完美的播放视频,到目前为止,我能够改变视频的转换,以延伸到全屏幕使用这段代码。
void Update () {
if (Input.GetButtonDown("Jump"))
{
image.rectTransform.offsetMax = Vector2.Lerp(Vector2.up, Vector2.down, 100);
image.rectTransform.offsetMin = Vector2.Lerp(Vector2.left, Vector2.right, 100);
image.rectTransform.rotation = Quaternion.AngleAxis(Mathf.Lerp(0f, 90f, 50), Vector3.forward);
}
}if块内的前两行能够全屏播放视频效果的RawImage,如图像第2节所示。这是Vector2的文档。
对于第三行旋转代码,我引用了关于团结论坛的讨论,但仍然没有达到我想要的效果,结果导致了第3节。我想旋转RawImage的内容,但我正在旋转RawImage本身,这可能是因为引用没有描述要旋转内容。
有人能帮我找出我怎么解决这个问题吗。如果它帮助我使用的统一版本是团结5.6.0b11Beta,如果你想要在你的设备上测试的话,下载这个样例项目。统一视频Player.zip 18.33MB,您也可以跟踪这个关于来自VideoPlayer的新YouTube的视频教程。

更新1
到目前为止,我唯一得到的是,我只试着使用旋转代码,通过删除if块中的前两行,我能够旋转视频,但是当我试图拉伸RawImage时,它就出现在屏幕外面。如图所示
更新2
经过大量的研究,打击和试验。最后,我完成了RawImage的全屏和旋转,用这段代码在Unity上播放全屏视频。
image.rectTransform.offsetMin = new Vector2(-560, 560);
image.rectTransform.offsetMax = new Vector2(560, -560);但是,正如您所看到的,我提供给向量的值是静态数字,不能保证在多个屏幕大小上工作。好的,旋转RawImage是混乱的,因为轴与RawImage一起旋转,但是一些组件没有改变或旋转,当改变偏移值时,RawImage参照旧的Rect改变了它的值(我真的不知道这里发生了什么)。

旋转的RawImage旋转与其相连的轴。在上面的图像中,您可以看到RawImage是旋转的,而这反过来又旋转了Axis。但是即使当图像被旋转,你也可以看到一些参考线。

我是如何解决这个问题的?失败了
我试图以新的方式解决这个问题,我创建了一个适合画布的新RawImage,并且已经像以前的RawImage那样旋转并附加到脚本StreamVideo.cs上。最初,它处于非活动模式,当用户命令转到全屏时,它被切换到活动状态。当它进入全屏时,视频将在新的RawImage中播放。
public void playFullScreen() {
isFullScreen = true;
imageFullScreen.gameObject.SetActive(true);
imageFullScreen.texture = videoPlayer.texture;
image.gameObject.SetActive(false);
}但是,在新的RawImage上切换到全屏时,从同一帧启动视频有问题,切换回小屏幕时也有同样的问题。
摘要:
看看update 2,我可以播放、暂停、全屏和旋转视频,但是在offsetMax和offsetMin上有简单的数字值。我正在努力学习是否有一种方法通过脚本来管理这些值,以适应多屏幕大小的。我知道这听起来可能很简单,但是对于我需要的屏幕来说,我所提供的价值的参考是这样的。注意图片中的虚线矩形。

发布于 2020-05-11 23:19:00
我用这段代码在Z上实现了RectTransform上90度的旋转。
private void FixContainerSizeInstantly()
{
container.sizeDelta = new Vector2(parent.rect.height, parent.rect.width);
}其中,container是旋转的RectTransform,而parent是带有锚的RectTransform,总是使其全屏化。

我将添加DOTween来动画它的比例,旋转和位置,但你需要的值是在我分享的方法。
下面是如何配置全屏画布,我使用了不同的画布来实现所有模块。


对于旋转部分,您可以从原始视频的位置和大小开始,到90度的变化和我共享的方法给出的大小之间,在屏幕的中心位置。
两者之间应该是大小的三角洲和锚应该是这样。

https://stackoverflow.com/questions/42897528
复制相似问题