
Unity
PassionY
不积跬步无以至千里,不及小河无以致江海。
-
原创 unity接入kcp
unity接入kcp一.前言KCP是一种基于UDP的上层协议,项目地址:KCP – A Fast and Reliable ARQ Protocol,以下是github上的介绍:KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。 连时钟都需要外部传递进来,内部不会有任何一次系统调用。整2021-01-16 18:58:2475
0
-
原创 git-flow使用规范
git-flow规范1.规范分支使用1.master分支是产品分支,不要在master直接开发2.开发统一基于develop分支,并且使用git-flow工作流进行开发3.每个人开发自己的功能,需从develop检出新分支,且直到功能或fix开发完毕,再合并到主分支,不要一条记录合并一次或者直接在develop上开发,这样保证了develop分支的正常运行和测试4.develop分支稳定之后,可以合并到master,用于测试和发布,所以对于master分支的修改一定要进行审核,保证2020-12-21 20:15:3346
0
-
原创 Unity Shader之图片彩色图过渡到灰度图
Unity Shader之图片彩色图过渡到灰度图实现原理对于彩色转灰度,首先要知道一个公式:Gray = R0.299 + G0.587 + B*0.114;shader代码下面直接看shaderShader "Custom/GrayToColor"{ Properties { // 主图 _MainTex ("Albedo (RGB)", 2D) = "white" {} // 插值 _Lerp("Color Lerp",Range(0,2020-12-10 21:49:2384
0
-
原创 GameFramwork框架详解之(六)UI框架
UI框架1.UIComponentUIComponent主要是对UIManger的封装,UGF框架对GF框架的包装,对GF的UIManager进行初始化和方法调用。public sealed partial class UIComponent : GameFrameworkComponent{ private const int DefaultPriority = 0; private IUIManager m_UIManager = null; private Event2020-11-27 22:11:22145
2
-
原创 GameFramework框架详解之(五)Download下载器
Download下载模块1.DownloadComponentDownloadComponent其实就是DownloadManager的包装而已,主要负责DownloadManager的初始化和调用,这里不多介绍,直接看结构代码/// <summary>/// 下载组件。/// </summary>public sealed class DownloadComponent : GameFrameworkComponent{ private const int2020-11-27 20:59:06124
0
-
原创 GameFramework框架详解之(四)对象池模块
一.前言GF框架中对象池的使用,总共有三处1.ObjectPool对象池2.RefrencePool引用池3.TaskPool任务池首先使用原理都是一样的,都是因为存在频繁的创建和销毁,为了避免GC而对对象进行缓存,需要时获取,不需要是回收。而在GF框架中之所以分成3个Pool去做这些事情,也是为了不同的 功能而分别差异化实现的二.TaskPool任务池先来聊聊TaskPool吧,TaskPool其实是ITaskAgent的一个集合,负责ITaskAgent的初始化,执行,回收等操作12020-11-26 22:07:41122
0
-
原创 GameFramework框架详解之(三)资源管理器
资源加载前言Game Framework 使用了一套异步资源加载体系,因此只提供了异步加载资源的接口。不论简单的数据表、本地化字典,还是复杂的实体、场景、界面,都将使用异步加载。同时,Game Framework 提供了默认的内存管理策略(当然,你也可以定义自己的内存管理策略)。资源类型定义Game Framework 中有两个关于资源的定义,在使用过程中需要注意区分。Game Framework 设计的所有方法都是面向 Asset 的,Resource 隐藏在内部,不对外公开,以降低使用的复杂度。2020-11-14 22:20:10248
0
-
原创 GameFramework框架详解之(二)框架启动
一.游戏启动先打开Assets根目录下的StarForce Launcher场景场景节点目录如下:二.GameEntry在根节点Game Framework上有个组件:GameEntry,是游戏的启动入口,GameEntry使用关键字partial被拆分成了3个文件,分别是:GameEntryGameEntry-BuildinGameEntry-CunstomGameEntry类,是项目主入口InitBuiltinComponents();InitCustomComponents()2020-10-24 17:33:47152
0
-
原创 GameFramework框架详解之(一)框架总览
一.前言目前市场上有很多优秀个开源框架,比如ET,GameFramework,DBFramework,StrangeIOC,Loxodon-Framework,KSFramework,xluaFramework等等。其中要说规范的话,不得不说GameFramework还是不错的,当然很多新手看到后会觉的有点复杂,写一个小小的功能,不得不套用一堆东西,继承一堆接口,感觉不知所措,不能随心所欲的去撸代码。其实这个框架就是为了约束新手的行为的,让我们面向接口编程,遵循“开闭”的设计原则来写代码,方便后期的扩2020-10-24 15:50:05601
0
-
原创 史上最全iPhone分辨率和尺寸
最新iPhone全机型分辨率和尺寸收录1.设计分辨率规范IOS手机手机机型(iPhone)屏幕尺寸(inch)纵横比逻辑分辨率dp设备分辨率px缩放因子ScaleFactor4(s)3.516 : 9320x480640x960@2x5(s/se)416 : 9320x568640x1136@2x6(s)/7/84.716 : 9375x667750x1334@2x6(s)/7/8 Plus5.516 : 9414x732020-11-03 11:14:02246
0
-
原创 EasyTouch手势识别
EasyTouch 单指或多指手势动作识别在场景目录列表中 添加EasyTouch物体EasyTouch 单指或多指手势动作识别Enable EasyTouchEasyTouch触屏功能开启或关闭Enable Unity Remote远程unity ? 开启多指触屏模式 (最终打包时,关闭此选项)GUI兼容EasyTouch 单指或多指手势动作识别Enable Uniyt UI detection开启或关闭Unity UI元素触屏识别Unity UI compatibilityEna2020-06-28 10:26:16321
0
-
原创 Unity 如何拆分图集中的单图
很多时候我们会从某些途径获得一些图集,然后我们需要使用里面的小图,如果让美术一个一个来拆分,就比较麻烦,这里给大家提供一个小工具,可以自动拆分图片。本来想自己写一个,但是发现网上很多已经写好的,这里就不重复造轮子了,给大家分享一下吧使用方法:1.新保证原图,已经使用Unity的SpriteEditor分割。2.选中想拆分的图集文件,点击Assets/Split Atlas按钮代码:using UnityEngine;using UnityEditor;using System.IO;us.2020-09-07 10:27:49353
0
-
原创 Unity 如何实现批量修改图片格式
前言unity开发游戏过程中,经常会批量修改部分图片格式,比如ios端,我们会修改为astc6x6,android端我们会修改为ETC2。又或者我们需要把图片打包图集,需要批量设置SpriteTag。但是当我们导入大量图片时,如果一个文件夹一个文件夹的修改,再加上android和ios不同平台的修改,这就需要大量的操作,而且最要命的时修改完后,如果团队里有人再添加新的图片,上线打包时,还需要重新整理标记图片格式。那么就需要我们写一个小工具来自动处理这个过程。常用的有两种方式第一种方式:使用unity2020-09-25 20:55:43217
0
-
原创 Unity插件之EasyTouch和LeanTouch
前言首先在Unity的AssetStore搜索EasyTouch,只能搜到其它的Touch插件,比如LeanTouch+和Easy Touch Controls等等从Easy Touch Controls的描述里面可以连接到下面的信息所以很遗憾,目前EasyTouch4.x和5.x都已经下架了,只有一个Easy Touch Controls,但是它最后一次更新是2016年,比较久远了,不太清楚HedgehogTeam公司在搞什么?难道被收购了?不管了,无论如何EasyTouch5.x 依然是我们2020-10-14 20:02:24188
0
-
原创 Unity 打包iOS 删除 UIWebView引用
介绍苹果在审核拒约时给出了以下信息:ITMS-90809: Deprecated API Usage – Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebviewfor more in...2020-04-07 13:28:117723
2
-
转载 Unity中实现新手引导的镂空遮罩
一:实现思路创建有8个顶点的Mesh,内外边界都是四边形(矩形)。只生成内、外边之间的Mesh,内层矩形就产生了镂空部分,外层的4个顶点,是组件自身RectTransform的四个顶点,内层的4个顶点,使用镂空目标(_target)RectTransform的四个顶点。确定内层的顶点的时候需要注意,多数情况下_target和HollowOutMask都不在同一个本地坐标空间,所以需要使用Cal...2020-03-29 12:10:541266
0
-
原创 Unity中UI锚点的四种摆放形式
前言Unity中不同的锚点摆放方式,当你进行父容器的操作的时候产生的效果也不相同,在其中摆放的方式有很多种,再次我列出几个经典的摆放形式。第一种摆放方式:锚点呈点状:当UI的锚点为中心点时,不管富空间的大小怎么改变,UI距离锚点的位置固定,大小固定,此时RectTransform(Pos X,Pos Y,Width,Height)其中Pos X与Pos Y分别表示UI中心点到锚点的水平与方...2020-01-08 19:31:49792
0
-
原创 Failed to unload 'Assets/xxx/xxx.asset
错误在unity的编辑器中,生成一些预制体,代码就不上了,最后生成完后,一般大家都会调用AssetDatabase.Refresh(),这个过程没有问题,代码都没有 问题,但是最后会报一个错误,如下:Failed to unload 'Assets/xxxxx//xxxx.asset'UnityEditor.AssetDatabase:Refresh()虽然报错,但是预制体资源还是给我创...2019-12-23 16:20:59609
0
-
原创 Unity接入WebCameraTexture
unity接入摄像头实现功能1.先后摄像头切换2.摄像画面和手机屏幕保持一样3.画面根据设备翻转4.手动调节scale,缩放拍摄画面的比例TODO1.不同设备,16:9和18:9等设备,画面可能不统一。比如:scale为0.5时,18:9手机全屏显示,16:9会有黑边。哪位大神如果可以解决,欢迎留言。代码:using System;using System.Collecti...2019-11-28 12:09:14361
0
-
原创 Unity接入腾讯即时通信 IM
前言一般游戏中的即时聊天,可以在unity中自己直接做,但是需要的功能比较复杂是,比如图片,语言,小视频等丰富功能是,就不是那么好实现了,现在腾讯有一个IM可以接入,里面包含了很多现有的功能,不过缺点就是,IM没有专门为Unity的教程+demo,需要自己摸索夸双平台。产品简介即时通信(Instant Messaging,IM)基于QQ 底层 IM 能力开发,仅需植入 SDK 即可轻松集成聊...2019-11-07 17:47:54947
3
-
原创 Unity项目嵌入原生IOS项目
前言现在的需求是合并IOS工程和unity3d工程需要。目前的方案有两种:1.把unity导出的ios工程嵌入IOS原生工程2.把IOS工程嵌入unity导出的IOS原生工程两种方式各有优劣,下面来分析下1.unity导出工程包含几个类库,脚本,需要修改一部分配置,如果ios原生工程是个空项目或者就几个简单页面,那么毫无疑问,是把原生的ios工程导入unity工程,这个非常简单,下一篇...2019-10-18 10:58:131349
6
-
原创 Unity项目嵌入原生Android项目教程
目的一个android项目中需要用到3D的游戏元素,所以我们打算把一个untiy3d的项目嵌入到android原生项目中,下一篇接unity3d项目嵌入到ios原生项目。环境配置:unity2018 (之前测试的unity5.6.x和unity2017也没问题)android studio3.21.unity导出gradle工程1.准备你们的游戏,或者一个测试的空场景(略)publ...2019-10-15 17:20:35527
1
-
转载 Unity3D Shader入门指南
动机自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解。虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法达到随心所欲的境地的,因此,这种状况必须改变!从哪里开始呢,貌似有句话叫做会写Shader的都是高手,于是,想大概看看从Shader开始能不能2015-03-26 17:28:45893
0
-
转载 Unity3D换装详解
首先官方有个例子十分的完整,而且还包含了asset bundle打包和读取的封装,进本把它弄懂了就Ok了,这里有个小阿哥的教程做的十分完整。小阿哥玩转unity3d系列之角色换装【工程+PPT+视频】游戏内的角色,能够像纸娃娃换装那样子让玩家可以为自己的角色改变外观,一直是相当受欢迎的功能;一般而言,我们建好的 3D 模型,如果要将其中一个部位换成另外一个形状,最直2015-04-16 16:54:165687
1
-
转载 Unity3D之手游开发中特殊的文件夹
这里列举出手游开发中用到了所有特殊文件夹。1.EditorEditor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以。比如目录:/xxx/xxx/Editor 和 /Editor 是一样的,无论多少个叫Editor的文件夹都可以。Editor下面放的所有资源文件或者脚本文件都不会被打进发布包中,并且脚本也只能在编辑时使用。一般呢会把一些工具类的脚本放2015-05-04 10:24:57752
0
-
原创 Unity5.0 WebCamTexture 调用外部摄像头
一:Unity 中使用WebCamTexture 调用摄像头实现拍照和摄像。using UnityEngine;using System.Collections;using System.IO;using System.Runtime.Serialization;using System.Runtime .Serialization.Formatters.Binary;using S2015-04-29 11:02:5420953
9
-
转载 Unity 5 全局光照GI与新的烘焙系统初探
GI是啥Realtime GI,实时全局光照,听上去就是一个非常高大上的词,但是越高大上就越令人心生敬畏,因为世上没有免费的午餐,越好的效果意味着越多的消耗,对于移动平台来说,这样的消耗受不受的起呢?首先来说说GI是干啥的,非常粗略的来描述下,如果说我们以前的光照系统就是由光源 - 物体 - 视点组成的话,那么全局光照系统就是由光源 - n多环境反射光 - 物体 - 视点。就是说GI额外包2015-07-25 10:42:322398
0
-
原创 Unity 之 C# 利用回调函数实现C++匿名函数
做C++开发的都用过匿名函数非常好用,但是C#开发怎么实现呢?前几天做一个拍照功能的时候,我偶然发现某个函数如果是C++的话,用匿名函数太好了,于是开始研究C#的回调,代理,委托等,最后总算是实现了我想要的吧,不知道到底算什么调用。有大神的话可以给出评价。参考文章:详解C#委托,事件与回调函数Unity3D研究院之利用C#实现代理模式(四十)using Unit2015-07-27 10:30:582115
0
-
转载 Unity引擎在执行协程(Coroutine)的原理
前面已经介绍过对协程(Coroutine)的认识和理解,主要讲到了Unity引擎在执行协程(Coroutine)的原理(Unity协程(Coroutine)原理深入剖析)和对协程(Coroutine)状态的控制(Unity协程(Coroutine)管理类——TaskManager工具分享),到这使用Coroutine的疑问就没有了,但是D.S.Qiu还是有点没嚼烂,所以觉得很有必要再续。2015-08-07 16:20:142313
0
-
原创 IOS内购支付服务器验证模式
IOS 内购支付两种模式内置模式的流程服务器模式的流程结论苹果反馈的状态码IOS 内购支付两种模式:内置模式服务器模式内置模式的流程:app从app store 获取产品信息用户选择需要购买的产品app发送支付请求到app storeapp store 处理支付请求,并返回transaction信息app将购买的内容展示给用户服务器模式的流程:app从服务器获取产品标识列2015-07-16 10:20:0426677
0
-
转载 Unity 优化全解析1
前言:刚开始写这篇文章的时候选了一个很土的题目。。。《Unity3D优化全解析》。因为这是一篇临时起意才写的文章,而且陈述的都是既有的事实,因而给自己“文(dou)学(bi)”加工留下的余地就少了很多。但又觉得这块是不得不提的一个地方,平时见到很多人对此处也给予了忽略了事,需要时才去网上扒一些只言片语的资料。也恰逢年前,寻思着周末认真写点东西遇到节假日没准也没什么人读,所以索性就写了这篇临2015-07-29 18:41:56704
0
-
转载 Unity3D 图片空间和内存占用分析
Texture图片空间和内存占用分析。由于U3D并没有很好的诠释对于图片的处理方式,所以很多人一直对于图集的大小和内存的占用情况都不了解。在此对于U3D的图片问题做一个实际数据的分析。此前的项目都会存在这样或者那样的打包后包大小与内存占用情况的问题,所以这次所以彻彻底底得分析下U3D对于Texture的处理方式。程序里的内存优化请参考《Unity3d优化之路》。减少U3D包大小请参考《unity32015-07-29 18:58:452635
0
-
转载 Unity 优化全解析2
1、在使用数组或ArrayList对象时应当注意[csharp] view plaincopylength=myArray.Length; for(int i=0;i { } 避免[csharp] view plaincopyfor(int i=02015-07-29 18:50:17590
0
-
转载 Unity 5 中的全局光照技术详解
本文整理自Unity全球官方网站 简介 全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法,要精确的仿真全局光照非常有挑战性,付出的代价也高,正因为如此,现代游戏会先一定程度的预先处理这些计算,而非游戏执行时实时运算。 同一场景里:没有照明(左),只有直接光源(中),和有间接光源的全局光照(右)的表现,注意颜色如何在不同的表面进行2015-07-30 18:30:081712
0
-
原创 Unity3d中的属性(Attributes)整理
Attributes属性属于U3D的RunTimeClass,所以加上以下的命名空间是必须的了。其它倒没什么需要注意的。本文将所有运行属性过一遍罢了。using UnityEngine; using System.Collections;1. [AddComponentMenu] 添加组件菜单这函数只是起方便用,原本的脚本(组建)都会在“Component/Script”菜单下,在类之前声明一下这2015-07-20 19:17:492713
0
-
转载 Unity C#中Delegate,Action,Func,Predicate的使用与区别
C#4.0推出后,类似Linq,Lamda表达式等许多新的程序写法层次不穷。与之相关的Delegate,Action,Func,Predicate的使用和区别也常常让大家迷惑,此处就结合实际的应用,对其进行详细的说明。在书写代码时,常常会用到委托,这个在winform下较常见,但自定义Delegate时,我们常常发现Delegate必须全局可见,才能在需要的地方进行使用,而对于私有的del2015-08-17 19:49:029271
0
-
转载 unity3d优化总结篇
对项目优化有很多,如:mesh合并 ,减少DrawCall和模型骨骼以及物理计算,合并材质球,优化代码等等,前面发过一篇【整理】unity3d优化总结篇 现在继续补上,该内容为本人经验以及网上收集整理,希望大家有更好的优化方法,能够继续跟帖,一起探讨,共同进步。优化: 1. 更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种,每家的2015-08-18 15:57:441886
0
-
转载 猫都能学会的Unity3D Shader入门指南(一)
猫都能学会的Unity3D Shader入门指南(一)动机自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解。虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法达到随心所欲的境地的,因此,这种状况必须改变!从哪里开始呢,貌似有句话叫做会2015-11-12 19:32:48686
0
-
转载 猫都能学会的Unity3D Shader入门指南(二)
猫都能学会的Unity3D Shader入门指南(二)关于本系列这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果您在Shader开发上有所心得,很欢迎并恳请您指出文中纰漏,我会尽快改正。在之前的开篇中介绍了一些Shader的基本知识,包括S2015-11-12 19:35:22699
0
-
翻译 Surface Shader Examples 详解
Surface Shader ExamplesHere are some examples of Surface Shaders. The examples below focus on using built-in lighting models; examples on how to implement custom lighting models are in Surfa2015-11-12 17:32:341755
0