最近在写一个Unity3d的模仿windows10的桌面的程序,由于Unity3d本身不支持Gif图片,所以突发奇想使用代码来实现接近的。

接下来是代码部分:不一一解析,很简单,看的懂原理就Okly了。

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class LoadImg : MonoBehaviour {
public GameObject[] gms;
Dictionary<int, float> speed = new Dictionary<int, float>();
public float s=;
// Use this for initialization
void Awake()
{
hide = false; for (int i = ; i < gms.Length; i++)
{
gms[i].transform.localEulerAngles = Vector3.back * i * 23.3f;
speed.Add(i, s);
}
StartCoroutine(RUN()); }
private void Rest()
{
if (hide)
{
for (int i = ; i < gms.Length; i++)
{
gms[i].transform.eulerAngles = Vector3.back * i * 23.3f;
}
}
StartCoroutine(RUN());
}
// Update is called once per frame
void FixedUpdate () {
for(int i = ; i < gms.Length; i++)
{
gms[i].transform.Rotate(Vector3.back * Time.deltaTime*speed[i]);
}
}
bool hide = false;
IEnumerator RUN()
{ for (int i = gms.Length-; i >=; i--)
{ if (hide)
{
StartCoroutine(SETSpeed(i));
yield return new WaitForSeconds(0.123f);
gms[i].SetActive(true); }
else
{
StartCoroutine(SETSpeed(i));
yield return new WaitForSeconds(0.123f);
gms[i].SetActive(false);
} }
if (hide)
{
yield return new WaitForSeconds(2.23f);
}
else
{
yield return new WaitForSeconds(1.23f); }
hide = !hide;
Rest(); }
IEnumerator SETSpeed(int i)
{
speed[i] = 2.23f * s;
yield return new WaitForSeconds(1.23f*0.23f*1.23f);
speed[i] = s;
} }

然后我们创建一个中心偏移的UI,Texture就像这样的:

关于中心偏移:

父对象为的y为0,这个是一个空物体。

子对象LS是一个Image/RawImage,y向上偏移了123个单位长度,然后我们就可以旋转父对象就可以看到子对象在做圆周运动了!

代码绑定:

复制12个上面做的对象放到一个空物体里,重命名复制的对象(这个可以不要不过我强迫症),然后拖到Gms里面(size这个是值个数,12个就写12就会出现12个空,保证每个都单一绑定),S代表的是旋转速度单位(角度/s)

最后保存一下,运行...效果如图:

当然实际效果没有那么生硬。

最后编辑时间 2018/6/27 5:59.

学习笔记-Unity3d代码实现Windows10加载圈圈的效果的更多相关文章

  1. OpenLayers学习笔记(十)— 动态加载JSON数据模拟航迹线

    在openlayers 3 上,加载本地json数据,动态绘制航迹线,以飞机当前位置为地图中心,此例子是模拟DEMO 本文链接:动态加载JSON数据模拟航迹线 作者:狐狸家的鱼 GitHub:八至 前 ...

  2. 高性能javascript学习笔记系列(1) -js的加载和执行

    这篇笔记的内容主要涉及js的脚本位置,如何加载js脚本和脚本文件执行的问题,按照自己的理解结合高性能JavaScript整理出来的 javascript是解释性代码,解释性代码需要经历转化成计算机指令 ...

  3. 【转】ViewPager学习笔记(一)——懒加载

    在项目中ViewPager和Fragment接口框架已经是处处可见,但是在使用中,我们肯定不希望用户在当前页面时就在前后页面的数据,加入数据量很大,而用户又不愿意左右滑动浏览,那么这时候ViewPag ...

  4. [转]ViewPager学习笔记(一)——懒加载

    在项目中ViewPager和Fragment接口框架已经是处处可见,但是在使用中,我们肯定不希望用户在当前页面时就在前后页面的数据,加入数据量很大,而用户又不愿意左右滑动浏览,那么这时候ViewPag ...

  5. easyui学习笔记8—在手风琴中加载其他的页面

    在手风琴中加载其他页面和在表格中加载其他的页面有写类似的,就是请求另外一个页面显示数据. 1.先看看引用的资源文件 <link rel="stylesheet" href=& ...

  6. Duilib学习笔记《07》— 资源加载

    Duilib的界面表现力能如此丰富,很大程度上得益于贴图描述的简单强大.通过之前的学习及参看相关例子,我们可以发现,在XML布局文件中,不管是窗体背景还是控件,都添加了对应的图片资源以此来美化界面.而 ...

  7. 学习笔记TF049:TensorFlow 模型存储加载、队列线程、加载数据、自定义操作

    生成检查点文件(chekpoint file),扩展名.ckpt,tf.train.Saver对象调用Saver.save()生成.包含权重和其他程序定义变量,不包含图结构.另一程序使用,需要重新创建 ...

  8. OpenLayers学习笔记(一)—在线加载谷歌影像地图&离线加载本地瓦片地图

    实现根据在线离线判断加载地图, 在线加载谷歌影响地图, 离线加载本地瓦片地图 作者: 狐狸家的鱼 Github: 八至 html代码 <div id="map" tabind ...

  9. Away3D引擎学习笔记(一)资源加载解析块

    前文:Away3D断断续续用了一段时间了,三维相关的很多算法,计算转换还是有点绕,整理些自己觉得还有点意思东西,希望大家有用. 三维开始,Away3D构架你场景那几行代码各处都有,这里就不copy了, ...

