FairyGUI学习

这篇博客介绍了如何在FairyGUI中创建UI组件并导出到Unity,以及在Unity中加载和使用这些组件。作者详细展示了从创建WindowFrame和Window,到设置人物状态按钮和旋转功能的全过程。同时,文中还提供了Unity端的加载人物状态纹理的代码实现,并通过事件监听处理人物旋转操作。

官方文档&UnitySDK

官方文档
UnitySDK

关于Fairy导出及使用

在FairyGUI中导出的文件,在加载方面相关的命名有着许多的困惑,在自己调试了之后解决了问题。

首先是在FairyGUI中我们已经做好的组件,名字是这样的
在这里插入图片描述

然后打包到unity中是这样的
在这里插入图片描述
最后加载相关的代码是这样的
在这里插入图片描述
也就是说加载的话用的名字是和FairyGUI中的一样。

官方案例

人物状态

(1)首先在FairyGUI创建一个WindowFrame组件(设置基本的背景,关闭按钮,拖拽区域),这个命名按照规范命名的话可以使用官方封装好的方法
在这里插入图片描述

基本预览图如图所示
在这里插入图片描述

(2)然后创建一个Window添加相应的功能,比如人物的旋转按钮以及人物的加载
在这里插入图片描述

这个Graph属性中图形设置为空白。
(3)设置界面的人物状态弹出按钮,导出到Unity中,记得在Unity中安装SDK
在这里插入图片描述
这里就来到了Unity
(4)首先创建一个UIPanel设置其中的PackageName
(5)创建一个人物并创建一个专属的相机对准这个人物,并且创建一个RenderTexture赋值给我们新创建的相机,在创建一个这张RenderTexture的专属材质球。这些在我们记载这个人物状态(图片右下角)的时候会用到。
在这里插入图片描述
(6)为这个UIPanel创建脚本并且添加上去

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FairyGUI;

public class CharacterState : MonoBehaviour
{
    public GameObject player;


    private GComponent mainUI;
    private Window window;

    private GButton btnCharacter;
    private GButton btnLeft;
    private GButton btnRight;

    private void Start()
    {
        mainUI = GetComponent<UIPanel>().ui;
        window = new Window();
        window.contentPane = UIPackage.CreateObject("CharacterState", "Window").asCom;
     
        WindowComInit();
    }

    private void WindowComInit()
    {
        //角色状态按钮的获取&事件的注册
        btnCharacter = mainUI.GetChild("n1").asButton;
        btnCharacter.onClick.Add(OnCharacterBtnClick);

        //旋转按钮的获取&事件注册
        btnLeft = window.contentPane.GetChild("n2").asButton;
        btnRight = window.contentPane.GetChild("n3").asButton;
        btnLeft.onClick.Add(OnBtnLeftClick);
        btnRight.onClick.Add(OnBtnRightClick);
            
        LoadCharacterTexture();
    }

    private void LoadCharacterTexture()
    {
        GGraph gGraph = window.contentPane.GetChild("n1").asGraph;
        Image image = new Image();
        RenderTexture renderTexture = Resources.Load<RenderTexture>("Model/PlayerRT");
        Material mat = Resources.Load<Material>("Model/PlayerMat");

        image.texture = new NTexture(renderTexture);
        image.material = mat;
        gGraph.SetNativeObject(image);

    }

    /// <summary>
    /// 角色状态的按钮事件
    /// </summary>
    private void OnCharacterBtnClick()
    {
        window.Show();
        window.SetPosition(400, 300, 0);
    }

    private void OnBtnRightClick()
    {
        Debug.Log("right");
        player.transform.Rotate(Vector3.up * 30, Space.World);
    }

    private void OnBtnLeftClick()
    {
        Debug.Log("left");
        player.transform.Rotate(Vector3.up * -30, Space.World);
    }
}

内容概要:文章以“智能网页数据标注工具”为例,深入探讨了谷歌浏览器扩展在毕业设计中的实战应用。通过开发具备实体识别、情感分类等功能的浏览器扩展,学生能够融合前端开发、自然语言处理(NLP)、本地存储与模型推理等技术,实现高效的网页数据标注系统。文中详细解析了扩展的技术架构,涵盖Manifest V3配置、内容脚本与Service Worker协作、TensorFlow.js模型在浏览器端的轻量化部署与推理流程,并提供了核心代码实现,包括文本选择、标注工具栏动态生成、高亮显示及模型预测功能。同时展望了多模态标注、主动学习与边缘计算协同等未来发展方向。; 适合人群:具备前端开发基础、熟悉JavaScript和浏览器机制,有一定AI模型应用经验的计算机相关专业本科生或研究生,尤其适合将浏览器扩展与人工智能结合进行毕业设计的学生。; 使用场景及目标:①掌握浏览器扩展开发全流程,理解内容脚本、Service Worker与弹出页的通信机制;②实现在浏览器端运行轻量级AI模型(如NER、情感分析)的技术方案;③构建可用于真实场景的数据标注工具,提升标注效率并探索主动学习、协同标注等智能化功能。; 阅读建议:建议结合代码实例搭建开发环境,逐步实现标注功能并集成本地模型推理。重点关注模型轻量化、内存管理与DOM操作的稳定性,在实践中理解浏览器扩展的安全机制与性能优化策略。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值