
unity
文章平均质量分 83
皮皮陶
这个作者很懒,什么都没留下…
展开
-
Unity优化包体
编译首包1.使用il2cpp编译导出Android工程2.使用Android Studio的Apk Analyze分析当前apk的大小清理插件这一步是比较快且收益比较高的,一般一些第三方的插件都可以较快的发现和清理,可以把一些不需要的插件进行清理,全局搜索Asset下的Plugins目录,把不需要的删除即可注:可能有些插件删除了后,编译的apk出现闪退的情况,需要关注AndroidManifest.xml中对插件的引用,在删除插件后,删除对应的配置。修改编译设置1.使用il2cpp编译时会原创 2022-05-19 10:29:05 · 1735 阅读 · 0 评论 -
AndroidStudio 导出AAB格式上传谷歌提示超过150M 解决方案
AndroidStudio 导出AAB格式上传谷歌提示超过150M1.在Google Play后台上传aab包时候报错提示您的 App Bundle 包含的以下配置会使应用的初始安装大小超过 150 MB 的上限2.这里的150M指的不是aab的大小,而是解压aab后里面的base文件夹压缩后的大小不能超过150M解决方案把base文件下的内容拆分到其他module作为install_apk,即Play Asset Delivery(PAD)Play Asset Delivery 针对原生原创 2022-01-11 16:18:38 · 8712 阅读 · 0 评论 -
Android Google Play 支付SDK接入指南
前端这里要接入的是google应用内支付1.在app模块下的build.gradle模块下引入最新版本google billing 4.0版本,顺便引入google服务,如下 implementation 'com.google.android.gms:play-services-wallet:19.0.0' implementation 'com.android.support:appcompat-v7:24.1.1' implementation 'com.android.b原创 2021-12-21 20:46:24 · 15499 阅读 · 2 评论 -
Android包在有些机型上无法安装以及闪退崩溃问题
cup架构问题1.不管是Cos creator还是Unity在打包的时候,都可以进行cpu架构选择,安装包里面缺少对应.so文件则会导致机器闪退2.我们可以解压Apk,然后找到lib文件夹这里需要保持这些文件夹里面的.so结构目录一致,否则在对应平台下会崩溃。注意:这里要注意接入sdk或者引入第三方的arr包时,可能第三方arr包里面带有部分.so文件,最后拷贝.so文件到对应各个平台目录下时可能会出现有些目录下.so文件数量目录结构对不上的情况这个时候我们只需要设置gradle中的jniLib原创 2020-11-18 09:31:29 · 663 阅读 · 0 评论 -
UGUI获取自适应UI元素的宽高
对于使用了layout的布局元素来说,并不能直接通过rectTransfrom来获取搞元素的weight和height不过Unity中有对应API可以帮助我们获取通过LayoutUtility中的静态方法我们可以获取对应的一些信息GetFlexibleHeight 返回布局元素的灵活高度。GetFlexibleSize 返回布局元素的灵活大小。GetFlexibleWidth 返回布局元素的灵活宽度。GetLayoutProperty 使用给定的RectTransform获取布局元素的计算原创 2020-07-01 17:17:48 · 1622 阅读 · 0 评论 -
UGUI粒子与UI叠加状态(粒子与UI渲染顺序)
游戏开发中不免要在两个UI元素之间插入一个粒子特效(Partice Sysrtem),使我们的粒子处于两个UI元素中间。实现方案11.通过设置Canvas层级和粒子渲染层级达到效果如图,粒子夹在ImageA和ImageB中间这里实现方式有很多种1.ImageA和ImageB处于两个不同渲染层的Canvas两个Canvas的RenderMode使用相机模式(Screen Space-Camera)A的Canvas渲染层级为10,B为0然后粒子特效的RenderOrder为0-10之间即能原创 2020-07-01 11:16:52 · 1824 阅读 · 0 评论 -
UGUI粒子遮罩(UI Mask 遮挡粒子)
前言在Unity中UGUI的Mask遮罩无法对Partice System(粒子)起到直接的作用,于是这里我们使用Shader来实现UI Mask对粒子的遮罩效果。关于粒子显示在同一层两个不同UI之间叠加的问题:实现方案首先使用一张image图片,添加mask遮罩,这张图片默认使用的是UI/Default的shader,这里我们替换成UI/MaskDefault的shader,这里贴出源码:// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' wit原创 2020-06-30 09:54:45 · 6030 阅读 · 1 评论 -
Unity与Xcode交互基础
准备首先我们从Unity中Build出Xcode工程,然后打开工程,在工程中找到UnityAppController.mm文件生命周期UnityAppController实现了UIApplicationDelegate中的生命周期函数,这里了解一下:application:didFinishLaunchingWithOptions: 这是程序启动时调用的函数。applicationDidBecomeActive: 应用在准备进入前台运行时执行的函数。applicationWillResig原创 2020-06-01 11:03:40 · 1147 阅读 · 0 评论 -
Unity新手引导
介绍这里要介绍的是通过着色器(Shader)来实现高亮某一UI效果先看效果一个圆形范围高亮显示,一个矩形范围显示圆形这里先上C#代码,后面会给出Shader的代码/// <summary>/// 圆形遮罩镂空引导/// </summary>public class CircleGuidanceController : MonoBeha...原创 2020-01-13 20:05:30 · 2165 阅读 · 3 评论 -
Unity扩展Transfrom组件查找子孙物体
扩展方法1.扩展方法必须是静态方法,其所在的类也必须是静态的2.扩展方法的第一个参数为需要扩展的类型,且必须带有this关键字扩展Transfrom组件查找子孙物体通过递归查找根节点下的子物体或者孙物体或者兄弟物体/// <summary> /// 递归查找物体的子物体 /// 返回名字为name的物体,有相同名字的则返回第一个 ///...原创 2019-12-31 20:22:55 · 893 阅读 · 0 评论 -
Unity加载AB包出现材质(Shader)丢失的问题
问题在项目中打包发布AB包的时候,当我对某个资源的材质修改的时候(例如:替换了某种Shader渲染时),发现这个时候加载出来的模型资源出现了材质丢失的情况,起初,我以为是模型材质的引用问题,于是,我又把材质单独提取成一个AB包,并在加载模型之前加载出来,最后发现并没有什么用,本以为是AB包的分组策略问题导致材质的丢失,最后发现问题居然是打包AB包的时候没有把修改后资源的Shader加入到Uni...原创 2019-12-27 13:56:37 · 8742 阅读 · 3 评论 -
Unity在安卓端读写数据的一些问题
路径在安卓端一般常用的路径1.StreamingAssetsPath:Application.streamingAssetsPath 2.PersistentDataPath:Application.persistentDataPath区别:1.StreamingAssets需要我们在编辑器里手动创建的一个文...原创 2019-12-10 19:52:58 · 832 阅读 · 0 评论 -
动态生成CS文件(动态生成C#类)
基础1.CodeTypeDeclaration 可用于表示声明类、结构、接口或枚举的代码 官方传送门:https://docs.microsoft.com/zh-cn/dotnet/api/system.codedom.codetypedeclaration?redirectedfrom=MSDN&view=netframework-4.82.CodeMemberField 表示某...原创 2019-11-28 16:58:36 · 2799 阅读 · 0 评论 -
AssetBundle包的加密
思路:1.先把资源构建成AssetBundle包2.将构建出来的AB包数据读取出来进行加密,然后重新写入AB包3.先解密,然后加载AB包加密与解密1.这里我们首先设定一个加密码,然后将读取出来的文件流的每一位与加密码进行异或操作得到一个新的加密过的数据,解密也是一样的操作public class FileTools{ public const byte Key ...原创 2019-11-16 17:37:10 · 455 阅读 · 0 评论 -
xlua学习之路(一)安装配置环境
xlua的安装xlua github下载地址:https://github.com/Tencent/xLua打开zip包,你会看到一个Assets目录,这目录就对应Unity工程的Assets目录,保持这目录结构放到你的Unity工程如果希望安装到其它目录,请看FAQ相关介绍 。热补丁使用方式1、打开该特性添加HOTFIX_ENABLE宏,(在Unity3D的...原创 2019-06-12 10:25:48 · 1778 阅读 · 0 评论 -
xlua学习之路(二)xlua基础
lua文件加载1.执行字符串XLua.LuaEnv luaenv = new XLua.LuaEnv();luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");luaenv.Dispose();1、DoString参数为string,可输入任意合法的Lua代码,本示例在lua里调用C#的UnityEngine....原创 2019-06-12 10:56:41 · 1117 阅读 · 0 评论 -
xlua学习之路(三)Lua面向对象
简单实例【lua创建对象】假如我们有一个人,这个人名字将张三,年龄18,在lua中我们可以这样实现person={name="张三",age=18}那么现在我们又来了人,名字叫李四,年龄22,于是我们又要写一遍,就像这样person2={name="李四",age=22}要是我们有100个人,1000个人就会很繁琐于是我们就可以写一个模板Person,然后给他写个创建对象的方法,就...原创 2019-06-27 10:09:29 · 1266 阅读 · 0 评论 -
FairyGUI学习笔记(循环列表)
循环列表首先在FGUI界面搭建UI并导入Unity,这里省略搭UI的步骤playerList = GetChild("playerList").asList; //获取到列表获取到列表后,设置虚拟循环列表 playerList.SetVirtualAndLoop(); playerList.numItems = 5; //设置列表长度渲染的方法进行注册 playe...原创 2019-07-13 18:05:32 · 3717 阅读 · 0 评论 -
Unity GPS定位之逆地理编码(获取经纬度并转换成地理位置)
unity定位前言最近在做一款手游,然后策划给的需求就是定位到当前用户所在的城市,然后花了一个上午给做了出来,思路大概就是新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高...原创 2019-09-04 15:05:57 · 1565 阅读 · 0 评论 -
Unity与Android通信基础篇
前言看了网上千篇一律的Unity与Android通信的方法,作为一个新手,真的很容易入坑,我这里介绍一个简单的方法,不用导什么arr包,jar包的,然后改AndroidManifest文件环境1.首先我们需要安装JDK,并配置环境2.Unity中选好SDK和NDK指定路径3.Unity工程切换为Android工程4.打包发布的包名,工程名指定好基础1.拿到我们的UnityPlaye...原创 2019-09-21 11:19:16 · 382 阅读 · 0 评论 -
IEnumerable和IEnumerator详解
组成从名字常来看,IEnumerator是枚举器的意思,IEnumerable是可枚举的意思。这两个都是个接口接下来我们看一下IEnumerator和IEnumerable的源码 public interface IEnumerable { IEnumerator GetEnumerator(); }IEnumerable非常简单,就一个GetEn...原创 2019-06-20 15:23:00 · 3235 阅读 · 0 评论