zoukankan      html  css  js  c++  java
  • 技能CDDemo(点击鼠标左键实现技能界面旋转)

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    
    public class HealthController : MonoBehaviour {
    
        //当前对象是血条还是蓝条
        public bool isHealth = false;
        //虚拟轴,横轴,纵轴
        private float hor,ver;
        //血条的最大宽度
        private float healthMaxWidth = 470;
        //蓝条的最大宽度
        private float powerMaxWidth = 425;
        //当前的虚拟轴
        private float currentAxis;
        //当前的最大宽度
        private float currentMaxWidth;
        //RectTransform组件
        private RectTransform rectTr;
        //速度
        public float speed = 100;
        //血条文本
        public Text healthText;
        //蓝条文本
        public Text powerText;
        //血条蓝条的最大值
        public float healthMaxValue = 1000f;
        public float powerMaxValue = 500f;
        //当前的条的最大值
        private float currentMaxValue;
        //当前修改的文本显示框
        private Text currentText;
    
        void Start()
        {
            rectTr = GetComponent<RectTransform> ();
        }
    
        void Update()
        {
            hor = Input.GetAxis ("Horizontal");
            ver = Input.GetAxis ("Vertical");
            //如果是血条
            if (isHealth) {
                currentAxis = hor;
                currentMaxWidth = healthMaxWidth;
                currentText = healthText;
                currentMaxValue = healthMaxValue;
            }
            //如果是蓝条
            else {
                currentAxis = ver;
                currentMaxWidth = powerMaxWidth;
                currentText = powerText;
                currentMaxValue = powerMaxValue;
            }
            //根据用户的操作,计算当前条的宽度
            float newWidth = rectTr.sizeDelta.x +
                currentAxis * Time.deltaTime * speed;
            //限制宽度
            float realWidth = Mathf.Clamp (newWidth, 0, currentMaxWidth);
            //赋值到RectTransform
            rectTr.sizeDelta = new Vector2(realWidth,rectTr.sizeDelta.y);
            //计算当前数值
            float currentValue = (realWidth / currentMaxWidth) * currentMaxValue;
            //转整数操作
            currentValue = Mathf.Round (currentValue);
            //将数值信息显示到Text
            currentText.text = currentValue.ToString () + "/"
                + currentMaxValue.ToString ();
        }
    }

    技能组件界面  ImageType是Filled类型 数值是1与脚本里面初始值一致,脚本控制其数字从1-0减小调整白色画布填充,达到有技能冷却效果。

  • 相关阅读:
    个人作业3——个人总结(Alpha阶段)
    单元测试
    个人作业2——英语学习APP案例分析
    结对作业-基于GUI的四则运算
    个人作业1:小学四则运算——基于控制台
    个人作业3--------个人总结(Alpha版本)
    结对作业 2
    个人作业 2
    结对作业 肖荣森(201421123079) 苏上鑫(201421123081)
    作业1---四则运算
  • 原文地址:https://www.cnblogs.com/VR-1024/p/6011699.html
Copyright © 2011-2022 走看看