赞
踩
目前发现了两种做法
这两种都试了一下,操作过程及发现的利弊如下:
步骤:
注意:应采用分辨率尽可能最高的全景视频(一般为 4K 或 8K),对设备计算资源和计算能力要求高。我这里还是用的笔电开发,后面涉及到交互类可能就需要换电脑。
设置video player,直接把全景视频放到Assets,再添加到Hierarchy。点击play可以查看此视频。但是目前不知道怎么在不用手柄情况下调整play时的游戏视图。( (已解决-7.15)
查看导入的视频源信息:查看视频 Inspector ,滚动到视频预览,查看Source Info,搞清楚分辨率。
在Assets下创建Render Texture,调整大小同上。点击Hierarchy中的视频,调整video player下的渲染模式。视频不会在 Game 窗口中渲染,但可选择渲染纹理资源 (Render Texture Asset),然后确认其内容会随每一个视频帧更新。
创建新的Material,将Shader 设置为 Skybox/Panoramic,Texture设置为刚建的Render Texture。如果是ERP格式,将 Mapping 设置为 Latitude Longitude Layout,选择 360 degree 或 180 degree 子选项。如果是CMP格式,将 Mapping 设置为 6 Frames Layout。查看Inspector的Preview,平移转动方向,确认大背景被换成全景图。
设置lighting,菜单栏window>render>lighting。将新的Skybox Material拖放到 Environment 下的第一个字段。点击Play 可将视频显示为Skybox上的场景背景。
在main camera的Inspector中添加组件 New Script,再点击play,就能game进行平移操作
using System.Collections; using System.Collections.Generic; using UnityEngine; public class LookAround : MonoBehaviour { // Start is called before the first frame update public float speed = 3; // Update is called once per frame void Update() { if(Input.GetMouseButton(0)) { transform.RotateAround(transform.position, -Vector3.up, Input.GetAxis("Mouse X")); transform.RotateAround(transform.position, transform.right, speed * Input.GetAxis("Mouse Y")); } } }
步骤:
待开发脚本(2023.10.18正在写……)
先理一下思路:
功能包括但不限于:暂停/继续、播放、滑动条、上/下一条视频、悬浮文本、弹窗、确认/取消
public void Play()
{
videoPlayer.Play();
}
public void Pause()
{
videoPlayer.Pause();
}
public void Stop()
{
videoPlayer.Stop();
}
public void URLtoVideo(string url)
{
videoPlayer.source = VideoSource.Url;
videoPlayer.url = url;
videoPlayer.Prepare();
videoPlayer.prepareCompleted += VideoPlayer_prepareCompleted;
}
private void VideoPlayer_prepareCompleted(VideoPlayer source)
{
Play();
}
值得记录的一些內容:
便携式全景视频拍摄设备,一般有两种拍摄模式:360度2D视频(全景视频)、360度3D视频(全景3D视频)。目前我只考虑普通360°全景视频,如果要处理全景3D,Unity操作略有不同。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。