文章目录
- 前言
- 一、创建全景图
- 二、转换到另一个全景图里
- 创建全局视频
- 运行效果
前言
- 先准备好两张全景图片和一个全景视频
- 还有两个包,老师给的
一、创建全景图
- 先把包导进去,
- 创建一个sphere,改变mesh值
- 然后直接把全景图片拖进sphere上
- 直接复制第一个sphere,拖入第二张全景图,并向x移动20
- 现在点开运行的话,是不能移动的,我们要移动鼠标来查看周围
- 在摄像机上挂上脚本,写上代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Change : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.Rotate(-Input.GetAxis("Mouse Y"), Input.GetAxis("Mouse X"), 0);
transform.eulerAngles = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, 0);
}
}
- 这样运行后就可以移动鼠标进行移动了
二、转换到另一个全景图里
- 转换有两种方法,意是改变全景图,而是改变相机位置,这里实现啊第二种
- 创建一个Canvas,并设置成世界坐标
- 将Canva的stransform进行Reset,修改Scale值
- 再创建一个image,改变一下颜色,能够清晰的看见,移动一下位置,靠近天空,加上button组件
- 接着就再脚本里写上代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Change : MonoBehaviour {
GameObject btn;
// Use this for initialization
void Start () {
btn = GameObject.Find("Canvas").transform.GetChild(0).gameObject;
btn.GetComponent<Button>().onClick.AddListener(MoveQJ2);
}
public void MoveQJ2()
{
transform.position += Vector3.right * 20;
}
// Update is called once per frame
void Update () {
transform.Rotate(-Input.GetAxis("Mouse Y"), Input.GetAxis("Mouse X"), 0);
transform.eulerAngles = new Vector3(transform.eulerAngles.x, transform.eulerAngles.y, 0);
}
}
- 这里就实现了全景图的转换
创建全局视频
- 和之前一样,创建sphere,改变mesh值
- 把全局视频直接拖到球体上
- 再加上audio source组件
- 球体上有个video player组件,组件上面有个audio source
- 点上后面的圆,在出现的面板上选择sphere,或者可以直接把刚才加上的audio source组件拖进那里
- 这样播放全局视频的时候就有声音了
- 我们可以把刚才的image再复制一份,放到第二个全景图那里,实现在第一个全景图跳到第二个全景图然后跳到第三个全景视频里,在脚本里再添加几行代码就行
运行效果
Unity 2017.4.36
- 传进去的包里面有个VR预制体,删掉原来的相机,直接运行就是VR立体效果