随机推荐

  1. 第五章-处理多窗口 | Electron实战

    本章主要内容: 使用JavaScript Set数据结构跟踪多个窗口 促进主进程和多个渲染器进程之间的通信 使用Node APIs检查应用程序运行在那个平台上 现在,当Fire Sale启动时,它为U ...

  2. centos部署oracle rac单实例11.2.0.3数据库(使用asm磁盘)

    部署oracle rac单实例数据库,需要安装grid和datavase两部分,所以首先创建两个用户oracle和grid,因为不能使用root用户进行安装,在安装之前首先需要修改一些系统参数和安装一 ...

  3. postman 测试http,接口

    1.form-data: 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开.既可以上传键值对,也可以上传文件.当上传的字段是文件时 ...

  4. python基础知识 01

    一.计算机基础知识 计算机有硬件+操作系统+软件应用组成 cpu:人的大脑 内存:人的临时记忆 硬盘:人的永久记忆 操作系统 控制计算机硬件工作的流程 应用程序 安装在操作系统上的软件 二.Pytho ...

  5. jmeter界面字体修改

    实际应用中发现,同样是win10系统,显示器屏幕尺寸大小不同,jmeter界面字体展示也不一样,标准屏幕还可以,大屏幕下不能自动适应屏幕大小放大而且还变的更小.在查询解决方法时,发现有朋友出现类似情况 ...

  6. vue过滤器微信小程序过滤器和百度智能小程序过滤器

    因为最近写了微信小程序和百度小程序,用到了过滤器,感觉还挺好用的,所以就来总结一下,希望能帮到你们. 1. 微信小程序过滤器: 1.1:首先建一个单独的wxs后缀的文件,一般放在utils文件夹里面. ...

  7. ABAP 金额转换成大写

     FUNCTION zzfi_change_amount.*"---------------------------------------------------------------- ...

  8. React单页面应用使用antd的锚点跳转失效

    首先在react项目中引用antd的锚点 import {Anchor} from 'antd';const { Link } = Anchor; <Anchor> <Link hr ...

  9. idea2019.2安装指南

    先去官网下载idea官网地址 下载UItimate版本点击 DOWNLOAD等待下载完成 点击ideaIU-2019.2.exe一路next      可以在这一步选一下 继续next         ...

  10. WPF DataGrid点击列头选择全列并具有背景色

    完成这个操作,主要是XAML的代码. 主要思路是通过绑定多路数据,在多路转换器中返回布尔值,在通过数据触发器来设置被选择的全列的背景色. XAML页面主要代码 首先定义DataGridCell < ...