unity3d fairygui(1)

官方文档描述点击这里
先根据官网一点点学习吧,下载好官方示例

一.包体加载和卸载 几种方式

//===========下面是Resources目录下====================
 //demo就是发布时填写的文件名
 UIPackage.AddPackage("demo");
 
 //如果在子目录下
 UIPackage.AddPackage("路径/demo");

 //如果不放到Resources或者其子目录下,可以传入全路径,但这种方法只能在Editor里使用
 UIPackage.AddPackage("Assets/SomePath/Package1");
 //=============assetbundle==========
 UIPackage.AddPackage(desc_bundle, res_bundle);
 UIPackage.AddPackage(bundle);

//同步加载方式
//assetPath参数底层不使用,但在回调中name参数会带上assetPath作为前缀。
UIPackage.AddPackage(assetPath, (string name, string extension, System.Type type, out DestroyMethod destroyMethod) => {
    //name 资源的路径和名称;
    //extension 资源的扩展名,例如png等;
    //type 资源的类型,例如Texture,AudioClip等;
    //destroyMethod 指示返回的资源应该怎样释放。例如复制的资源实例可以用Destroy,共享的资源实例需要用Unload,不需要底层处理则传None。
    return res;
});


//异步加载方式,适用于Addressable。注意,这种方式必须是异步,不能在回调函数里直接设置结果。
//descData是包的描述数据,需要自行加载出来传入
//assetNamePrefix参数底层不使用,但在回调中name参数会带上assetPath作为前缀。
UIPackage.AddPackage(descData, assetNamePrefix, (string name, string extension, System.Type type, PackageItem item) => {
    //name 资源的路径和名称;
    //extension 资源的扩展名,例如png等;
    //type 资源的类型,例如Texture,AudioClip等;
    //item 参考下面的代码操作
    
    some_asyc_call(()=> {
      //destroyMethod 指示返回的资源应该怎样释放。例如复制的资源实例可以用Destroy,共享的资源实例需要用Unload,不需要底层处理则传None。
      item.owner.SetItemAsset(item, res, destroyMethod);
    });
});

//移除包
 UIPackage.RemovePackage("package");
 //加载所有的资源
 UIPackage.LoadAllAssets
 //释放ui资源包 不移除包 需要恢复是可使用 UIPackage.ReloadAssets 自动恢复
 UIPackage.UnloadAssets
 

二 UIPanel 的使用

他的使用与ugui基本一致 但是他的坐标左上是(0,0)

获取ui 和动态创建uipanel

在这里插入图片描述

//获取ui
 UIPanel panel = gameObject.GetComponent<UIPanel>();
    GComponent view = panel.ui;
    //我们也可以动态创建panel
     //UIPanel的生命周期将和yourGameObject保持一致。再次提醒,注意yourGameObject的layer。
    UIPanel panel = yourGameObject.AddComponent<UIPanel>();
    panel.packageName = “包名”;
    panel.componentName = “组件名”;

    //下面这是设置选项非必须,注意很多属性都要在container上设置,而不是UIPanel
    
    //设置renderMode的方式
    panel.container.renderMode = RenderMode.WorldSpace;

    //设置renderCamera的方式
    panel.container.renderCamera = ...;
    
    //设置fairyBatching的方式
    panel.container.fairyBatching = true;
    
    //设置sortingOrder的方式
    panel.SetSortingOrder(1, true);
    
    //设置hitTestMode的方式
    panel.SetHitTestMode(HitTestMode.Default);
    
    //最后,创建出UI
    panel.CreateUI(); 
    
    //对sortingOrder为100的UIPanel按z进行排序,z值越小,显示在越前面。
    Stage.inst.SortWorldSpacePanelsByZOrder(100);
动态创建UI
GComponent view = UIPackage.CreateObject(“包名”, “组件名”).asCom;
    
    //以下几种方式都可以将view显示出来:
    
    //1,直接加到GRoot显示出来
    GRoot.inst.AddChild(view);
    
    //2,使用窗口方式显示
    aWindow.contentPane = view;
    aWindow.Show();
    
    //3,加到其他组件里
    aComponnent.AddChild(view);
    
//如果界面内容过多,创建时可能引起卡顿,FairyGUI提供了异步创建UI的方式,异步创建方式下,每帧消耗的CPU时间将
//受到控制,但创建时间也会比同步创建稍长一点
  UIPackage.CreateObjectAsync("包名","组件名", MyCreateObjectCallback);

    void MyCreateObjectCallback(GObject obj)
    {
    }
    动态创建的界面不会自动销毁,例如一个背包窗口,你并不需要在每次过场景都销毁。如果要销毁界面,需要手工调用Dispose方法
     view.Dispose();

UIConfig

UIConfig组件用于设置一些全局的参数

//配置字体
  UIConfig.defaultFont
  //配置垂直scroll
  UIConfig.verticalScrollBar
  //配置水平 scroll
   UIConfig.horizontalScrollBar
   // 配置常用弹窗方式
   UIConfig.popupMenu
   //配置 按钮声音
   UIConfig.buttonSound
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值