前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零基础入门 27:加载Loading的制作和使用

零基础入门 27:加载Loading的制作和使用

作者头像
韩东吉
发布2018-10-19 16:57:47
1.1K0
发布2018-10-19 16:57:47
举报

今天要给大家说的是一个游戏中很常见的东西,想必大家也都不会陌生,那就是加载的Loading,俗称游戏里的小菊花。

效果图如下

那究竟应该如何制作使用呢?今天就来给大家简单明了的说一下简易制作的方式,并且我会提供出相关代码。

正题开始


加载Loading的制作首先需要有资源,并且要有提供触发方式的逻辑,本文里我会先把小菊花的预设做好,能够让大家直接运行的时候就能看到直观的效果,然后再通过点击按钮的形式,加载出这个菊花,来给大家演示下实际功能。

第一步,先制作好一个菊花的预设。

制作流程如下图,首先创建了一个父节点,命名为Loading,然后在Loading内部创建一个Image,赋上菊花的贴图,然后又创建了一个Image,名为bg,然后把bg的贴图去掉后,调成半透黑色即可。

到这一步完成后,菊花的预设就已经做好了,然后在项目内创建一个Resources的文件夹,就和上图一样,然后把Loading的预设放到里面即可。

如下图

接下来呢,就是创建一个脚本,然后通过简单的逻辑,让我们的loading转起来。

这里我创建一个名为aaaaaa的测试脚本,大家可以随便起名。

脚本内容如下

公开一个Image。然后把我们的菊花关联即可。定义一个变量m_value,用来当做变化的值,然后在FixedUpdate函数中固定刷新m_value的值,然后将刷新后的值复制给小菊花去设置他的旋转值,就是这么简单。

代码如下

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

using System;

using System.Collections.Generic;

public class aaaaaa : MonoBehaviour

{

#region Public Attributes

public Image m_img;

#endregion

#region Private Attributes

private float m_value = 0;

#endregion

#region Unity Messages

void FixedUpdate()

{

m_value -= 300 * Time.deltaTime;

m_img.transform.rotation = Quaternion.Euler(new Vector3(0,

0, m_value));

}

#endregion

#region Public Methods

#endregion

#region Override Methods

#endregion

#region Private Methods

#endregion

#region Inner

#endregion

}

之后,就是把这个脚本挂到Loading预设上,然后把我们的菊花loading的Image拖动到脚本上即可。

如下图

此时,我们把Loading拖到Hierarchy面板中,运行,就已经可以看到转圈的Loading了

接下来就剩下最后一步,通过点击按钮,把菊花loading加载出来。

我们在场景中删除Loading,然后创建一个按钮命名为loadprefab,如下图

然后在创建一个脚本,用来响应按钮的点击事件。这里我随便创建一个名为aaaasdsss的脚本,脚本内容如下

如上图中,我公开一个btn,和一个canvas,目的在于响应btn的点击事件,然后加载出loading菊花预设后,把canvas设置为菊花的父节点。

在点击事件的lambda表达式中,第一句代码根据路径"Loading",从Resources路径下加载出这个菊花的预设,然后通过Instantiate方式实例化到场景中,第二句是把实例化出来的菊花预设的父节点设置为我们的canvas,然后第三四句的目的就是设置正确的菊花的坐标系和大小。最后一句是隐藏了btn按钮。

代码如下

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

public class aaaasdsss : MonoBehaviour

{

#region Public Attributes

public Button m_btn;

public Canvas m_canvas;

#endregion

#region Private Attributes

#endregion

#region Unity Messages

void Start()

{

m_btn.onClick.AddListener(()=>

{

GameObject go = GameObject.Instantiate(Resources.Load("loading") as GameObject);

go.transform.SetParent(m_canvas.transform);

go.GetComponent<RectTransform>().anchoredPosition = new Vector2(0,0);

go.GetComponent<RectTransform>().sizeDelta = new Vector2(0,0);

m_btn.gameObject.SetActive(false);

});

}

#endregion

#region Public Methods

#endregion

#region Override Methods

#endregion

#region Private Methods

#endregion

#region Inner

#endregion

}

然后把这个脚本拖动我们的canvas上,把按钮和canvas拖动到右侧脚本上即可关联。

然后运行项目,点击按钮就可以加载出我们的菊花Loading了。

如下图。

好啦,今天的小菊花课堂大家掌握了吗?

分享到这就结束啦~让我再想想下一篇围绕什么内容展开分享

再见咯

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 韩东吉的Unity杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档