在 《王者荣耀》 登入界面

左右上下晃动手机(有些手机不支持)可以看到背景在变化

我使用的是iPhone SE 效果如下:

对比两张图片的左下角 可以看到差异

至于为什么要这么做:

1.使用贴图资源实现一个简单动画效果

2.有点3D感觉

3.可能策划闲的没事做

反正策划需求要实现《王者荣耀》的效果

苦逼的程序开始填坑之路

实现这个功能 我用了2天 具体的坑就不一一说明了

上代码

using UnityEngine;
using System.Collections; public class GravityAnimation : MonoBehaviour
{
//方向是否反向移动
public bool isReverseX = false;
public bool isReverseY = false; //贴图移动极限值
public float maxX;
public float minX;
public float maxY;
public float minY; //范围(防止画面抖动)
public float range = 0.01f; //区间(陀螺仪的值改变多少区间 完成整个移动)
public float section = 0.3f; //上一帧陀螺仪的值
Vector3 lastAttitude = Vector3.zero; //移动平均值
float meanX;
float meanY; void Start()
{
Input.gyro.enabled = true;
} // Update is called once per frame
void Update()
{
if (transform == null)
{
return;
} //获取陀螺仪的值
Vector3 attitude = new Vector3(Input.gyro.attitude.x, Input.gyro.attitude.y, ); //使安全范围内 - 1之1
attitude.x = Tool(attitude.x, , -);
attitude.y = Tool(attitude.y, , -); float x = transform.localPosition.x;
float y = transform.localPosition.y; //如果这帧变化不大 则使用上帧的值 防止抖动;
if (System.Math.Abs(lastAttitude.x - attitude.x) >= range)
{
//这帧的偏移量
float direction = attitude.x - lastAttitude.x; meanX = (maxX - minX) / section; //偏移量对于的实际坐标位移
float Position = direction * meanX; if (isReverseX)
{
x = Tool(transform.localPosition.x + Position, maxX, minX);
}
else
{
x = Tool(transform.localPosition.x - Position, maxX, minX);
}
} //如果这帧变化不大 则使用上帧的值 防止抖动;
if (System.Math.Abs(lastAttitude.y - attitude.y) >= range)
{
//这帧的偏移量
float direction = attitude.y - lastAttitude.y; meanY = (maxY - minY) / section;
//偏移量对于的实际坐标位移
float Position = direction * meanY; if (isReverseY)
{
y = Tool(transform.localPosition.y + Position, maxY, minY);
}
else
{
y = Tool(transform.localPosition.y - Position, maxY, minY);
}
} transform.localPosition = new Vector3(x, y, transform.localPosition.z); //保存值
lastAttitude = attitude; } //使第origin的值在界限之内
float Tool(float origin, float max, float min)
{
float retrun = origin; if (retrun >= max)
{
retrun = max;
}
else if (retrun <= min)
{
retrun = min;
} return retrun;
} }

上Demo链接

链接:http://pan.baidu.com/s/1o7AoPg2 密码:qmsr

我总觉得本文章的实现方法可能有问题

如果你有更好的方法

跪求

