Unity
文章平均质量分 58
2080.
学无止境
展开
-
【Unity】构建错误: OBSOLETE - Providing Android resources in Assets/Plugins/Android/res was removed
Unity 2021 不再支持直接在Assets/Plugins/Android/res目录下放置Android资源。1、项目由Unity 2020.1.33f1升级至Unity 2021.3.9f1。原创 2024-01-19 16:52:43 · 2262 阅读 · 2 评论 -
【Unity】本地推送 Mobile Notifications
Unity 官方本地Push解决方案,支持一次性或重复通知最新版本:2.1.1,支持Unity 2020.3及以上版本,支持Android5(API 21)和iOS 10.0+官方文档地址。原创 2023-03-24 15:55:36 · 4503 阅读 · 9 评论 -
Unity日常Bug
积累开发中的小技巧,持续更新中...原创 2022-11-11 13:44:41 · 1436 阅读 · 0 评论 -
【Unity】IOS开发者证书和描述文件相关配置
Unity游戏开发,IOS证书生成和配置最新教程原创 2022-09-16 19:33:19 · 2196 阅读 · 0 评论 -
【Unity】A failure occurred while executing com.android.build.gradle.internal.tasks.Workers
A failure occurred while executing com.android.build.gradle.internal.tasks.Workers原创 2022-08-23 15:57:04 · 4106 阅读 · 0 评论 -
【Unity】Build error:failed running il2cpp.exe
NDK导致打包失败原创 2022-08-04 16:21:58 · 1970 阅读 · 0 评论 -
【Unity】编译IOS报错:NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask(Code=1022)
iOS9引入了新特性AppTransportSecurity(ATS)。详情AppTransportSecurity(ATS)新特性要求App内访问的网络必须使用HTTPS协议。但是我们的项目使用的是HTTP协议,使用私有加密方式保证数据安全。某项目需要打包IOS,在打包过程中遇到了很多问题,以下是网络请求数据时报错。HTTP与HTTPS区别。...原创 2022-07-28 21:33:36 · 2597 阅读 · 0 评论 -
【Unity】保存图片到相册以及权限管理
本文旨在介绍,如何将游戏内的图片保存到Android相册,并实时刷新显示出来(不需要写Android原生项目),另外解决存储权限申请和弹窗隐藏问题。原创 2022-07-26 17:25:03 · 8553 阅读 · 1 评论 -
【Unity】error CS0433: The type ‘Task‘ exists in both Unity.Tasks,....
文章目录一、问题二、 解决一、问题环境Unity 2020.1.14f1Firebase 8.9.0最近接入了Google Firebase Remote Config,提取并激活值得时候,遇到了如下错误:error CS0433: The type ‘Task’ exists in both Unity.Tasks很明显这是由于在两个命名空间下都存在了System.Threading.Tasks,导致的问题二、 解决方法一:使用命名空间别名的方式是无效的方法二:原创 2022-04-19 12:31:25 · 6170 阅读 · 0 评论 -
【Unity】多语言实现方案
文章目录一、简介二、代码实现一、简介数据格式小编使用的Excel管理所有语言,格式如下:如有更多的语言翻译,只需要在后面加一列即可。另外我们也可以把数据以上面的结构保存成Json文件的方式。编辑器 -> 静态文本为Text组件添加LocalizationText.cs脚本,在属性页面可以设置当前Text组件的文本多语言ID,即可查看对应翻译内容动态文本比如:LEVELS {0},需要再脚本动态更新关卡数目,这样的话可以通过封装的获取文本的接口Localizat原创 2022-04-14 19:29:15 · 4959 阅读 · 0 评论 -
【Unity】Unity 2020.1.14 构建项目卡顿,Building Scene 0...
文章目录一、问题二、解决方案一、问题环境:Unity 2020.1.14f1触发场景导入了Firebase、FB和Adjust或Max聚合,之后再打包就一直卡在"Buliding Scene 0 : Main"二、解决方案方法一:转到Unity -> Assets -> External Dependency Manager -> Android Resolver -> Settings窗口,取消勾选Enable Auto-Resolution和原创 2022-04-12 20:24:31 · 9953 阅读 · 0 评论 -
【Unity】Web请求转义字符问题(Endode,Decode)
文章目录一、问题二、解决三、补充一、问题客户端拉取服务游戏配置文件,通过Url下载图片和视频,但是Url连接中包含转义字符,比如说:空格、中文等转义的特殊字符的完整列表字符ASCII编码描述%%25百分号,用于引用元数据。$%24美元符号,用于引用属性。@%40At 符号,用于引用项列表。(%28左圆括号,用在列表中。)%29右圆括号,用在列表中。;%3B分号,列表分隔符。?%3F问号,描述项的“Include原创 2022-04-02 11:41:43 · 4836 阅读 · 0 评论 -
【Unity】IAP内购:NullReceiptException: Exception of type
文章目录一、问题二、原因三、解决一、问题环境Unity 2020.1.14f1IAP 3.0.1发生场景用户点击恢复交易后,执行RestoreTransactions()方法,在回调中处理恢复订阅(注意:回调函数返回Ture仅代表方法执行成功并不意味着恢复成功),如何处理呢?(1)首先本地拿到GP后台配置的商品sku,调用StoreController.products.WithID(sku)判断后台是否相应的内购商品,然后获取方法返回的Product;(2)一般来说订阅只能购买原创 2022-03-25 14:15:35 · 2970 阅读 · 0 评论 -
【Unity】Temp\gradleOut\launcher\build\outputs\bundle\release\launcher-release.aab does not exist
文章目录一、问题二、原因三、解决方法一、问题环境Unity 2020.1.14f1baseProjectTemplate:classpath ‘com.android.tools.build:gradle:3.6.0’Gradle版本:5.6.4问题描述打包Apk是没有问题的,但是现在需要打包成aab,上传Google Play后台,报错信息如下FileNotFoundException: Temp\gradleOut\launcher\build\outputs\bundle原创 2022-03-17 16:13:21 · 6974 阅读 · 3 评论 -
【Unity】UniWebView的使用
文章目录一、介绍二、使用三、坑一、介绍背景:需要直接在游戏内展示一个webview视窗UniWebView(版本3.0+)UniWebView 是一个 Unity 3D 插件,用于将 Web 视图组件添加到 iOS 和 Android 上的 Unity 3D 手机游戏。它在 C# 中提供了一组抽象、跨平台和高级 API。使用 UniWebView,您可以在不了解原生开发的情况下将一些行为(例如浏览器)放入您的游戏中。当您需要显示公告或通知、为玩家排名添加排行榜或向您的用户显示任何交互式网页时原创 2022-03-15 16:45:32 · 18604 阅读 · 23 评论 -
【Unity】Gitlab CI/CD自动化构建Unity项目
GitLab CI/CD(后简称 GitLab CI)Gitlab CI/CDGitLab CI/CD(后简称 GitLab CI)是一套基于 GitLab 的 CI/CD 系统,可以让开发人员通过 .gitlab-ci.yml 在项目中配置 CI/CD 流程,在提交后,系统可以自动/手动地执行任务,完成 CI/CD 操作。而且,它的配置非常简单,CI Runner 由 Go 语言编写,最终打包成单文件,所以只需要一个 Runner 程序、以及一个用于运行 jobs 的执行平台(如裸机+SSH,原创 2022-03-14 19:37:01 · 4657 阅读 · 0 评论 -
【Unity】Error:annotationType(): unrecognized Attribute name MODULE
文章目录一、遇到的问题二、可能的原因三、解决方案一、遇到的问题问题背景Unity 2020.1.14发布Apk包上架GooglePlay商店,要求API Target级别为31,也就是Android12环境,打包的时候报错(1)整体错误信息(2)警告信息Starting a Gradle Daemon, 1 incompatible and 4 stopped Daemons could not be reused, use --status for details> Conf原创 2022-03-10 20:20:41 · 9085 阅读 · 0 评论 -
【Unity】Didn‘t find class “com.xx.xx“,[zip file “/data/app/com.xx.xx-bTzzxkDco4BxPLjQXoJGog==/b
文章目录一、遇到的问题二、原因三、解决方法一、遇到的问题项目背景Unity与Android交互,通过调用原生接口上报打点问题描述客户端频繁的触发打点任务,调用Android端的接口,应用闪退,错误信息:“java.lang.ClassNotFoundException: Didn’t find class "com.google.xxx.xxxx"二、原因当您的应用及其引用的库包含的方法数超过 65536 时,您会遇到一个构建错误,指明您的应用已达到 Android 构建架原创 2022-02-23 18:20:48 · 8170 阅读 · 0 评论 -
【Unity】Android12设备安装失败
文章目录一、问题二、解决方法一、问题 原来的项目是在Unity 2019.3开发的,现在要求升级Target API等级到31。但是在使用旧版本构建的时候,提示需要将Gradle版本升级到5.6及以上,所以你需要升级Gradle或者将项目Unity版本升级到2021,俺选择了后者 在Project Settings > Player > Android > Publishing S原创 2022-02-23 14:13:08 · 3267 阅读 · 3 评论 -
【Unity】Microsoft (R) Visual C# Compiler version 2.9.1.65535 (9d34608e)
文章目录截图:环境:解决:截图:环境:Unity 2020.1.14f1解决:对于我来说,改动下脚本并保存,回到Unity,等到编译器编译结束后,问题就消失了。如果上述方法对你无效,请参考Microsoft ® Visual C# Compiler version 2.9.1.65535 (9d34608e)...原创 2022-02-17 19:45:36 · 5533 阅读 · 0 评论 -
【Unity】动态裁剪Texture
文章目录应用场景代码应用场景Sprite精灵不需要完全显示贴图,仅需要在屏幕显示区域大小的贴图生成的精灵。动态加载一张贴图,同样也是仅需要显示Image或RawImage在屏幕区域大小的。(隐私问题,不再过多赘述)代码参数输入 /// <param name="x">Image或RawImage组件RectTran.anchoredPosition.x</param> /// <param name="y">Image或RawImage组原创 2021-11-26 09:53:49 · 4507 阅读 · 1 评论 -
【Unity】iOS framework addition failed due to a CocoaPods installation failure
Mac环境打包iOS报错,错误信息:iOS framework addition failed due to a CocoaPods installation failure. This will will likely result in an non-functional Xcode project.After the failure, "pod repo update" was executed and succeeded. "pod install" was then attempted aga原创 2021-10-29 21:18:35 · 2728 阅读 · 0 评论 -
【Unity】程序优化指南
文章目录性能分析客户端优化指南服务端优化指南行动指南性能分析分离热点区域技能释放、AI系统、物理碰撞等;扎实的OS与底层知识线程挂起;频繁的IO操作做好开发日志使用性能分析、内存分析等工具持续关注项目性能问题客户端优化指南算法优化(1)时间换空间或空间换时间(2)局部最优解(3)问题分治(模块细分,减小计算规模)(4)写代码习惯内存优化和GC回收内存优化重点:模型、纹理、音效等资源(1)资源释放(小游戏,建议资源使用结束内存不立即释放,暂原创 2021-10-09 20:11:48 · 982 阅读 · 0 评论 -
【Unity】多任务定时器模块
文章目录为什么自己做定时器系统定时器原理核心代码测试为什么自己做定时器系统首先我们先来看下,在Unity中可以定时执行的三种方式:Update 面对多任务定时器,Update的方式较为麻烦。协程yield return new WaitForSeconds(时间);yield return new WaitForSecondsRealtime(时间); 每次启动定时器,都要开启一个协程,若开启协程任务太多,会造成程序卡顿。 3. InvokeInvoke("fun",dela原创 2021-09-09 10:03:12 · 1107 阅读 · 1 评论 -
【Unity】Addressables插件-资源管理系统
文章目录Addressable Asset System(可寻址资产系统)1. 背景2. Addressable系统介绍3. Addressable系统优势:4. Addressable系统与AssetBundle的区别Addressable系统的使用1. 安装2. Addressables管理窗口3. AddressableAssetSettings系统设置4. 资源组设置5. 标记资源6. 资源打包7. 加载资源8. 更新资源包9. 热更新代码和方案10. 资源自动分组11. 内存管理12. Addre原创 2021-09-08 11:48:56 · 8588 阅读 · 0 评论 -
【Unity】RenderTexture播放视频画面残留问题
问题描述:项目中使用Unity提供的VideoPlayer组件播放视频,在Assets下创建了一个RenderTexture作为媒介,将其拖拽赋值给RawImage和VideoPlayer组件 的targetTexture属性即可在UI播放视频,但是使用过程中发现,切换视频播放,每次开始播放视频时,前一帧都会先显示上次视频播放的内容。解决方案:实时创建RenderTexure,避免了预先创建残留先前播放画面的问题。VideoPlayer组件提供一个方法,VideoPlayer.targetT原创 2021-08-09 15:43:25 · 3528 阅读 · 2 评论 -
【Unity】Addressables插件-热更新问题集
一、旧资源如何删除问题使用Addressable实现资源热更新,实验过程中发现,当资源更新后,新的资源包并不会直接覆盖原有资源包,而是会生成新的资源包后,旧的资源累积在本地,迭代的版本多了,自然而然的占用大部分空间测试思路本地新建资源分组,勾选Build和load路径,Play Mode Script模式选择Using Existing Build,首次打包选择Build - New Build - Default Build Script即可,日后更新资源,操作Build - Update原创 2021-06-17 21:51:48 · 2209 阅读 · 1 评论 -
【Unity】Addressables插件-热更新
一、热更新方案前提配置:(1)勾选AddressableAssetSettings设置的Disable Catalog Update On Startup选项(2)相应的热更戏资源分组配置(注:此文采用的是动态资源更新)Can Change Post Release:No-Static(全量更新资源,直接替换旧资源)Cannot Change Post Release:Static(增量更新,不更新旧包资源,直接生成新的资源包)思路:(1)如果本地已经确定好了具体需要热更的资源,可以原创 2021-06-17 21:21:00 · 3288 阅读 · 1 评论 -
【Unity】ScrollRect滑动列表重复利用
水平或垂直可选using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class UIScrollRect : MonoBehaviour{ [Header("水平")] public bool Horizontal; [Header("垂直")] public bool Vertical; [Heade原创 2021-06-08 16:03:48 · 432 阅读 · 1 评论 -
【Unity】ArgumentException: Requested value ‘X86‘ was not found
Unity2019.3.01f起,对x86架构的支持已完全删除,项目中一直在寻找它项目导入的PlayServicesResolver 在搜索此选项,所以抛出ArgumentException。删除即可。原创 2021-02-23 17:34:55 · 1624 阅读 · 1 评论 -
【Unity】对象的Collider(绿色框)看不到了
问题:拉的别人的项目,打开调整地形的collider时,发现不显示了,其他工程能正常显示,貌似是Unity的bug.解决:点击unity编辑器右上角layout,选择一个官方布局即可原创 2021-02-22 16:09:50 · 5668 阅读 · 4 评论 -
C#:公钥、私钥pem文件转XML,RSA算法公钥加密和私钥加签名
问题:使用OPENSSL生成的公钥和私钥,需要使用RSA算法对AES密钥和参数进行加密、签名,java中可以直接识别pem格式的公钥和私钥文件,但是C#中只能识别XML格式的,所以需要进行转换注意:pem转XML时。需要依赖一个第三方库,叫BouncyCastle。官网地址:BouncyCastle(如果从官网下载太慢或无法下载可通过百度网盘下载:https://pan.baidu.com/s/1I7URHC7C89MlqT2OfZUSig提取码:ri2v )1.公钥pem格式文件转XML注原创 2021-02-02 19:44:13 · 3734 阅读 · 4 评论 -
【Unity】Dots(多线程式数据导向型技术堆栈)
一、什么是DOTS?全称Data oriented Tech Stack,中文既是多线程式数据导向型技术堆栈,包括以下几个部分:ECS(Entity Component System):编写高性能代码。ECS为游戏设计提供较好的方式,讲数据和行为分离,使开发者可以专注于解决实际问题。Job System:编写多线程代码。在Job System前,Unity对多线程的支持并不是那么友好,开发者只能使用多线程做数据、网络等功能开发,有关对象的操作都只能再主线程中操作,而新的Jos System 以安全、原创 2021-01-27 17:56:42 · 2548 阅读 · 1 评论 -
【Unity】“SetDestination can only be called on an active agent that has been placed on a NavMesh”解决方案
问题最近使用NavMeshAgent做怪物自动寻路和攻击功能项目运行报错"SetDestination can only be called on an active agent that has been placed on a NavMesh",怪物可以跑和攻击,但是不能移动追击敌人。前提条件我的项目中地图和怪物都是动态生成,NavMesh寻路网格也是动态烘培的。解决常规解决方案检查地图是否烘焙,若没有寻路网格,在Nagation窗口手动bake下地图。检查怪物或者主角是否位于原创 2020-12-25 17:49:16 · 4504 阅读 · 2 评论 -
【Unity】物体(Rigibody组件)碰撞穿透、碰撞抖动
一、碰撞穿透碰撞条件:主角(移动的物体)带有Rigibody组件;墙体(受力物体)带有Collider组件穿透的原因:1.主角移动速度太快,墙体的Collider厚度太薄2.主角和墙体都以一定的速度移动,发生的碰撞穿透解决:我们先来了解下刚体(rigidbody)属性参数:Collision Detection(碰撞检测):三种选项:Discrete(离散),Continuous(连续),Continuous Dynamic(动态连续)。参考下官方的解释:该属性用于控制避免高速运动原创 2020-11-24 17:35:57 · 15853 阅读 · 1 评论 -
Unity Hub那些事
通过Unity Hub管理项目固然方便好用,但是每次打开项目都要检查用户的许可证,不知道的新手肯定着急了,在此贴出我与Unity Hub的相爱相杀一、申请个人许可证1.在我们刚装好Unity Hub使用它打开项目时,没有权限的你就会看到如图的提示,意思是你还没许可证。那么我们来一起申请一个2.首先我们需要先登入我们的账号,点击Unity Hub右上角用户ID的小图标,在弹出框中点击Sign in,输入用户名和密码登录Unity。然后选择“管理许可证”3.进入许可证管理页面,点击“激活新原创 2020-11-16 20:22:51 · 1834 阅读 · 0 评论 -
【Unity】HighlightingSystem(边缘光)插件
一、插件下载地址链接:https://pan.baidu.com/s/1HBLVaRErQeJecoc2v2_jZw提取码:39fl二、插件简单使用以及常用方法介绍1.键插件导入Unity,在Assets文件夹下会有官网提供的Demo文件夹(附带一些使用场景和开发文档);Plugins文件夹下有插件的脚本和sahder注:若导入后,Unity提示有错误,将错误代码注释即可(不影响使用)2.在摄像机上添加Highlighting Effect脚本,用来渲染3.在我们需要添加边缘光的物体身原创 2020-11-04 16:02:58 · 4926 阅读 · 8 评论 -
【Unity】热更新流程
1.将资源打包成AssetBundle资源包并存放到Unity特殊文件夹StreamAssets下2.生成所有文件的MD5码存放在StreamAssets/file.txt文件中,生成的版本文件存放在StreamAssets/version.txt3.热更新资源包上传到服务器4.首次启动游戏,解压StreamAssets文件夹下的所有文件到PersistentDataPath,当然也可以只解压file.txt和version.txt文件,若只解压这两个文件,之后加载资源时需要先判断Per.原创 2020-11-03 19:58:04 · 4795 阅读 · 0 评论 -
【Unity】打包APK时常见报错(更新...)
一、错误信息:CommandInvokationFailure: Failed to sign APK.原因一、Unity不允许打包到项目的Assets文件夹中。解决:更换一个Build输出目录(如输出到桌面)。原因二:Unity2017.1版本中倒出时选择的Build System是内置的(Internal),且Player Settings里没有打上签名(用的Internal默认的Debug签名)解决:Build System选择Gradle,在Player Settings中设置签名。原创 2020-08-27 13:09:37 · 2257 阅读 · 1 评论 -
【Unity】构建的apk安装失败
问题:公司老项目发布的apk包,需要修改版本信息,修改之后,再次安装的时候,模拟器提示:安装失败。解决:网上搜索了一下,看到有些网友也是遇到了类似的问题,也贴出来了自己的解决方案,虽然对于我遇到的问题并没有起作用,还是在此表示感谢并贴出网友的解决方案解决方案一:包名没有统一,在Unity PlayerSettings->OtherSettings->Package Name工程的包名要与Plugins->AndroidManifest.xml文件中的包名保持一致解决方案二:同原创 2020-08-20 14:48:32 · 9599 阅读 · 5 评论