• Unity NGUI实现技能CD效果


    unity版本:4.5.1  NGUI版本:3.6.5  脚本代码:C#

      在游戏中经常要实现技能的CD效果,NGUI中已经实现了这个功能,即在button上创建一个半透明的Sprite实现这个功能。

      首先要创建一个按钮,点击可以触发技能特效,参考博文:http://www.cnblogs.com/vitah/p/3858924.html,接下来在这个基础上实现技能CD的效果:

    1、在button下新建一个Sprite,具体操作为NGUI——Create——Sprite:

    2、修改Sprite的各项属性:

    其中的Atlas和Sprite即选择的效果,可以找一个比较合适的,红色方框中的设置比较重要,Type一定要设置成Filled才有那个效果;

    Fill Amount:初始时所占的百分比;

    Invert Fill:顺时针旋转或者逆时针旋转;

    Size:可以调整下面Widget中的Size使精灵的大小适应按钮的大小;

    3、接下来就是在脚本中实现阴影部分面积随着技能CD剩余时间减少的效果,脚本代码:

    using UnityEngine;
    using System.Collections;
    
    public class test2 : MonoBehaviour {
    
        // 技能是否处于CD状态
        public bool isCD; 
    
        // button下的sprite中的UISorite
        UISprite sprite;
    
        // 技能CD时间
        public float timeCD = 5f;
    
        // skill effect.
        public GameObject skillEffect;   
        // Use this for initialization
        void Start () {
            // 初始化,找到对应的sprite
            sprite = GameObject.Find ("UI Root/Camera/Anchor/Panel/button/Sprite").GetComponent<UISprite> ();
            isCD = false;
        }
    
    
        void Update ()
        {
            // 技能处于CD状态,每次更新阴影部分面积
            if (isCD == true)
            {
                sprite.fillAmount -= Time.deltaTime/timeCD;
    
                if (sprite.fillAmount == 0) 
                {
                    isCD = false;
                }
            }
        }
    
        //点击时候如果在冷却中,提示技能CD,否则触发特效,开启CD效果
        void OnClick ()
        {
            if (isCD == false)
            {
                isCD = true;
                sprite.fillAmount = 1f;
                Debug.Log ("技能释放");
                Instantiate (skillEffect);
            }else
                Debug.Log ("技能CD");
        }
    }
    View Code

      代码量不多,比较简单,不再赘述;

    4、接下来就可以看运行效果:

      感觉用NGUI还是比较容易实现的,不用NGUI的实现方法就不会了~~

    参考链接:http://www.xuanyusong.com/archives/2399

  • 相关阅读:
    Javascript-DOM
    我的小站成长之路
    Reverse Proxy Vs Forward Proxy
    SSO-单点统一登录系统的设计与实现
    关于网络实名制
    LoggerOne
    AmpOne
    Get a handle on PHP Handlers
    Which PHP mode? Apache vs CGI vs FastCGI
    强制浏览器在点击回退按钮时重载刷新页面
  • 原文地址:https://www.cnblogs.com/vitah/p/3861031.html
Copyright © 2020-2023  润新知