Unity 使用 陀螺仪 实现 《王者荣耀》 登入界面 背景动态效果的更多相关文章

  1. PCB 720全景图嵌入登入界面应用实现

    通常软件主界面或登入界面背景图片通常采用固定图片,这里介绍如何将720度全景图嵌入到登入界面中来, 这里用的素材来源于这里上个月在公司里拍摄的全景图, 一.拍摄720度全景图片, 建议:最好用三角固定 ...

  2. iOS开发——实用篇Swift篇&QQ登入界面实现

    QQ登入界面实现 我们知道在App Store中几乎所有软件都设计到账户的登入,而我们最常见的就是QQ,微信,在没有踏入程序员这条不归路之前,看到一个个的界面都感觉好高大上的样子. 在学习的过程中,自 ...

  3. python编辑用户登入界面

    1.需求分析 登入界面需要达到以下要求: 系统要有登入和注册两个选项可供选择 系统要能够实现登入出错提示,比如账户密码错误等,用户信息保存在user_info.txt文件夹中 系统要能够进行登入错误次 ...

  4. 《慕客网:IOS动画案例之会跳动的登入界面(下)》学习笔记 -Sketch的使用

    导出选中的一个图片,比如这里我们选中background,然后点击软件的右下角,可以设置导出的尺寸: 然后添加1倍,2倍,3倍的尺寸,因为在ihpne6之后就需要这三个尺寸倍数的UI,以适应不同设备的 ...

  5. 《慕客网:IOS动画案例之会跳动的登入界面(上)》学习笔记 -Sketch的使用

    选中需要放进文件夹里的文件,然后按command+G,就会自动生成文件夹并把需要放进的文件包含进去了.(组 Group) 选中需要锁住的图层,然后按command+shift+L就可以将图层锁住.(锁 ...

  6. Spring Boot SSO单点登入

    https://github.com/ITDragonBlog/daydayup/tree/master/SpringBoot-SSO 流程图: 1: Redis 保存用户信息 到Redis(KEY- ...

  7. Ubuntu16.04以root身份登入!

    首先以非root用户身份登入系统. 1,修改root密码:启动shell,随后在shell里面输入命令: sudo passwd root 最后输入root要使用的密码,需要输入两次,这样root密码 ...

  8. ubuntu - 14.04,由于安装软件造成磁盘空间不足,无法登入Gnome解决办法!!

    刚才安装了半天软件,最后出现磁盘空间不足的问题,刚开始我还以为ubuntu和我开玩笑,随后我重新启动它才发现真不是开玩笑,我已经进不去Gnome桌面了!!! 解决办法: 1,以root身份进入shel ...

  9. 网络爬虫之requests模块的使用+Github自动登入认证

    本篇博客将带领大家梳理爬虫中的requests模块,并结合Github的自动登入验证具体讲解requests模块的参数. 一.引入:   我们先来看如下的例子,初步体验下requests模块的使用: ...

随机推荐

  1. 201521123099 《Java程序设计》第2周学习总结

    1. 本周学习总结 1.Java对我来说难度还是很大.需要花更多时间去学习. 2. 书面作业 1.使用Eclipse关联jdk源代码,并查看String对象的源代码(截图)?分析String使用什么来 ...

  2. java课设

    1.代码截图: 2.设计思路 建立GUI界面,系统产生一个随机数(对用户不可见),然后用户输入猜测数,系统根据用户每次输入的数据给出评语(偏大,偏小,猜测成功).当用户最终猜测成功后,就把当次的随机数 ...

  3. 201521123015 《JAVA程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业:本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...

  4. Eclipse rap 富客户端开发总结(7) : 如何修改rap的样式

    1. Rap样式原理  Rap的界面样式目前是以css来配置的,程序启动后加载相应的css配置文件再对组件进行样式设置,界面上的所有组件 Label button composit等的样式最开始都是通 ...

  5. Javascript跳转页面和打开新窗口等方法

    1.在原来的窗体中直接跳转用onClick="window.location.href='你所要跳转的页面';" 2.在新窗体中打开页面用:onclick="window ...

  6. Spring4 customEditors

    Spring4.0版本以后customEditors属性为Map<Class<?>, Class<? extends PropertyEditor>>,所以用key ...

  7. 函数原型属性-JavaScript深入浅出(三)

    前两次总结了JavaScript中的基本数据类型(值类型<引用类型>,引用类型<复杂值>)以及他们在内存中的存储,对内存空间有了一个简单的了解,以及第二次总结了this深入浅出 ...

  8. webpack + vue + node 打造单页面(入门篇)

    1.node下载地址:http://nodejs.cn/download/,安装完成检查node和npm版本 2.淘宝镜像 : npm install cnpm -g --registry=https ...

  9. Linux Ubuntu从零开始部署web环境及项目 -----快捷键设置(四)

    上篇将了如何在linux部署web项目,这篇介绍如何设置常用快捷键 一.路径快捷键设置 临时快捷键设置:  执行XShel,输入: alias 'aa=cd /etc/sysconfig'       ...

  10. 比较JqGrid与XtraGrid

    此只能比较两者的功能优劣,实现某种功能.效果的方便性和效率.首先分别粗略介绍XtraGrid和jqGrid DevExpress是目前.net下最为强大和完整的UI控件库, XtraGrid是这个控件 ...