![](https://img-blog.csdnimg.cn/6fedc0dbf5be416382d63ba38c410189.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Unity
文章平均质量分 76
Unity相关blog
TxNet.Ltd.
不积跬步无以至千里,不积小河无以致江海。
展开
-
Unity之如何使用Localization来实现文本+资源多语言
使用Unity实现本地化(Localization)功能在当今的游戏开发中,支持多语言已成为一项基本需求。Unity作为主流的游戏开发引擎,提供了强大的本地化工具,使开发者能够方便地为游戏添加多语言支持。本文将介绍如何在Unity中使用本地化功能,包括基本设置、文本本地化和图像本地化等。原创 2024-05-29 00:18:49 · 930 阅读 · 1 评论 -
Unity之Cinemachine教程
Cinemachine是Unity引擎的一个高级相机系统,旨在简化和改善游戏中的相机管理。Cinemachine提供了一组强大而灵活的工具,可用于创建令人印象深刻的视觉效果,使开发人员能够更轻松地掌控游戏中的摄像机行为。主要功能和特性包括:1.虚拟摄像机系统: Cinemachine引入了虚拟摄像机的概念,允许开发人员使用相机组件的虚拟实例,而不必直接操作实际摄像机。2.目标跟踪: Cinemachine能够自动跟踪和对焦游戏中的目标,使相机的运动更加平滑和自然。原创 2024-01-23 23:21:59 · 2855 阅读 · 0 评论 -
Unity之Timeline教程
Unity Timeline是Unity的一种时间轴编辑器工具,用于制作和管理游戏中的动画、剧情以及事件触发。它提供了直观的界面,使得开发者可以通过拖放操作轻松创建和编辑时间轴。Activation Track:用于控制物体的激活状态。可以在轨道上添加关键帧,控制物体的激活和非激活状态。Animation Track:用于处理物体的动画。可以在此轨道上添加关键帧,编辑物体的动画状态。Audio Track:用于处理场景中的音频。可以管理音频的播放、暂停、淡入淡出等操作。原创 2024-01-23 22:30:07 · 3703 阅读 · 3 评论 -
Unity 如何实现异步UnityWebRequest请求
Unity官方从2018开始,已经不推荐使用WWW了,更推荐使用UnityWebRequest,UnityWebRequest的使用方法和WWW类似,都是使用协程的方式来等待网络回复,但是存在几个问题:1.协程只能在Unity运行时使用。所以编辑器工具如果要做网络请求,就没法用协程了。2.协程是同步阻塞的方式,无法做大量数据的异步请求。3.协程不太容易做请求数据的返回。处于对以上问题的考虑,我的需求又迫切需要做批量的http请求,所以不得不使用异步的方式来实现。原创 2023-05-18 14:45:40 · 2060 阅读 · 0 评论 -
Unity之C#端使用protobuf
protobuf全称Protocol Buffers,由Google推出的一种平台、语言无关的数据交互格式,目前使用最广泛的一种数据格式,尤其在网络传输过程中,有很强的安全性,而且数据量比json和xml要小很多。最主要的是protobuf支持的语言非常多,不管你是.net,java,lua,iOS,android,python,go,等等等等。都可以支持互相通信。我们之前的游戏框架都是lua的,所以protobuf用的也都是lua版本的。原创 2023-02-22 17:49:46 · 2796 阅读 · 0 评论 -
Unity导出并制作window安装程序exe
如果我们是做pc端游或者基于pc的一些应用的,那么我们肯定对打包exe应用程序不陌生,我们经常会用到一些软件,比如:inno setup,NSIS等而使用unity做游戏开发的的人来说,一般导出程序都是面向手机的apk或ipa,只有做VR或者pc端游才会用到这个。下面我们就简单介绍下如何使用inno setup来制作unity导出包的exe应用程序。原创 2022-12-21 23:30:30 · 5355 阅读 · 0 评论 -
Npoi之ShiftRows删除指定行
Npoi有一个删除行的方法,RemoveRow(IRow),但是看API可以看出来,它只能删除指定行,不太方便删除多行。一般我们使用ShiftRows(int startRow,int endRow,int n)方法,ShiftRows实际是剪切粘贴的意思。我们来看API:参数介绍:startRow:开始行endRow:末尾行n:移动[startRow,endRow]这一区间数据 上下移动粘贴,n>0:代表向下移动,n原创 2022-12-21 11:00:16 · 2400 阅读 · 0 评论 -
Unity插件Obi.Rope详解
Obi.Rope插件的使用方法。原创 2022-11-23 19:56:01 · 4350 阅读 · 1 评论 -
Unity接入日志插件Log4Net
log4net是一个日志插件,可以帮助我们把控制台输出的日志写入到本地。这个功能说简单就简单,说复杂其实还挺复杂。为什么这么说呢,首先文件写入本地确实简单,但是如果你要实现一下功能就没那么简单了。1.把每行日志按照指定格式写入,方便查看,2.按照不同日期切分日志文件3.日志文件太大可以自动切换文件,即:日志轮转功能。4.可以自定义设置最大文件大小5.可以自定义多久清理一次日志相比大家就知道,实现一个好的日志管理系统没那么容易了。而log4net就是这么一个工具可以帮助我们。原创 2022-11-16 15:51:42 · 3614 阅读 · 0 评论 -
Unity之Play Asset Delivery打包abb
重要提示:从 2021 年 8 月起,新应用需要使用 Android App Bundle 才能在 Google Play 中发布。现在,Play Feature Delivery 或 Play Asset Delivery 支持大小超过 150 MB 的新应用。Play Asset Delivery (PAD) 将 app bundle 的优势带到游戏中。它允许超过 150 MB 的游戏替换旧版扩展文件 (OBB),方法是将包含游戏所需的所有资源的单个工件发布到 Play。原创 2022-11-05 15:12:51 · 1671 阅读 · 0 评论 -
Unity接入google登录
谷歌登录有三种方式,分别是单独接入Googe Sign-In,Firebase的Auth登录,Google的GameCenter登录原创 2022-10-24 17:14:49 · 2075 阅读 · 0 评论 -
C#接入 NPOI
NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目原创 2022-10-17 18:44:46 · 3263 阅读 · 9 评论 -
Unity接入OneStore内购
OneStore是韩国第一大android应用市场,访问官网可能需要你科学上网才能正常访问。[中文]OneStore开发工具[中文]在Unity中使用ONE store In-App支付。原创 2022-09-02 18:25:20 · 2328 阅读 · 1 评论 -
Unity之Microphone如何实现录音和播放
前言我们项目最近要做一个聊天系统,我们使用的是tencent的IM.sdk。其中里面涉及一个语音聊天,im.sdk中支持传输语音文件,但是语音文件需要我们自己录制,我看了IM.sdk的源码,里面是原生代码实现的录音和播放,但是我们用unity的话,其实官方 已经给我们带了一个microphone类,类实现麦克风的使用。所以下面就是一个简单粗暴的录音,存储,播放 的一个小demo。数据转化unity的录音数据使用float[]来存储,但是我们的文件系统使用的是byte[]类存储,所以我们需要做一个数据原创 2022-04-26 17:01:48 · 5072 阅读 · 3 评论 -
C# HttpWebRequest详解
一.前言HttpWebRequest是C#原生语法提供的实现了Http协议完整封装的类,可以实现任意类型的Http请求。但是也因为参数众多,导致很多人不容易掌握它。今天我们来尝试从简入繁的给大家介绍下HttpWebRequest二.常用属性AllowAutoRedirect:获取或设置一个值,该值指示请求是否应跟随重定向响应。CookieContainer:获取或设置与此请求关联的cookie。Credentials:获取或设置请求的身份验证信息。KeepAlive:获取或设置原创 2022-04-20 10:24:39 · 29452 阅读 · 1 评论 -
Unity如何接入应用内购In-AppPurchase
一.前言很多游戏需要接入内购IAP,对于苹果端,我们直接对接苹果就行了,但是android平台太多,国内,我们需要接入支付宝,微信,或者华为支付,小米支付等。国外,我们需要接入谷歌支付,亚马逊等等,相对来说都是比较麻烦的,所以,一般我们使用聚合的支付SDK,会省很多力气。二.什么是UnityIAPUnity IAP 是Unity退出的一个支付SDK,可让我们轻松地在Unity中接入内购Unity IAP 支持的商店如下所示:商店名称系统平台版本网站Google支付Andr原创 2022-02-24 21:33:25 · 15435 阅读 · 3 评论 -
Unity shader 实现圆角矩形
一.前言很多情况下我们需要给矩形的图片添加圆角,如果每次都让美术处理,又有些繁琐,所以我们今天就使用shader自己实现一个圆角矩形的功能,如下图所示二.实现原理把图片拆分成如上图所示的几个不同结构(1中间的一个十字区域,2四个角分别一个1/4圆形区域),我们只需要计算出每个像素的UV在哪个区域,就可以判断是否需要渲染1.调整uv范围从(0,1)到(-0.5,0.5),即图片uv原点从左下角到中心点 o.adaptUV = v.texcoord - fixed2(0.5,0.5)2.计算原创 2022-01-20 14:22:36 · 8028 阅读 · 2 评论 -
Unity3d如何实现UGUI.Text的UV流动效果
一.实现简单的Text+贴图效果我们先效果如下:1.创建一个Text文本框,调整合适的大小,填写测试文字2.添加Position As UV1组件,给Text加材质比加组件3.创建Material材质,附加shader:UI/Unlit/Text Detail4.给Text的Material属性赋值材质。5.给材质添加Detail(RGB)贴图,自定义6.设置Canvas的Additional Shader Channles 选中TexCoord1随着我们修改Text的大小,我们可原创 2021-12-31 21:14:09 · 5423 阅读 · 1 评论 -
Shader特效之图片波动炫光效果
1.前言今天给大家介绍一个非常炫酷的UV流光特效。可以用于UI的Image的图片波动+炫光的效果。2.素材素材1:主图片,用于效果的主体显示和波动颜色素材2:噪波图,用于干扰主图渲染UV的干扰图,控制显示流动效果3.UV波动效果普通的UV波动效果如下图所示:下面是再ShaderForge中使用节点链接的,逻辑非常简单清晰波动+炫光效果我们也可以根据自己的需要,给shader添加不同的参数,比如炫光,颜色叠加等。比如看下我加的炫光效果如下:白色流光:彩色炫光:Shader原创 2021-12-18 18:52:15 · 4200 阅读 · 0 评论 -
puerts简介
前言Puerts,准确的说应该叫做:普洱TS。puerts是腾讯出品的一个游戏引擎下的TypeScript编程解决方案,基于Unreal和Unity双引擎。或者换句话说:puerts 是 Unity/Unreal 的一个 JS 运行环境。让我们可以在Unity/Unreal里面通过js来写游戏。如果有用过LayaAir和CocosCreator的同学,应该都熟悉这种TS/JS的编程方式,那么使用puerts的话,我们就可以和LayaAir,Cocos一样通过vscode来开发unity游戏了。仓库地址原创 2021-10-14 16:15:06 · 11059 阅读 · 0 评论 -
xlua-framework框架简介
前言xlua-framework框架,是一个纯lua的框架,基于XLua,整合ToLua的Proto-gen-lua,以及大部分ToLua作者整合的库,除了Assetbundle模块,大部分游戏逻辑全部用lua实现,目前实现的内容包括:UI管理模块:使用UGUI,基于MVC架构,View层实现一套组件管理系统,提供类似于Unity侧Mono脚本的调度机制。场景管理模块:场景调度、Loading界面、资源预加载网络模块:Protobuff、TCP连接器资源管理模块:打包工具、资源热更、资源加载、资原创 2021-10-13 15:41:03 · 5611 阅读 · 0 评论 -
Xlua之高级篇-集成第三方lua库
What&WhyXLua内置的扩展库:针对luajit的64位整数支持;函数调用耗时以及内存泄漏定位工具;用于支持ZeroBraneStudio的luasocket库;tdr 4 lua;由于不同公司,对第三方扩展的依赖不同,Xlua没有办法集成所有的插件,所以Xlua也除了教程,叫大家怎么去集成插件:XLua增加删除第三方lua库示例:build_xlua_with_libs这篇教程,将以lua-rapidjson为例,我们讲下怎么往xLua添加c/c++扩展,How分三步原创 2021-10-08 17:33:43 · 1968 阅读 · 0 评论 -
Mac 配置Ruby和Cocoapods环境
一.Cocospod安装注意:安装cocoapod的前提条件是:必须安装Ruby环境,所以如果没有安装Ruby的,先看后面的Ruby环境配置。1.安装cocoapods# 1.安装cocoapods#Mac OS X 10.11前$ sudo gem install cocoapods#Mac OS X 10.11后$ sudo gem install -n /usr/local/bin cocoapods#2.安装本地库$ pod setup# 3.更新本地库$ pod repo原创 2021-09-17 18:09:41 · 2701 阅读 · 0 评论 -
Unity之ShaderForge的常见效果
菲涅尔-边缘光泽效果流动炫光效果-[HDR+Bloom]UV叠加流动顶点变化-红旗飘动效果顶点变化-回型管火焰溶解遮挡X光效果透明毛玻璃原创 2021-06-30 10:21:54 · 1091 阅读 · 2 评论 -
Unity之Xlua中DOtween.To的性能优化
前言:记一次Lua代码的优化记录目前unity使用lua脚本开发游戏是市面上最流行的一种做法。lua语法简洁高效。但是不可避免的也伴随有性能问题的产生,又很多lua代码的优化策略,这里记录下一次dotween的优化,供大家参考。性能分析工具:Miku-LuaProfilerDOtween.To因为DOTween.TO的参数里面有Getter函数和Setter函数,每帧会有两次lua和C#的交互。所以使用较多,会产生大量gc,对性能影响较大。DOtween.To函数,源码如下: /// &原创 2021-06-08 22:51:43 · 4436 阅读 · 0 评论 -
ET框架-ECS
一切皆组件目前十分流行ECS设计,主要是守望先锋的成功,引爆了这种技术。守望先锋采用了状态帧这种网络技术,客户端会进行预测,预测不准需要进行回滚,由于组件式的设计,回滚可以只回滚某些组件即可。ECS最重要的设计是逻辑跟数据的完全分离。即EC是纯数据,System实际上就是逻辑,由数据驱动逻辑。数据驱动逻辑是什么意思呢?很简单通过Update检测数据变化,通过事件机制来订阅数据变化,这就是所谓的数据驱动了。其它的特点例如缓存命中,在编写逻辑上来说并不太重要,现代游戏都用脚本,连脚本的性能都能容忍怎么会在乎缓原创 2020-06-28 09:47:08 · 2922 阅读 · 0 评论 -
ET框架-组件模式
在代码复用和组织数据方面,面向对象可能是大家第一反应。面向对象三大特性继承,封装,多态,在一定程度上能解决不少代码复用,数据复用的问题。不过面向对象不是万能的,它也有极大的缺陷:数据组织耦合性及强。一旦父类中增加或删除某个字段,可能要影响到所有子类,影响到所有子类相关的逻辑。这显得非常不灵活,在一套复杂的继承体系中,往父类中改变字段会变得越来越麻烦,比方说ABC是D的子类,某天发现需要增加一个AB都有的数据,但是C没有,那么这个数据肯定不好放到父类中,只能将AB抽象出来一个父类E,E继承于D,AB共原创 2020-06-28 09:57:11 · 2180 阅读 · 0 评论 -
ET框架简介
ET的介绍:ET是一个开源的游戏客户端(基于unity3d)服务端双端框架,服务端是使用C# .net core开发的分布式游戏服务端,其特点是开发效率高,性能强,双端共享逻辑代码,客户端服务端热更机制完善,同时支持可靠udp tcp websocket协议,支持服务端3D recast寻路等等ET的功能:1.可用VS单步调试的分布式服务端,N变1一般来说,分布式服务端要启动很多进程,一旦进程多了,单步调试就变得非常困难,导致服务端开发基本上靠打log来查找问题。平常开发游戏逻辑也得开启一大堆进程,原创 2020-06-28 09:32:00 · 15356 阅读 · 0 评论 -
Unity 之自动化打包ipa
前言:除了unity自带一套命令行工具外,xcode 也自带一套xcodebuild的命令行工具,可以自动化打包和分发,如果我们写好工具,可以为以后节省很多的打包时间。1.iOS打包方式正常情况下,我们如果时真机测试的话,有一下三个途径 1.手机通过usb连接电脑,然后xcode,build到手机上,这种方法最简单实用,但是缺点就是无法异地安装 2.开发通过xcode.archive出来一个包,上传到tf,然后只要在后台添加过测试邮箱,手机就可以直接下载tf包。优点是支持异地安装。缺点就是速度原创 2021-05-28 17:47:12 · 2555 阅读 · 0 评论 -
Unity 如何实现一个强大的MMO技能系统!
1. 如何实现一个强大的MMO技能系统——序章前言技能系统可以说是游戏中广泛存在而又最重要的系统了,它是整个游戏战斗体验的核心。一套强大的技能系统可以让游戏的策略性,可玩性得到极大的提升。然而技能系统牵涉到的模块非常多,又会面对策划各种各样的奇葩需求,同时技能模块中很多系统的设计不仅仅对程序员的编码能力提出了一定的要求,而且还需要程序员对游戏机制有着深入的理解。可以说要实现一套强力的高可用高扩展的技能系统还是有一定复杂度的。如果作为一个游戏玩家,谈论到技能系统,我们一定会对War3的技能编辑器印象深刻转载 2020-07-09 11:06:16 · 10686 阅读 · 1 评论 -
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:33 · 637 阅读 · 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 : 9414x73原创 2020-11-03 11:14:02 · 12395 阅读 · 0 评论 -
EasyTouch手势识别
EasyTouch 单指或多指手势动作识别在场景目录列表中 添加EasyTouch物体EasyTouch 单指或多指手势动作识别Enable EasyTouchEasyTouch触屏功能开启或关闭Enable Unity Remote远程unity ? 开启多指触屏模式 (最终打包时,关闭此选项)GUI兼容EasyTouch 单指或多指手势动作识别Enable Uniyt UI detection开启或关闭Unity UI元素触屏识别Unity UI compatibilityEna原创 2020-06-28 10:26:16 · 1581 阅读 · 0 评论 -
Unity 如何拆分图集中的单图
很多时候我们会从某些途径获得一些图集,然后我们需要使用里面的小图,如果让美术一个一个来拆分,就比较麻烦,这里给大家提供一个小工具,可以自动拆分图片。本来想自己写一个,但是发现网上很多已经写好的,这里就不重复造轮子了,给大家分享一下吧使用方法:1.新保证原图,已经使用Unity的SpriteEditor分割。2.选中想拆分的图集文件,点击Assets/Split Atlas按钮代码:using UnityEngine;using UnityEditor;using System.IO;us.原创 2020-09-07 10:27:49 · 3307 阅读 · 1 评论 -
Unity 如何实现批量修改图片格式
前言unity开发游戏过程中,经常会批量修改部分图片格式,比如ios端,我们会修改为astc6x6,android端我们会修改为ETC2。又或者我们需要把图片打包图集,需要批量设置SpriteTag。但是当我们导入大量图片时,如果一个文件夹一个文件夹的修改,再加上android和ios不同平台的修改,这就需要大量的操作,而且最要命的时修改完后,如果团队里有人再添加新的图片,上线打包时,还需要重新整理标记图片格式。那么就需要我们写一个小工具来自动处理这个过程。常用的有两种方式第一种方式:使用unity原创 2020-09-25 20:55:43 · 2979 阅读 · 1 评论 -
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:24 · 3775 阅读 · 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:11 · 9222 阅读 · 2 评论 -
Unity中实现新手引导的镂空遮罩
一:实现思路创建有8个顶点的Mesh,内外边界都是四边形(矩形)。只生成内、外边之间的Mesh,内层矩形就产生了镂空部分,外层的4个顶点,是组件自身RectTransform的四个顶点,内层的4个顶点,使用镂空目标(_target)RectTransform的四个顶点。确定内层的顶点的时候需要注意,多数情况下_target和HollowOutMask都不在同一个本地坐标空间,所以需要使用Cal...转载 2020-03-29 12:10:54 · 5234 阅读 · 1 评论 -
Unity中UI锚点的四种摆放形式
前言Unity中不同的锚点摆放方式,当你进行父容器的操作的时候产生的效果也不相同,在其中摆放的方式有很多种,再次我列出几个经典的摆放形式。第一种摆放方式:锚点呈点状:当UI的锚点为中心点时,不管富空间的大小怎么改变,UI距离锚点的位置固定,大小固定,此时RectTransform(Pos X,Pos Y,Width,Height)其中Pos X与Pos Y分别表示UI中心点到锚点的水平与方...原创 2020-01-08 19:31:49 · 2081 阅读 · 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:59 · 1841 阅读 · 0 评论