unity3d ugui怎么导入ugui日历

66625人阅读
游戏开发及技术(65)
最近开始研究unity,准备将之前自己业余时间做的一款游戏(金庸群侠传X)发行移动端版本(我不是游戏公司从业人员,业余时间自己做着玩,大神轻喷)。由于之前使用silverlight(C#)做的,所以移植unity有天然的语言优势。
看了一下unity的更新公告,4.6出的UGUI我比较喜欢,因为之前也用过NGUI,总感觉不是很顺畅。那么,即使有坑,我们也来趟趟吧。
到现在陆陆续续大概已经趟了一个月的坑了,总的感觉是,对于unity还是比较满意的:非常简单容易上手,功能还算齐全——现在DEMO版本已经能够在android、ios上较好的运行。上两张截图吧
现在总结一下我在开发中碰到的几个“坑”——当然,话说在前头,因为我也是刚开始学习unity,目前我自己认为的坑也可能是我自己的理解不够,如果大家有更好的解决方法,欢迎指正!楼主写这篇博客的时候是日,使用的是当前最新的unity 4.6f1版本。
1、scroll rect的各种问题
(日:这个是我自己搞错了,unity有提供方法,只是我之前用错了,请移步,这一条下面写的大家就当看个笑话吧 :D)
很多界面需要用到滚屏,unity提供scroll rect控件。具体的组织方式为:
每个ScrollRect对应一个scrollcontent,ScrollContent定义内容的排版组织方式,如Grid Layout Group或者Vertical Layout Group。(这里比较像silverlight中的StackPanel和GridPanel)
我使用以后发现一个最大的问题是,scroll content无法根据其包含的内容自动伸缩。也就是说,scroll content的宽和高需要手动指定,如果其中内容超出了它的范围,那么超出的内容将无法滚屏过去。
这一点实在是把我恶心到爆了,于是出现了诸如以下的代码
if (Mode == SelectMenuMode.Vertical)
selectContent.GetComponent&VerticalLayoutGroup&().enabled =
selectContent.GetComponent&GridLayoutGroup&().enabled =
float spacing = selectContent.GetComponent&VerticalLayoutGroup&().
//unity每次需要手动设置scroll content的大小
float height =
foreach (Transform s in selectContent)
height += s.GetComponent&RectTransform&().rect.height -
float width = selectContent.GetComponent&RectTransform&().rect.
selectContent.GetComponent&RectTransform&().sizeDelta = new Vector2(width, height);
else if (Mode == SelectMenuMode.Grid)
selectContent.GetComponent&VerticalLayoutGroup&().enabled =
selectContent.GetComponent&GridLayoutGroup&().enabled =
float cellX = selectContent.GetComponent&GridLayoutGroup&().cellSize.x;
float cellY = selectContent.GetComponent&GridLayoutGroup&().cellSize.y;
float spacingX = selectContent.GetComponent&GridLayoutGroup&().spacing.x;
float spacingY = selectContent.GetComponent&GridLayoutGroup&().spacing.y;
float width = selectContent.GetComponent&RectTransform&().rect.
float height = Mathf.CeilToInt(selectContent.childCount / (width / (cellX + spacingX))) * (cellY + spacingY);
selectContent.GetComponent&RectTransform&().sizeDelta = new Vector2(width, height);
每次需要手动去设置scroll Content的RectTranform的sizeDelta属性。这样代码很丑陋且极其不灵活。如果对于内容的宽高和排列可以预期,那还好。假如内容是一个文本,那岂不是还要算字体所占宽高、行间距等等……&
其次的一个问题是:scroll content的position设置貌似是有BUG。
为了实现大地图滑动滚屏的效果,我将大地图放到一个scroll content中,然后可以由玩家手指滑动来进行拖拽,这个unity实现都没有问题。问题是,我需要由代码实现“滚屏”到某个点,则问题来了——
我手动在unity editor的运行时态设置的scoll content的x,y都是OK的,放到代码里去设置transform.localPosition,就完全错位了。
最后经过反复尝试,代码写成了这样……
&span style=&white-space:pre&& &/span&//大地图卷屏
if(location.name.Equals(RuntimeData.Instance.GetLocation(RuntimeData.Instance.CurrentBigMap)))
float x = -location.X + 640; //减去半个屏幕宽度,居中
float y = -location.Y - 320; //减去半个屏幕高度,居中
if (x & -1140) x = -1140; //边界限制
if (y & 640) y = 640;
if (x & 0) x = 0;
if (y & 0) y = 0;
//by cg: 这里对齐的逻辑有点奇怪,应该是unity的BUG,没处理好对齐锚点。先手动修正。
BigMap.transform.localPosition = new Vector3(-570f + x, 320f + y, 0);
原因应该是我将scroll content的Anchor Pivot设置成了(0,1),但unity设置localPosition却没有写参考这个锚点的逻辑,需要手动修正。
还有比较大的一个问题,ScrollRect所在的GameObject的Image组件,alpha设置有个BUG
按道理来说,这个Image只是scrollRect的一个背景,不影响其内容。但在把alpha设置到特别小的时候,不管是在editor上还是在运行环境中,scroll content都将显示不出来。我试了大概是设到4-8以下就会完蛋。。所以我们需要获得一个背景透明的scroll content,还不能把背景设置得太过于透明了……
2、LINQ不能在IOS上使用
在PC、EDITOR、MAC、ANDROID都没有问题的代码,放到IOS真机(IPHONE、IPAD)上出问题。原因搜了一下大概意思应该是苹果不允许出现动态代码。
这个是unity一直的问题了,貌似有办法通过第三方的LINQ实现来保证。总之我是放弃使用LINQ了。
3、unity新版动画系统Mecanim使用中碰到的问题
我的游戏中人物分几种动画,如 站立、移动、攻击。我使用Mecanim的状态机来实现,动画之间使用SetTrigger来实现切换。
我发现一个动画在切换后如果没有播放完毕,再调用SetTrigger的话,有时就会出现动画状态错乱。我的状态机是这样的:
所以我代码里现在是每次需要等待一段时间后,再进行切换。。
4、sprite editor中的BUG
在sprite editor中通过鼠标调整锚点为custom,第一次保存(这时候unity已经自动将类型切换为custom了)会失败!需要保存两次——但是第二次必须又和第一次不是同一个锚点,否则保存按钮点不下去!
或者先手动将锚点类型改为custom,然后再保存才可以。
好了,吐槽了这么多问题,总之unity新版本我还是很支持的。毕竟原生态的GUI系统还是比NGUI等硬往上“套”的UI系统要好很多。对于unity3d使用C#编程语言也是更加好顶赞。我不是一个喜欢讨论哪个编程语言好的人,就我来说,我至少使用过10多种语言编写过代码,目前来说感觉比较酸爽的还是C#。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:784255次
积分:9909
积分:9909
排名:第1877名
原创:245篇
评论:373条
(1)(1)(1)(1)(1)(3)(1)(2)(2)(2)(3)(2)(2)(3)(2)(1)(2)(2)(1)(2)(4)(5)(2)(1)(1)(1)(1)(3)(1)(1)(1)(1)(1)(3)(1)(1)(2)(2)(2)(3)(3)(3)(3)(4)(1)(8)(8)(5)(5)(9)(8)(5)(6)(5)(10)(7)(17)(25)(16)(11)(8)(2)(7)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'Unity3d开发之动画模型资源导入预处理
在Unity导入资源后,我们通常需要做许多设置,这些操作通常很繁琐,并且容易出错,最好的办法是使用自动的pipline处理,因为不是项目中的每一个人都十分清楚资源的结构设计。这篇文章主要探讨如何通过自动的方式实现动画模型资源的定制处理。
AssetPostprocessor
在Unity中,AssetPostprocessor类能够在导入资源时,或导入资源后捕获到相应的信息。
在模型(Model)导入的过程中,钩子函数的调用顺序如下:
OnPreporcessModel 在刚进入导入阶段前,会调用这个函数。我们能够重写ModelImporter的设置来更改导入的模型的通用信息。 OnAssignMaterialModel 一旦网格和材质导入,这些信息就会关联到模型上,在关联之前,会调用这个函数。因此改变模型材质通常要更改这个函数。 OnPostprocessGameObjectWithUserProperties关联好模型的渲染信息后,会调用这个函数来处理用户信息。 OnPostprocessModel 这是最后一个函数,当函数运行完,则对象创建完成。这个函数有一个参数,它是这个实例对象自己。由于GameObject是引用对象,因此改变属性的操作,例如:增加脚本,更改位置,是可以带出函数作用域,保存到最终预设中的。更多情况下,我们是要更改它的ModelImporter属性。
ModelImporter model = (ModelImporter) assetI
另一方面,我们可以获取gameObject.name,并依赖某些命名规则,以对导入的资源进行分类。
由于使用了状态机控制角色动作,有些导入的FBX动画需要更改为Loop。经统计名称中包含wait、walk、run、air、dizziness的动画需要设置为循环,依照上面的原理,实现
代码如下:
using UnityE
using System.C
using System.Collections.G
using UnityE
public class Importer : AssetPostprocessor
#region Override Methods
void OnPostprocessModel(GameObject g)
ModelImporter model = (ModelImporter)assetI
if (model != null)
if (isLoopAnimation(g.name))
//由于我们采用动画分离的导出策略,每个fbx只有一个动画
if (model.defaultClipAnimations.Length & 0)
List actions = new List();
ModelImporterClipAnimation anim = model.defaultClipAnimations[0];
anim.loopTime =
actions.Add(anim);
model.clipAnimations = actions.ToArray();
#endregion
#region Inner
bool isLoopAnimation(string objectName)
bool res =
if (objectName.Contains(&wait&))
else if (objectName.Contains(&walk&))
else if (objectName.Contains(&run&))
else if (objectName.Contains(&air&))
else if (objectName.Contains(&dizziness&))
#endregion
将这个文件放置在工程中,可以在导入对应资源时自动对其循环属性进行转换。
另外我还发现一个小Bug,如果在未导入资源的情况下,拖动资源经过Scene界面,Unity会报错:
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.AssetDatabase.Contains (UnityEngine.Object obj) (at C:/buildslave/unity/build/artifacts/generated/common/editor/AssetDatabaseBindings.gen.cs:39)
UnityEditor.SpriteUtility.GetSpriteFromDraggedPathsOrObjects () (at C:/buildslave/unity/build/Editor/Mono/Sprites/SpriteUtility.cs:201)
UnityEditor.SpriteUtility.OnSceneDrag (UnityEditor.SceneView sceneView) (at C:/buildslave/unity/build/Editor/Mono/Sprites/SpriteUtility.cs:46)
UnityEditor.SceneView.CallEditorDragFunctions () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1773)
UnityEditor.SceneView.HandleDragging () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1804)
UnityEditor.SceneView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1284)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
这是由于资源还未导入到项目中,所以在AssetBase中找不到对应资源UUID,出现这个错误的版本为5.3.0。
另外在OnPostprocessModel函数中,直接更改它的name,似乎不可以改变导入资源的名字。扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 220|回复: 5
NGUI做日历
280/150排名<font color="#FF昨日变化4主题帖子积分
初来乍到, 积分 80, 距离下一级还需 70 积分
初来乍到, 积分 80, 距离下一级还需 70 积分
在线时间25 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
using System.Collections.G
using UnityE
using UnityEngine.UI;
public class MyCalender : MonoBehaviour
& & UILabel YearMonthD//年月日
& & UILabel Y//年
& & UILabel M//月
& & UIButton Month_R//月份加
& & UIButton Month_A//月份减
& && && && && && && &&&//&&Button Year_R//年份减
& && && && && && && &&&// Button Year_A//年份加
& & UILabel[] List_1;//日期的小格子的一行
& & UILabel[] List_2;//日期的小格子的二行
& & UILabel[] List_3;//日期的小格子的三行
& & UILabel[] List_4;//日期的小格子的四行
& & UILabel[] List_5;//日期的小格子的五行
& & UILabel[] List_6;//日期的小格子的六行
& && && && && && && &// UILabel[] List_7;//日期的小格子的七行
& & UILabel[]//所有的。。。
& & DateT//当前日期
& & public Color selectColor = Color.//选中的颜色
& & void Start()
& && &&&init();
& & public void init()
& && &&&now = DateTime.N
& && &&&//寻找到各声明组件
& && &&&Month = transform.Find(&Sprite/Month&).GetComponent&UILabel&();
& && &&&Year = transform.Find(&Sprite/Year&).GetComponent&UILabel&();
& && &&&Month_Reduce = transform.Find(&Sprite/Month_Reduce&).GetComponent&UIButton&();
& && &&&UIEventListener.Get(transform.Find(&Sprite/Month_Reduce&).gameObject).onClick = AddM
& && &&&Month_Add = transform.Find(&Sprite/Month_Add&).GetComponent&UIButton&();
& && &&&UIEventListener.Get(transform.Find(&Sprite/Month_Add&).gameObject).onClick = AddMonths22;
& && &&&List_1 = transform.Find(&List/List_1&).GetComponentsInChildren&UILabel&();
& && &&&List_2 = transform.Find(&Scroll View/List_2&).GetComponentsInChildren&UILabel&();
& && &&&List_3 = transform.Find(&Scroll View/List_3&).GetComponentsInChildren&UILabel&();
& && &&&List_4 = transform.Find(&Scroll View/List_4&).GetComponentsInChildren&UILabel&();
& && &&&List_5 = transform.Find(&Scroll View/List_5&).GetComponentsInChildren&UILabel&();
& && &&&List_6 = transform.Find(&Scroll View/List_6&).GetComponentsInChildren&UILabel&();
& && &&&print(List_1.Length);
& && &&&List_1[0].GetComponentInChildren&UILabel&().text = &日&;
& && &&&List_1[1].GetComponentInChildren&UILabel&().text = &一&;
& && &&&List_1[2].GetComponentInChildren&UILabel&().text = &二&;
& && &&&List_1[3].GetComponentInChildren&UILabel&().text = &三&;
& && &&&List_1[4].GetComponentInChildren&UILabel&().text = &四&;
& && &&&List_1[5].GetComponentInChildren&UILabel&().text = &五&;
& && &&&List_1[6].GetComponentInChildren&UILabel&().text = &六&;
& && &&&List_1[0].GetComponentInChildren&UIButton&();
& && &&&List_1[1].GetComponentInChildren&UIButton&();
& && &&&List_1[2].GetComponentInChildren&UIButton&();
& && &&&List_1[3].GetComponentInChildren&UIButton&();
& && &&&List_1[4].GetComponentInChildren&UIButton&();
& && &&&List_1[5].GetComponentInChildren&UIButton&();
& && &&&List_1[6].GetComponentInChildren&UIButton&();
& && &&&list = new UILabel[35];//合并日期格子的数组
& && &&&List&UILabel[]& llb = new List&UILabel[]&();
& && &&&llb.Add(List_2);
& && &&&llb.Add(List_3);
& && &&&llb.Add(List_4);
& && &&&llb.Add(List_5);
& && &&&llb.Add(List_6);
& && &&&////& & llb.Add(List_7);
& && &&&int num = 0;
& && &&&for (int i = 0; i & list.L i += 7)
& && && && &llb[num].CopyTo(list, i);
& && && && &num++;
& && &&&AddMonths();
& & public void OpenCalendar()//打开日历
& && &&&now = DateTime.N
& &&&//& &YearMonthDay.text = &今天是& + now.Year + &年& + now.Month + &月& + now.Day + &日&;
& && &&&AddMonths();
& && &&&//CloseCalendar(false);
& & /// &summary&
& & /// 取值为-1,0,1这三个,分别代表上个月,这个月,下个月
& & /// &/summary&
& & /// &param name=&shiftDate&&&/param&
& & void AddMonths(GameObject go)
& && &&&AddMonths(-1);
& & void AddMonths22(GameObject go)
& && &&&AddMonths(1);
& & void AddMonths(int shiftDate = 0, int shiftYear = 0)
& && &&&now = now.AddYears(shiftYear);
& && &&&now = now.AddMonths(shiftDate);
& && &&&Month.text = now.Month+&&;
& && &&&Year.text = now.Year + &-&;
& && &&&DateTime d1 = new DateTime(now.Year, now.Month, 1);//得到当月的第一天
& && &&&DateTime d2 = d1;//上个月和当前月一个是顺序一个是倒序,不方便,加一个变量
& && &&&int dayIndex = WeekByDay(d1.DayOfWeek);
& && &&&int monthDayCount = DateTime.DaysInMonth(now.Year, now.Month) + dayIndex - 1;//上个月的插入,扰乱了顺序
& && &&&int nextDayCount = 1;//下个月的天数
& && &&&int currentDay = 1;//当前月的天数
& && &&&int lastDayCount = -1;//上个月的天数
& && &&&for (int i = 0; i & list.L i++)
& && && && &if (i & dayIndex)
& && && && &{//上个月的日期,所以要倒序
& && && && && & list[dayIndex - 1 - i].GetComponentInChildren&UILabel&().text = d1.AddMonths(0).AddDays(-i + lastDayCount).Day.ToString();
& && && && &}
& && && && &else
& && && && &{//当月的日期,顺序
& && && && && & if (i &= monthDayCount)
& && && && && & {
& && && && && && &&&list[i].GetComponentInChildren&UILabel&().text = d2.AddDays(currentDay - 1).Day.ToString();
& && && && && && &&&currentDay++;
& && && && && & }//下个月的日期,顺序
& && && && && & else
& && && && && & {
& && && && && && &&&list[i].GetComponentInChildren&UILabel&().text = nextDayCount.ToString();
& && && && && && &&&nextDayCount++;
& && && && && & }
& && && && &}
& & private int WeekByDay(DayOfWeek day)//获取这个月在数组中的索引
& && &&&switch (day)
& && && && &case DayOfWeek.Sunday://应该为0,一般上个月剩余的天数小于等于7天都会显示在当月的表里,这里在0的基础上加7也就是第二行的第一个索引
& && && && && & return 7;
& && && && &case DayOfWeek.Monday:
& && && && && & return 1;
& && && && &case DayOfWeek.Tuesday:
& && && && && & return 2;
& && && && &case DayOfWeek.Wednesday:
& && && && && & return 3;
& && && && &case DayOfWeek.Thursday:
& && && && && & return 4;
& && && && &case DayOfWeek.Friday:
& && && && && & return 5;
& && && && &case DayOfWeek.Saturday:
& && && && && & return 6;
& && && && &default:
& && && && && & throw new Exception(&Unexpected DayOfWeek: & + day);
& & public void PrintValue(Button b)
& && &&&string _m = Month.
& && &&&string sum = &&;
& && &&&for (int i = 0; i & _m.L i++)
& && && && &if (_m[i] & 48 && _m[i] &= 57)
& && && && && & sum += _m[i];
& && &&&if (int.Parse(sum) & 10)
& && && && &sum = &0& +
& && &&&string _d = b.GetComponentInChildren&UILabel&().
& && &&&print(b.name);
& && &&&if (int.Parse(_d) & 10)
& && && && &_d = &0& + _d;
& && &&&string year = &&;
& && &&&for (int i = 0; i & Year.text.L i++)
& && && && &if (Year.text[i] &= 48 && Year.text[i] &= 57)
& && && && && & year += Year.text[i];
10:07 上传
点击文件名下载附件
12.8 KB, 下载次数: 5
售价: 10 蛮牛币 &[]
这是用NGUI做的预制体
每日推荐:
5599/1000排名<font color="#FF昨日变化18主题帖子积分
熟悉之中, 积分 599, 距离下一级还需 401 积分
熟悉之中, 积分 599, 距离下一级还需 401 积分
蛮牛币1968
在线时间157 小时
不错不错,值得学习
每日推荐:
3251/300排名<font color="#FF昨日变化1主题帖子积分
偶尔光临, 积分 251, 距离下一级还需 49 积分
偶尔光临, 积分 251, 距离下一级还需 49 积分
在线时间70 小时
不错不错,代码值得学习一下
每日推荐:
4338/500排名<font color="#FF昨日变化1主题帖子积分
四处流浪, 积分 338, 距离下一级还需 162 积分
四处流浪, 积分 338, 距离下一级还需 162 积分
在线时间61 小时
NGUI和UGUI有什么不一样吗
每日推荐:
280/150排名<font color="#FF昨日变化4主题帖子积分
初来乍到, 积分 80, 距离下一级还需 70 积分
初来乍到, 积分 80, 距离下一级还需 70 积分
在线时间25 小时
NGUI和UGUI有什么不一样吗
操作方面挺多地方不一样的,都很简单,一个礼拜上手没问题的
每日推荐:
259/150排名<font color="#FF昨日变化7主题帖子积分
初来乍到, 积分 59, 距离下一级还需 91 积分
初来乍到, 积分 59, 距离下一级还需 91 积分
在线时间24 小时
发表于 5&小时前
资源里啥都没有啊,就一个不能用的prefab
每日推荐:&>&unity3d ngui 日历控件
unity3d ngui 日历控件
上传大小:2KB
unity3d 日历控件,ngui的altas丢失了,需要自己添加u2b
综合评分:3.9(28位用户评分)
所需积分/C币:
下载个数:184
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有21条
这样的资源也好意思拿出来,还要这么高的分。
骗分的 别吓
非常好用,谢谢
还不错啊, 我功能自己添加了好多,我改成UGUI的了,已经使用。。。
下载了,不知道行不行,一会试试
看着代码稍微改了下就用UGUI实现了一个
非常好用,谢谢
对我有帮助,谢谢。
可以自己修改用...QAQ
确实做的很不错!!!
审核通过送C币
Quartz.NET官方实例历史版本
创建者:qq_
C#代码实例
创建者:nihang1234
C#移动端开发
创建者:vhion
上传者其他资源上传者专辑
NGUI Sorting Layer script
unity3d ngui 日历控件 prefab
深入理解计算机系统中文版
sqlyog中文绿色版
深入了解计算机系统 PDF 英文版
开发技术热门标签
VIP会员动态
下载频道积分规则调整V1710.18
CSDN下载频道积分调整公告V1710.17
开通VIP,海量IT资源任性下载
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&VIP年卡&4000万程序员的必选
为了良好体验,不建议使用迅雷下载
unity3d ngui 日历控件
会员到期时间:
剩余下载个数:
剩余C币:593
剩余积分:786
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
全站1200个资源免积分下载
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
全站1200个资源免积分下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
全站1200个资源免积分下载
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
unity3d ngui 日历控件

我要回帖

更多关于 unity里导入日历 的文章

 

随机推荐