fairyGUI界面控件的基本制作和功能实现

—1.学习地址:官网和泰课在线

fairyGUI官网: http://www.fairygui.com/tutorial

泰课在线: http://www.taikr.com/cloud/search?q=fairyGUI

2.按钮

一般按钮有4个态:(点开按钮模块可查看)up/down/over/selectedOver

按钮的示例代码

private GButtonbtn_helmet;

btn_helmet = this.ui.GetChild("btn_helmet")as GButton;

btn_helmet.onClick.Set((EventContextcontext) =>  {//按钮点击事件添加});

常用事件:

onRightClick:右键点击事件

onRollOver:鼠标悬停事件

onRollOut:鼠标悬停移出事件

onDragStart:拖拽事件

鼠标拖拽cell1按钮的图标至按钮cell上松开鼠标的相应事件:onDrop()

3遮罩

问题:遮罩会挡住当前组件的其他图片文本,导致想要实现遮罩外部的图片部分被挡住。

方案:遮罩需要遮住的部分单独做成一个组件,再放入主组件中

4.动画和动效

动画的创建:

多选要用来制作动画的图片,再点击左上方动画创建按钮       。

代码调用:

GMovieClip movie = ui.GetChild("movie").asMovieClip;

// start帧开始,播放到end帧(-1表示结尾),重复times次(0表示无限循环),循环结束后,停止在endAt帧(-1表示参数end

movie.SetPlaySettings(0,-1,1,-1);

动效的编辑:

1.选中动效后出现动效编辑界面

2.鼠标右键点击出现可编辑选项

3.选中改变动画用于控制动画播放

  

动效的调用:

private Transition t1;

t1 = ui.GetTransition("t1");

t1.Play((=>{//动效结束后的回调}));

5.控制器

控制器的创建:

在控制器栏点击         ,控制器也可以与组配合使用

代码调用:

private Controller c1;

c1 = this.ui.GetController("c1");

c1.selectedIndex = 1;

//还可以用DOTween.To实现控制器由起始序号到指定序号

6.普通列表

代码调用:

GListlist1 = obj.GetChild("list1").asList;

list1.RemoveChildrenToPool();

for (int i = 0; i < cnt; i++)

{

GButton item = list1.AddItemFromPool().asButton;

item.GetChild("t0").text = "" +(i+1);

}

7.虚拟列表

代码调用:

_list = _mainView.GetChild("mailList").asList;

_list.SetVirtual();

//itemRenderer , Callback functionwhen an item is needed to update its look

_list.itemRenderer = RenderListItem;

_list.numItems = 1000;

void RenderListItem(intindex, GObject obj)

{

//MailItem继承Gbutton。列表的内容

MailItem item = (MailItem)obj;

item.title =index + " Mail title here";

}

/// <summary>

/// Callback function when an item is needed to update its look.

/// </summary>

/// <param name="index">Item index.</param>

/// <param name="item">Item object.</param>

public delegate void ListItemRenderer(int index, GObject item);

8.虚拟循环列表

代码调用:

_list = _mainView.GetChild("list").asList;

_list.SetVirtualAndLoop();

_list.itemRenderer= RenderListItem;

_list.numItems= 5;

//鼠标滚轮滚动的时候实现中间放大的特效

_list.scrollPane.onScroll.Add( DoSpecialEffect);

//根据到中心点的距离改变列表项的大小缩放

void DoSpecialEffect()

{

float midX= _list.scrollPane.posX + _list.viewWidth / 2;

intcnt= _list.numChildren;         //子项数量从0开始计算

for (int i = 0; i < cnt; i++)

{

GObject obj = _list.GetChildAt(i);

float dist = Mathf.Abs(midX - obj.x - obj.width / 2);

if (dist > obj.width) //nointersection 列表项与中心没有交集

obj.SetScale(1,1);

else

{

float ss= 1 + (1 - dist / obj.width) * 0.24f; //有交集。越往中心越大。

obj.SetScale(ss, ss);

}

}

// _list.numItems子项数量从1开始计算

_mainView.GetChild("n3").text = "" +((_list.GetFirstChildInView() + 1) % _list.numItems);

}

8.3D界面

2D界面不同在于设置3D世界坐标:

//设置层级

this.SetWindow3DShell(MySelf.Inst.MySceneObject.transform);

this.SetScale(newVector3(0.0022f, 0.0022f, 0.0022f));

this.SetLocalPosition(newVector3(0, 0, 0.4f));

this.SetLocalRotation(newVector3(0, 180, 0));

9.图形

注意图形在不同平台的兼容性,例如圆角和圆形在某些平台是暂时未支持的。
图形的类型选择为空白时,可以作为占位的用途,这种图形不消耗显示资源

10.加载3D模型

举例:

现在要在UI中放置入一个原生的对象aSprite,则可以在适当位置放入一个空白的图形,假设对象为holder,那么代码里可以这样写:holder.setNativeObject(aSprite),这样就把aSprite放到了holder所在的位置和深度上。

加载3D模型:

注意图形不能设置为空白。图形的中心为加载的模型的中心点坐标。

相关代码:

_holder.SetNativeObject(newGoWrapper(model));

model.transform.localPosition = new Vector3(0, 0, 0);

model.transform.localEulerAngles= new Vector3(0, 180, 0);

model.transform.localScale = new Vector3(380, 380, 380);

model.SetGameObjectLayer(LayerMask.NameToLayer("layer_editobj"));

fairyGUI界面控件的基本制作和功能实现相关推荐

  1. 几个不错的开源的.net界面控件

    转自原文 几个不错的开源的.net界面控件 (转) 几个不错的开源的.net界面控件 - zt 介绍几个自己觉得不错的几个开源的.net界面控件,不知道是否有人介绍过. DockPanel Suite ...

  2. (转)基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

    http://www.cnblogs.com/wuhuacong/p/3317223.html 在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的 ...

  3. WinRT界面控件Essential Studio上如何选择时间范围

    本文主要说明如何在界面控件Essential Studio for WinRT(XAML)中如何实现时间范围选择,要实现这个可以参考下面的步骤: 1.从项目中打开"添加引用"窗口. ...

  4. 移动界面控件Essential Studio for Mobile MVC网格控件解析

    移动界面控件Essential Studio for Mobile MVC是Syncfusion公司旗下一款企业级的用于移动应用开发的界面控件,整个套包中包含了grids.charts.gauges. ...

  5. Cesium界面学习以及隐藏界面控件

    这一跑起来界面很多元素:都是控件:先来学习一下: 这5个是:     查找位置控件,找到之后镜头会对准找到的地址:     视角返回初始位置:     选择视角的模式:3D,2D,哥伦布视图:     ...

  6. 移动界面控件Essential Studio for Mobile MVC图表控件解析

    企业级的用于移动应用开发的界面控件Essential Studio for Mobile MVC中的Essential Chart for Mobile MVC是一款基于HTML 5的高性能且轻量化的 ...

  7. InvokeHelper,让跨线程访问/修改主界面控件不再麻烦(转)

    http://bbs.csdn.net/topics/390162519 事实上,本文内容很简单且浅显,所以取消前戏,直接开始.. 源代码:在本文最后 这里是一张动画,演示在多线程(无限循环+Thre ...

  8. android选项菜单源代码,Android应用程序----UI界面控件(菜单menu)

    菜单是应用程序中非常重要的组成部分,能够在不占用界面空间的前提下,为应用程序提供了统一的功能和设置界面,并为程序开发人员提供了易于使用的编程接口 Android系统支持三种菜单 选项菜单(Option ...

  9. java 线程访问控件_C#多线程与跨线程访问界面控件的方法

    本文实例讲述了C#多线程与跨线程访问界面控件的方法.分享给大家供大家参考.具体分析如下: 在编写WinForm访问WebService时,常会遇到因为网络延迟造成界面卡死的现象.启用新线程去访问Web ...

最新文章

  1. mysql3.0数据库修复_mysql3.0监控mysql数据库
  2. IT人的自我导向型学习:学习的1个理念和2个心态
  3. java for index_Java增强for循环中获取index
  4. Logminer实战
  5. dispatch作用 react_「React系列」手把手带你撸后台系统(Redux与路由鉴权)
  6. pandas(二) -- Dataframe创建及索引
  7. Python【3】-字典dic和集合set
  8. CF526G Spiders Evil Plan(树上最优性问题、倍增+线段树)
  9. 高性能高可靠性的全数字嵌入式仿真测试软件SkyEye
  10. java lambda sorted_Java8:Lambda表达式增强版Comparator和排序
  11. 华为手机媒体音量自动静音_华为手机的音量键原来这么牛逼,这五大玩法,97.777%的人不知道...
  12. 小程序点击显示隐藏(点击标题,内容显示,再次点击隐藏,同时切换箭头的状态,且默认第一组的内容显示)
  13. LeetCode(283)——移动零(JavaScript)
  14. JS AES加密解密实现
  15. ubuntu20.04 3060 显卡 安装NVIDIA显卡驱动
  16. 英尺英寸和厘米的换算_英寸、英尺与厘米如何换算
  17. charles限制网速
  18. 最简单的FRP内网穿透教程
  19. android 考试倒计时,考试倒计时软件下载-考试倒计时v1.0 最新版-腾牛安卓网
  20. Android中的传感器之---加速度传感器

热门文章

  1. SQL SERVER非域环境搭建镜像
  2. Robot Arm 机械臂源码解析
  3. hi3518ev300开发板烧写历程
  4. php闪字生成,在线闪字
  5. js---javaScript基础知识
  6. 图像处理——轮廓检测
  7. 素数判断算法(高效率)
  8. 【无标题】内部表和外部表的区别
  9. 客户端框架的搭建(丛林战争项目)
  10. C++程序设计(第3版 谭浩强) 第四章习题