在 《王者荣耀》 登入界面

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

我使用的是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. 大家一起来找茬(BUG)

    大家一起来找茬(BUG) ----------目录---------- 一.上手体验 1.主界面 2.功能 二.程序的 BUG 三.必应词典的 BUG 1."每日一句"里的句子不能 ...

  2. 团队作业八——第二次团队冲刺(Beta版本)第7天&项目汇总

    项目汇总 第一天:http://www.cnblogs.com/newteam6/p/6879383.html 第二天:http://www.cnblogs.com/newteam6/p/688078 ...

  3. 【Beta阶段】第二次scrum meeting

    Coding/OSChina 地址 1. 会议内容 学号 主要负责的方向 昨日任务 昨日任务完成进度 接下去要做 99 PM 会议总结,博客编写,代码整理 100% 准备下一次会议内容,并对已完成的代 ...

  4. 201521123090 《Java程序设计》 第8周学习总结

    本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 书面作业 本次作业题集集合 List中指定元素的删除(题目4-1) 1.1 ...

  5. 201521123105 第七周Java学习总结

    1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 以下是ArrayList的contains源代码: public boole ...

  6. 201521123101 《Java程序设计》第5周学习总结

    1. 本周学习总结 2. 书面作业 1. 代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出结果. 不能 ...

  7. 201521123119《Java程序设计》第1周学习总结

    1.本周学习总结    1.Java语言是一种多用途的语言.并发的语言.以类为基础,面向对象的语言. 2.Java比C++更加方便,有辅助输入,编写速度大大加快. 3.Java根据应用领域不同,区分为 ...

  8. 201521123044 《Java程序设计》第13周学习总结

    1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 1.网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.ed ...

  9. 201521123073 《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1. finally 题目4-2 1.1 截图你的提交结果( ...

  10. 201521123113《Java程序设计》第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...