fairyGUI界面控件的基本制作和功能实现
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));
注意图形在不同平台的兼容性,例如圆角和圆形在某些平台是暂时未支持的。
图形的类型选择为空白时,可以作为占位的用途,这种图形不消耗显示资源
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界面控件的基本制作和功能实现相关推荐
- 几个不错的开源的.net界面控件
转自原文 几个不错的开源的.net界面控件 (转) 几个不错的开源的.net界面控件 - zt 介绍几个自己觉得不错的几个开源的.net界面控件,不知道是否有人介绍过. DockPanel Suite ...
- (转)基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用
http://www.cnblogs.com/wuhuacong/p/3317223.html 在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的 ...
- WinRT界面控件Essential Studio上如何选择时间范围
本文主要说明如何在界面控件Essential Studio for WinRT(XAML)中如何实现时间范围选择,要实现这个可以参考下面的步骤: 1.从项目中打开"添加引用"窗口. ...
- 移动界面控件Essential Studio for Mobile MVC网格控件解析
移动界面控件Essential Studio for Mobile MVC是Syncfusion公司旗下一款企业级的用于移动应用开发的界面控件,整个套包中包含了grids.charts.gauges. ...
- Cesium界面学习以及隐藏界面控件
这一跑起来界面很多元素:都是控件:先来学习一下: 这5个是: 查找位置控件,找到之后镜头会对准找到的地址: 视角返回初始位置: 选择视角的模式:3D,2D,哥伦布视图: ...
- 移动界面控件Essential Studio for Mobile MVC图表控件解析
企业级的用于移动应用开发的界面控件Essential Studio for Mobile MVC中的Essential Chart for Mobile MVC是一款基于HTML 5的高性能且轻量化的 ...
- InvokeHelper,让跨线程访问/修改主界面控件不再麻烦(转)
http://bbs.csdn.net/topics/390162519 事实上,本文内容很简单且浅显,所以取消前戏,直接开始.. 源代码:在本文最后 这里是一张动画,演示在多线程(无限循环+Thre ...
- android选项菜单源代码,Android应用程序----UI界面控件(菜单menu)
菜单是应用程序中非常重要的组成部分,能够在不占用界面空间的前提下,为应用程序提供了统一的功能和设置界面,并为程序开发人员提供了易于使用的编程接口 Android系统支持三种菜单 选项菜单(Option ...
- java 线程访问控件_C#多线程与跨线程访问界面控件的方法
本文实例讲述了C#多线程与跨线程访问界面控件的方法.分享给大家供大家参考.具体分析如下: 在编写WinForm访问WebService时,常会遇到因为网络延迟造成界面卡死的现象.启用新线程去访问Web ...
最新文章
- mysql3.0数据库修复_mysql3.0监控mysql数据库
- IT人的自我导向型学习:学习的1个理念和2个心态
- java for index_Java增强for循环中获取index
- Logminer实战
- dispatch作用 react_「React系列」手把手带你撸后台系统(Redux与路由鉴权)
- pandas(二) -- Dataframe创建及索引
- Python【3】-字典dic和集合set
- CF526G Spiders Evil Plan(树上最优性问题、倍增+线段树)
- 高性能高可靠性的全数字嵌入式仿真测试软件SkyEye
- java lambda sorted_Java8:Lambda表达式增强版Comparator和排序
- 华为手机媒体音量自动静音_华为手机的音量键原来这么牛逼,这五大玩法,97.777%的人不知道...
- 小程序点击显示隐藏(点击标题,内容显示,再次点击隐藏,同时切换箭头的状态,且默认第一组的内容显示)
- LeetCode(283)——移动零(JavaScript)
- JS AES加密解密实现
- ubuntu20.04 3060 显卡 安装NVIDIA显卡驱动
- 英尺英寸和厘米的换算_英寸、英尺与厘米如何换算
- charles限制网速
- 最简单的FRP内网穿透教程
- android 考试倒计时,考试倒计时软件下载-考试倒计时v1.0 最新版-腾牛安卓网
- Android中的传感器之---加速度传感器