今天要给大家说的是一个游戏中很常见的东西,想必大家也都不会陌生,那就是加载的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了。
如下图。
好啦,今天的小菊花课堂大家掌握了吗?
分享到这就结束啦~让我再想想下一篇围绕什么内容展开分享
再见咯
本文分享自 韩东吉的Unity杂货铺 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!