Unity开发
Porken
完善资料中
展开
-
Unity 制作font字体
有很多网友介绍Unity 创建并使用font的方法,这里总结一下备忘,同时网友的部分文章有一些小坑被我踩到,在这里记录一下,希望能帮助其他同学 一、首先创建字体(ttf文件),网上有用BitMap工具的,也有在Mac系统上用GlyPhDesigner的,其实两个都可以,只是GlyPhDesigner在部分mac retain屏幕上显示不全,制作ttf的方法就不过多介绍(美工的工原创 2017-09-12 20:51:34 · 13866 阅读 · 2 评论 -
Unity 内存池设计理解
内存池是所有游戏制作中必须的模块,之前做cocos游戏的时候习惯制作一个工厂类,用来动态管理精灵等资源,让游戏场景中大量动态产生和销毁的对象进行复用,核心代码(c++版):class RecycleFactory{public: DEFINE_SINGLETON(RecycleFactory); /** * 从回收链表中生成 * *原创 2017-09-27 13:16:05 · 1091 阅读 · 0 评论 -
Unity Mono.Data.Sqlite.dll System.Data.dll路径问题
这两个比较常用的本地sql存储文件路径在mac系统下的:/Applications/Unity/Unity.app/Contents/Mono/lib/mono/2.0/Mono.Data.Sqlite.dll/Applications/Unity/Unity.app/Contents/Mono/lib/mono/2.0/System.Data.dll原创 2017-08-31 11:20:12 · 3640 阅读 · 0 评论 -
Unity添加脚本的时候,自动创建版权信息
原文地址:http://blog.csdn.net/cocos2der/article/details/44957631unity添加新脚本的时候,没有版权文件头信息,主要是没有脚本创建人的姓名,在项目开发中,如果想知道这个脚本是谁写的,呼来唤去搞半天才发现是自己写的!!!用习惯了xcode,所以准备给unity的新建脚本添加一个信息头内容。Unity自己就有新建脚本模转载 2017-08-31 09:54:52 · 583 阅读 · 0 评论 -
Unity UGUI制作对话框的设计方案
游戏中会出现大量的弹出对话框UI,这部分功能虽然简单但是里面有很多细节需要注意1、弹出的对话框UI要屏蔽触控,不能穿透UI到下层UI甚至3D对象上面2、弹出框层级关系可能比较复杂,可能需要在一个弹框上覆盖另一个弹框,需要统一管理层级的逻辑3、弹出框的弹出优先级需要注意,比如网游,服务器呼叫客户端弹出对话框,这个对话框我们不希望它随便弹出,必须当前场景不存在对话框的时候再弹出,这就需要把原创 2017-09-08 15:41:45 · 5102 阅读 · 5 评论 -
Unity 构建IOS和ANDROID工程 (一)
引言:开发中为了统一管理Unity产品,需要设计一个比较完善的平台构建系统,这里我尽量简单的分享下我的思路(正在实践中...),并把涉及到的重要内容拣出来介绍下,希望能帮助其他开发者解决平台移植方面的困惑!文章内容适合有平台开发经验的Unity产品开发者,做着玩的不需要看下面的内容!之前做cocos游戏,构建平台工程包的设计理念可以借鉴到Unity中,总共三个部分一、平台接口部分框架搭原创 2017-08-30 14:33:58 · 1766 阅读 · 0 评论 -
Unity IOS导出 选项Symlink Unity library 选项
这个选项方便调试,减少build时间,正式打包,不能勾选原创 2017-08-30 13:56:19 · 1750 阅读 · 0 评论 -
Unity计算两点之间的距离或者向量的长度常用方法
向量的长度是用勾股定理计算出来,计算机计算两次方和开根的运算量比加减法要费时的多。所以求两个对象的距离最常用的是比较两点距离的平方: float dis = (transform.position - player.position).sqrMagnitude原创 2017-08-30 10:11:13 · 41336 阅读 · 1 评论 -
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 · 9060 阅读 · 0 评论 -
Unity3D 设置帧频及显示FPS
Application.targetFrameRate 可以指定游戏的运行帧率, -1 让游戏以最快的速度运行。void Awake(){ ///设置帧频 Application.targetFrameRate = _FPS; }显示FPS代码:using System.Collections;using System.Collections.Gene原创 2017-08-16 14:03:39 · 2622 阅读 · 0 评论 -
Unity UGUI的适配方法总结
刚开始研究Unity没多久,对UGUI系统的使用还没有实际开发经验,但是根据之前做cocos产品的适配策略,对UGUI的适配做了研究后发现UGUI的提供的适配方案还是蛮全面的,这里自我总结一下,希望能帮助刚使用UGUI做界面的新手解决适配难题首先我们要明确多分辨率适配的基本要求:1、UI必须充满屏幕,不能有黑边2、UI必须在屏幕中,不能超出屏幕 3、UI在多分辨率下的原创 2017-09-11 13:26:45 · 16676 阅读 · 2 评论 -
Unity添加自发光材质
我们很多时候希望模型有自发光材质,这样就不需要灯光了,设置方法是将模型用到的材质shader修改为:自发光的shader有很多,也可以自己写喽。原创 2017-09-19 15:32:21 · 13263 阅读 · 0 评论 -
Unity 本地化比较实用的实现方案
本篇笔记是在I2Localization插件的基础上针对项目需求,制定的一套本地化技术解决方案,目的是实现一个语言配置文件统一来管理整个游戏的语言本地化,个人认为是非常实用的,有兴趣的同学可以简单看下这个方案的解决思路。游戏中的本地化考虑两种资源形式:一、图片本地化二、文字本地化图片本地化图片本地化分为两种情况:1、用Unity编辑器制作的静原创 2017-10-23 16:06:03 · 6796 阅读 · 0 评论 -
UGUI坐标与世界坐标的转换
UGUI坐标的转换网上网友说的很多,有正确的也有误导的,这里我通过实验来总结了一下正确的转换方式(假设你充分了解RectTransform坐标系和本地坐标、世界坐标的关系):一、将UGUI坐标转化为世界坐标,比如说我想把一个3D模型A放在我的一个按钮B上面,B是在一个Canvas下的层层子节点(不一定是在Canvas的根目录哦) 转换之前先明确几个问题:原创 2017-10-31 11:37:58 · 15903 阅读 · 1 评论 -
Unity Json的序列化和反序列化
Json格式是所有程序在规整数据结构的时候最常用的结构类型,这里我在Unity的学习过程中总结了一些Json的使用心得。一般情况下我们使用Json数据结构用来作为数据存储、网络请求参数等用途,有的时候对Json数据的格式要求可能比较复杂,所以一个方便的Json序列化和反序列化工具非常重要,这里简单介绍几种方法:举例:{"key1":1,"key2":3.1415926,"key3":t原创 2017-10-19 12:49:47 · 2653 阅读 · 0 评论 -
Unity 构建IOS和ANDROID工程 (二)
之前记录了下Unity构建ios和android框架设计方面的方案上文地址:http://blog.csdn.net/jbl20078/article/details/77715570这次记录下Unity打包IOS相关脚本的整理和库工程的依赖关系(下篇继续介绍android) 实现目标:1、持续构建:Unity+Jenkins+Xcode一键打包并做到持续原创 2017-11-08 18:44:57 · 1443 阅读 · 0 评论 -
Unity 导出xcode工程中 怎么设置为Append的方式导出之命令行
Unity导出xcode有两种模式,一个是replace,一个是append 如图: 平时我们肯定需要用命令行打包ipa,导出xcode工程的时候,我们执行这个命令:BuildPipeline.BuildPlayer(GetBuildScenes(), "XcodeProj", BuildTarget.iOS, BuildOptions.原创 2017-11-07 13:53:21 · 2699 阅读 · 0 评论 -
Unity Animator动画系统的使用问题一
实现一个功能:UI弹性移动到屏幕外->修改UI上面的内容->移动回屏幕 功能很简单,如果用cocos做就是一句代码的事:执行动作1,添加函数动作,执行动作2 但是我用Unity的UGUI(没有用到任何UI插件)做动画遇到了一些麻烦事。 1、第一个问题: UI的动画做好之后要修改Animator,不能让它一启动就执原创 2017-10-27 13:10:41 · 3365 阅读 · 0 评论 -
Unity Mecanim动画 动画片段只执行一次
有时需要animator控制动画只播放一次,通过state的设置比较麻烦:animtor.setBool("state",true);//再设回去animtor.setBool("sate",false);比较麻烦,最快方法:animator.Play("death", 0, 0); 注意:第二个参数是层级,要填写正确的层级flag原创 2017-09-22 11:37:33 · 13164 阅读 · 0 评论 -
Unity UI事件管理系统设计
UI框架的设计是任何游戏都要做的事情,其中事件管理器(EventManager)是比较常用的UI与逻辑分离的方法,通过注册、绑定、分发事件来控制UI界面或者游戏场景的逻辑处理。之前做cocos游戏写过c++版本、lua版本的事件管理器,Unity大同小异,但是也有很多特殊的地方,这边我记录下设计过程。特别提醒,如果习惯使用当前比较成熟的Unity MVC、SingleIoc、UIFrame等U原创 2017-09-30 09:45:12 · 7769 阅读 · 0 评论 -
Unity 一个对象加载多个脚本的时候的编译顺序
当一个对象加载了多个脚本,这些脚本的调用顺序是从下往上调用的,如图比如,如果想让A的脚本优先执行,把它Move Down到最下面即可原创 2017-09-20 15:07:44 · 1211 阅读 · 1 评论 -
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 · 7776 阅读 · 0 评论 -
UGUI代码动态UI的大小、尺寸等信息
Unity是高度可视化编辑工具,但是难免有很多时候我们做UI需要动态创建UI元素,或者修改元素坐标、尺寸、锚点、轴心点等需求 前段时间正好遇到了这种需求,需要在UI界面上摆放一排带有动画的星星,但是星星的个数和位置是从配置表中读取的,不是固定的,这里我的解决方案是:1、星星制作预设体因为星星带有动画等属性,所以肯定是作为预设体放入Resources中动态实例化。2、添原创 2017-09-15 10:31:52 · 9816 阅读 · 0 评论 -
Unity http请求封装(www)
项目中需要经常访问后台,以任何需求都只写一遍代码的想法决定对www进行一下封装,目的即是让程序在每个访问后台的入口保持唯一,同时可以自己定制回调函数,处理每一个访问http请求:首先看了其他网友的文章,访问www方法如下:WWW __request = new WWW(__url);yield return __request;if(string.IsNullOrEmpty(__requ原创 2017-09-06 19:10:32 · 2055 阅读 · 0 评论 -
unity 烘焙uv范围出错
烘焙中报错:primary uv set on xxxx is incorrect and the secondary uv set is missing,Lightmapper nedds uvs inside the[0,1]*[0,1]range skipping this mesh... 设置烘焙物体的uv:原创 2017-08-04 15:50:26 · 2295 阅读 · 0 评论 -
Unity导出Xcode工程 在模拟器上调试
如图选择导出目标版本SDK:原创 2017-08-11 17:14:11 · 2982 阅读 · 0 评论 -
Unity 用InverseTransformPoint方法计算两点之间的夹角
Unity自学研究的随手笔记,希望能帮到跟我一样的新手们原创 2017-07-26 14:32:48 · 4568 阅读 · 1 评论 -
Unity5.x 烘焙场景导出方法(更换lightmap曝光丢失问题)
一般情况下,烘焙好的场景会被转化为预设体方便其他场景使用,但是在新的场景中导入预设体会出现曝光丢失的情况,如图:导入新场景:原因:Unity5.x多场景编辑的原因,不再将原来每个Renderer中的lightmapIndex和lightmapScaleOffset 数据序列化到场景文件中,而是伴随lightmap烘焙产生了一个新的lightingData文件,具体Unity 5原创 2017-08-04 14:18:34 · 7090 阅读 · 1 评论 -
Unity5.x 全局光照系统问题下
原文地址:http://www.360doc.com/content/16/0728/10/110467_579028119.shtml为什么烘焙的point灯光会有一圈圈的色阶变化? 大家在烘焙lightmap的时候可能会发现类似下图的奇怪效果。 图中我们使用了一盏Baked的point light,烘焙之后发现光照效果会出现一圈圈的色阶突变。转载 2017-08-04 11:42:49 · 354 阅读 · 0 评论 -
Unity5.x 全局光照系统问题上
原文地址:http://www.360doc.com/content/17/0804/11/46072167_676571882.shtmlUnity 5正式版面世已经一段时间,许多开发者都已经在使用Unity 5进行开发。那么大家在使用Unity 5时都会碰到一些问题。今天我们Unity的官方技术工程师柳振东将在本文中针对Unity 5中全新的Enlighten全局光照系统的一些问题与大转载 2017-08-04 11:33:17 · 532 阅读 · 0 评论 -
UGUI canvas之间触控屏蔽解决方案(解决短时间内多次点击问题)
项目中制作UI经常遇到的需求是:点击触控区域播放一段动画或者执行一些读取加载操作,如果动画未播放完或者读取操作正在进行,我们一般不希望按钮短时间内不再响应触控。原创 2017-08-10 17:04:41 · 3686 阅读 · 0 评论 -
unity 摄像机跟随物体 第一人称跟随
摄像机跟随物体的实现方式很多,也都是现成的代码可以直接拿过来用,但是项目中难免围绕这个功能做扩充,所以简单了解下实现原理还是有必要的, 这边简要介绍两种实现方式:以第一人称视角跟随角色。 第一种方式,比较简单:void cameraFollowFunc_1(){ //先改变坐标 //先设置目标坐标 Vector3 targetPosit原创 2017-08-17 14:01:29 · 5956 阅读 · 0 评论 -
Unity c#调用Object-C接口参数类型导致Xcode运行报错
今天用c#调用Object-C,写了一个入口方法://执行平台相关方法 static const char* callPlatformFunction(std::string functionName,std::string jsonContent);调用方法#if UNITY_IOS [DllImport("__Internal")] public static ext原创 2017-08-14 10:57:07 · 805 阅读 · 1 评论 -
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 · 10172 阅读 · 0 评论 -
argument "#3" is missing 'out' modifier
执行碰撞检测方法: Physics.Linecast(startPoint,endPoint,_hitInfo,(1报错:argument "#3" is missing 'out' modifier原因:c#版本正确写法Physics.Linecast(startPoint,endPoint,out _hitInfo,(1<<9));原创 2017-08-24 14:41:54 · 543 阅读 · 0 评论 -
Unity LayerMask的位运算
Unity有32个layer,每个layer对应的是一个32位的二进制标识符,比如:这个层用二进制表示为:0000 0000 0000 0000 0000 0000 0010 0000开启layer nLayerMask mask = 1 其中1表示开启,右值代表layer编号忽略layer nLayerMask mask = 0 其中0表示关闭,右值代原创 2017-08-24 14:16:44 · 548 阅读 · 0 评论 -
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 · 4368 阅读 · 0 评论 -
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 · 7025 阅读 · 0 评论 -
Unity 向量围绕一个轴旋转 求新向量
1、四元数法Vector3 newVec = Quaternion.AngleAxis(angle,axis)*oriVec;或者Vector3 newVec = Quaternion.Eular(0,angle,0)*oriVec;2、二维向量运算公式:x1=xcosθ+ysinθ, y1=-xsinθ+ycosθ原创 2017-08-24 11:56:38 · 24314 阅读 · 2 评论 -
The AnimationClip 'xxx' used by the Animation component 'xxx' must be marked as Legacy.
动画格式设置:原创 2017-08-15 09:53:56 · 6592 阅读 · 0 评论