- 博客(16)
- 资源 (6)
- 收藏
- 关注
原创 Unity UI事件管理系统设计
UI框架的设计是任何游戏都要做的事情,其中事件管理器(EventManager)是比较常用的UI与逻辑分离的方法,通过注册、绑定、分发事件来控制UI界面或者游戏场景的逻辑处理。之前做cocos游戏写过c++版本、lua版本的事件管理器,Unity大同小异,但是也有很多特殊的地方,这边我记录下设计过程。特别提醒,如果习惯使用当前比较成熟的Unity MVC、SingleIoc、UIFrame等U
2017-09-30 09:45:12 7828
原创 Unity 内存池设计理解
内存池是所有游戏制作中必须的模块,之前做cocos游戏的时候习惯制作一个工厂类,用来动态管理精灵等资源,让游戏场景中大量动态产生和销毁的对象进行复用,核心代码(c++版):class RecycleFactory{public: DEFINE_SINGLETON(RecycleFactory); /** * 从回收链表中生成 * *
2017-09-27 13:16:05 1165
原创 Unity Mecanim动画 动画片段只执行一次
有时需要animator控制动画只播放一次,通过state的设置比较麻烦:animtor.setBool("state",true);//再设回去animtor.setBool("sate",false);比较麻烦,最快方法:animator.Play("death", 0, 0); 注意:第二个参数是层级,要填写正确的层级flag
2017-09-22 11:37:33 13415
原创 Unity 一个对象加载多个脚本的时候的编译顺序
当一个对象加载了多个脚本,这些脚本的调用顺序是从下往上调用的,如图比如,如果想让A的脚本优先执行,把它Move Down到最下面即可
2017-09-20 15:07:44 1235 1
原创 Unity添加自发光材质
我们很多时候希望模型有自发光材质,这样就不需要灯光了,设置方法是将模型用到的材质shader修改为:自发光的shader有很多,也可以自己写喽。
2017-09-19 15:32:21 13336
原创 Unity object强转int、string
第一次用object强转int的时候报错:InvalidCastException: Cannot cast from source type to destination type.int与objec之间不能用强制类型转换,object有toString方法,可以这样转换: int.Parse(s[ret-1].ToString()
2017-09-15 13:54:49 9200
原创 Unity动态创建带有Shader的Material
Unity5.x不在允许通过string的格式给材质添加shader,必须通过shaderAssets,否则警告:UnityEngine.Material.Material(string) is obsolete:'Creating materials from shader source string is no longer supported. Use Shader assets ins
2017-09-15 12:43:57 7870
原创 UGUI代码动态UI的大小、尺寸等信息
Unity是高度可视化编辑工具,但是难免有很多时候我们做UI需要动态创建UI元素,或者修改元素坐标、尺寸、锚点、轴心点等需求 前段时间正好遇到了这种需求,需要在UI界面上摆放一排带有动画的星星,但是星星的个数和位置是从配置表中读取的,不是固定的,这里我的解决方案是:1、星星制作预设体因为星星带有动画等属性,所以肯定是作为预设体放入Resources中动态实例化。2、添
2017-09-15 10:31:52 9849
原创 Unity 动态修改UGUI的Image
上代码:Image img = _roleIntroductionImg_bottomUI.GetComponent() as Image;string spritePath = string.Format("UI/RoleIntroductionSprite/"+GameTools.getInstance().getCurLanguageDict()+"role_{0}_introduct
2017-09-14 11:26:42 10216
原创 Unity 制作font字体
有很多网友介绍Unity 创建并使用font的方法,这里总结一下备忘,同时网友的部分文章有一些小坑被我踩到,在这里记录一下,希望能帮助其他同学 一、首先创建字体(ttf文件),网上有用BitMap工具的,也有在Mac系统上用GlyPhDesigner的,其实两个都可以,只是GlyPhDesigner在部分mac retain屏幕上显示不全,制作ttf的方法就不过多介绍(美工的工
2017-09-12 20:51:34 14409 2
原创 Unity UGUI的适配方法总结
刚开始研究Unity没多久,对UGUI系统的使用还没有实际开发经验,但是根据之前做cocos产品的适配策略,对UGUI的适配做了研究后发现UGUI的提供的适配方案还是蛮全面的,这里自我总结一下,希望能帮助刚使用UGUI做界面的新手解决适配难题首先我们要明确多分辨率适配的基本要求:1、UI必须充满屏幕,不能有黑边2、UI必须在屏幕中,不能超出屏幕 3、UI在多分辨率下的
2017-09-11 13:26:45 16770 2
原创 Unity UGUI制作对话框的设计方案
游戏中会出现大量的弹出对话框UI,这部分功能虽然简单但是里面有很多细节需要注意1、弹出的对话框UI要屏蔽触控,不能穿透UI到下层UI甚至3D对象上面2、弹出框层级关系可能比较复杂,可能需要在一个弹框上覆盖另一个弹框,需要统一管理层级的逻辑3、弹出框的弹出优先级需要注意,比如网游,服务器呼叫客户端弹出对话框,这个对话框我们不希望它随便弹出,必须当前场景不存在对话框的时候再弹出,这就需要把
2017-09-08 15:41:45 5184 5
原创 Unity http请求封装(www)
项目中需要经常访问后台,以任何需求都只写一遍代码的想法决定对www进行一下封装,目的即是让程序在每个访问后台的入口保持唯一,同时可以自己定制回调函数,处理每一个访问http请求:首先看了其他网友的文章,访问www方法如下:WWW __request = new WWW(__url);yield return __request;if(string.IsNullOrEmpty(__requ
2017-09-06 19:10:32 2092
原创 Unity 调用oc报错:malloc: *** error for object 0x1ecc0eb0: pointer being freed was not allocated
原始方法:char* ret = "abc";return ret;返回char* 方法修改为: NSString* sl = @"abc"; char* ret = nullptr; ret = (char*) malloc([sl length] + 1); memcpy(ret,[sl UTF8String],([sl length] + 1)); return r
2017-09-06 13:20:20 4406
原创 unity3d ArgumentException: The Assembly System.Configuration is referenced by System.Data...
Unity3D 导出ios工程的时候 选择Device sdk编译 报错:unity3d ArgumentException: The Assembly System.Configuration is referenced by System.Data.修改方法:player setting中将API Compatibility level修改即可
2017-09-06 11:15:52 7061
MadLevelManager 2.3.6
2017-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人