当前位置:网站首页>FairyGUI增益BUFF數值改變的顯示
FairyGUI增益BUFF數值改變的顯示
2022-07-06 12:42:00 【SQ劉】
FairyGUI增益BUFF數值改變的顯示
一、FGUI中的操作
1、導入資源

2、新建兩個比特圖字體和一個動畫
(1)addValue比特圖字體



(2)attackValue比特圖字體



(3)Fire動畫



3、新建一個字體和背景

緊接著可以在右邊添加一個序列幀動畫,當戰鬥力增加的時候,讓火焰閃現。如下圖所示:
4、添加動效
(1)添加動效之前,先添加組,這樣對後續的一些處理會比較方便。
全選,按住Ctrl+G,打組,並選擇高級組

(2)添加動效


還可添加一些小細節,就是火焰也需要添加特效。我們希望當玩家的數值改變的時候,也就是戰鬥力增大的時候,讓火焰顯現出來,錶示變强了。
(1)首先對火焰的軸心重新設置一下,再將它的不透明度改為0
(2)再次進入動效編輯,自己隨便嘗試做一些特效,無具體要求
(3)做一些小小的改動
5、制作按鈕
通過點擊按鈕來增加數值的值。
(1)導入素材

(2)新建組件,用來控制按鈕顯示,也就是主場景(主面板)

(3)新建按鈕

(4)將按鈕拖入到Component1組件中
6、打包發布



二、Unity中的操作
1、顯示按鈕


2、編寫脚本

注意:需要引入DOTween.dll庫,首先需要在Unity的資源商店裏搜索“dotween”,進行下載後導入,方可在C#脚本中引入using DG.Tweening;的命名空間。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;
using DG.Tweening;
public class ZengYiBUFF : MonoBehaviour
{
private GComponent mainUI; //主UI
private GComponent addValueCom; //增加值的組件
private float startValue; //結束值
private float endValue; //開始值
void Start()
{
mainUI = GetComponent<UIPanel>().ui; //獲取主UI
addValueCom = UIPackage.CreateObject("Package1", "AddValue").asCom;
//.asCom把它轉成GComponent類型
addValueCom.GetTransition("t0").SetHook("AddValue", AddAttackValue); //設置FGUI中所添加標簽對應關鍵幀的事件
mainUI.GetChild("n0").onClick.Add(() => {
PlayUI(addValueCom); }); //給按鈕注册一下監聽事件
//設置一下它的標簽狀態
}
// Update is called once per frame
void Update()
{
}
private void PlayUI(GComponent targetCom)
{
mainUI.GetChild("n0").visible = false;
GRoot.inst.AddChild(targetCom);
Transition t = targetCom.GetTransition("t0");//設置動效關聯
startValue = 10000;
int add = Random.Range(1000, 3000);
endValue = startValue + add;
addValueCom.GetChild("n2").text = startValue.ToString();
addValueCom.GetChild("n4").text = add.ToString();
t.Play(() =>
{
mainUI.GetChild("n0").visible = true;
GRoot.inst.RemoveChild(targetCom);
}
);
}
/// <summary>
///該方法是將當前戰鬥力從10000增加到12000,
///需要引入using DG.Tweening命名空間(Unity資源商店中下載)
/// </summary>
private void AddAttackValue()
{
DOTween.To(() => startValue, x => {
addValueCom.GetChild("n2").text = Mathf.Floor(x).ToString(); }, endValue, 0.3f).SetEase(Ease.Linear).SetUpdate(true);
}
}
3、運行效果

边栏推荐
- idea中导包方法
- Unity场景跳转及退出
- CUDA C programming authoritative guide Grossman Chapter 4 global memory
- [Nodejs] 20. Koa2 onion ring model ----- code demonstration
- (1) Introduction Guide to R language - the first step of data analysis
- Redis 缓存更新策略,缓存穿透、雪崩、击穿问题
- [leetcode15] sum of three numbers
- [leetcode19]删除链表中倒数第n个结点
- Minio file download problem - inputstream:closed
- Working principle of genius telephone watch Z3
猜你喜欢

FairyGUI复选框与进度条的组合使用

编译原理:源程序的预处理及词法分析程序的设计与实现(含代码)

(五)R语言入门生物信息学——ORF和序列分析

Basic operations of databases and tables ----- classification of data

(core focus of software engineering review) Chapter V detailed design exercises

ES6 grammar summary -- Part I (basic)

First use of dosbox

JS變量類型以及常用類型轉換

Office提示您的许可证不是正版弹框解决

(三)R语言的生物信息学入门——Function, data.frame, 简单DNA读取与分析
随机推荐
Redis cache update strategy, cache penetration, avalanche, breakdown problems
CUDA C programming authoritative guide Grossman Chapter 4 global memory
MySQL time, time zone, auto fill 0
ESP8266连接onenet(旧版MQTT方式)
Pat 1097 duplication on a linked list (25 points)
[offer9] implement queues with two stacks
JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
Problèmes avec MySQL time, fuseau horaire, remplissage automatique 0
如何给Arduino项目添加音乐播放功能
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)
idea问题记录
1081 rational sum (20 points) points add up to total points
NRF24L01故障排查
Compilation principle: preprocessing of source program and design and implementation of lexical analysis program (including code)
How to add music playback function to Arduino project
Guided package method in idea
MySQL时间、时区、自动填充0的问题
C programming exercise
JUC forkjoin and completable future
JS function promotion and declaration promotion of VaR variable