Unity全景图
来源:互联网 发布:python中文注释 编辑:程序博客网 时间:2024/05/21 17:14
目的:
- 1:在Unity中浏览全景图
- 2:利用移动端陀螺仪浏览全景图
- 3:在移动端没有陀螺仪情况下通过手指滑动浏览全景图
在Unity中如何创建全景图:
- 在Untiy中导入一个球体,用作承载全景图,将球体的位置设置为坐标原点;
- 然后在Unit中创建一个Camera,作为查看全景图的视觉;
- 最后为方便管理,为球体及Camera创建一个父物体panorama;
如下所示:
基本效果如下所示:
移动端处理:
代码及注释如下所示
using UnityEngine;using System.Collections;/// <summary>/// Made by Bruce/// </summary>public class Gyro : MonoBehaviour{ Quaternion quatMult; protected void Start() { if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.OSXEditor) this.enabled = false; //设置设备陀螺仪的开启/关闭状态,使用陀螺仪功能必须设置为 true, Input.gyro.enabled = true; //判断移动设备是否有陀螺仪————亲自测试OPPO R9手机并没有陀螺仪 if (Input.gyro.enabled) { //获取设备重力加速度向量 Vector3 deviceGravity = Input.gyro.gravity; //设备的旋转速度,返回结果为x,y,z轴的旋转速度,单位为(弧度/秒) Vector3 rotationVelocity = Input.gyro.rotationRate; //获取更加精确的旋转 Vector3 rotationVelocity2 = Input.gyro.rotationRateUnbiased; //设置陀螺仪的更新检索时间,即隔 0.1秒更新一次 Input.gyro.updateInterval = 0.1f; //获取移除重力加速度后设备的加速度 Vector3 acceleration = Input.gyro.userAcceleration; quatMult = new Quaternion(0, 0, 1, 0); } else { //提示用户使用手指滑动查看全景图——Toast.ShowText("请单指滑动查看全景图", 5); } } protected void Update() { //如果可以使用陀螺仪 if (Input.gyro.enabled) { transform.rotation = Input.gyro.attitude * quatMult; } else { #region 单点触发旋转(真实模型旋转) if (Input.touchCount == 1) { //触摸为移动类型 if (Input.GetTouch(0).phase == TouchPhase.Moved) { float XX = Input.GetAxis("Mouse X"); float YY = Input.GetAxis("Mouse Y"); #region if (Mathf.Abs(XX) >= Mathf.Abs(YY)) { if (XX < 0) { transform.Rotate(Vector3.up, 60 * Time.deltaTime, Space.Self); } if (XX > 0) { transform.Rotate(-Vector3.up, 60 * Time.deltaTime, Space.Self); } } else { if (YY < 0) { transform.Rotate(Vector3.left, 60 * Time.deltaTime, Space.Self); } if (YY > 0) { transform.Rotate(-Vector3.left, 60 * Time.deltaTime, Space.Self); } } #endregion } } #endregion } } void OnDestory() { Input.gyro.enabled = false; }}
注:
以上代码处理了存在陀螺仪情况已经设备没有陀螺仪的情况(没有的情况下,使用的是单指滑动屏幕查看全景图,具体的查看方式可以自己写。)
0 0
- Unity全景图
- unity 360°全景图
- Unity 截取360全景图、浏览全景图
- 全景图(一):使用Unity完成水晶球纹理贴图
- unity中简单全景搭建
- Unity全景项目经验Q&A
- unity用oculus播放全景视频
- Unity学习之全景球的制作
- Unity显示360度全景照片
- UE4 导出全景图和全景视频
- 【自己写全景】TreeJs实现全景图
- 关于全景图浏览
- Microsoft Live全景图
- 入侵检测全景图
- 全景图技术
- 软件测试全景图
- 软件测试全景图
- 软件测试全景图
- 12.9 bzoj1214 [HNOI2004]FTP服务器
- elasticsearch5.0安装
- 这是用原声js编写的地址选择器,使用select编写的三联选择器
- C# 里 Unix时间戳转DateTime
- 关于平方根倒数速算法(雷神之锤3,牛B)
- Unity全景图
- 推荐算法---基于用户的协同过滤算法
- Android Studio多渠道打包
- DZNEmptyDataSet在iOS7时重新加载按钮点击无效
- 短信倒计时自定义按钮
- LeetCode111:Minimum Depth of Binary Tree
- base64计算方法
- 梳理一下重新拿到一个编辑器该做些什么
- HTTP接口跨域-服务端接受返回处理