- 博客(167)
- 资源 (6)
- 收藏
- 关注
原创 XR和Steam VR项目合并问题
而SteamVR是OpenVR Loader,而XR是OpenXR,因为OpenVR Loader在前,所以激活的是OpenVR Loader,这也是为什么SteamVR场景可以运行而XR场景不行。事情变的有趣起来,我们知道了这样的原理之后,那鱼蛋我就想着尝试下,在Runtime里动态切换行吧,SteamVR场景切换到OpenVR Loader,而XR场景切换到OpenXR,代码如下。最后的结果就是,没法实现动态切换XR或VR,如果看到此处的人,有办法请告诉我,我尝试了两天用了各种办法,都没法做到。
2024-06-07 11:48:24
752
2
原创 Unity地形关联出错的解决办法以及地形深度拷贝
我们发现,强制拖过去会有一个警告,意思大概是地形数据和该地形的collider数据不匹配。最近发现unity地形系统的一个bug,导入的场景地形数据关联错乱了,关联到别的场景的地形数据了,meta替换了也没用,不清楚它具体是怎么关联的。可以看到正常这个场景的地形数据应该关联的是Scene_Empty_Terrain的数据,但是现在它关联到别的了。其实使用上面的方式已经可以解决了,第二种是想推荐下下面的地形拷贝类,本鱼蛋自己也做个备份,方便后续使用。那我们强制把正确的地形数据拖过去行不行,我们试下!
2024-04-19 11:11:18
644
1
原创 frp内网穿透,让外网可以访问内网
frp 是一个开源的内网穿透工具,当然也可以用nat123。GitHub链接:frp可以将本地局域网的机器暴露到公网,只要有网络就可以访问。支持 TCP、UDP、HTTP、HTTPS,不仅仅限于本地web服务器可以暴露,整台机器都可以暴露,windows的远程控制,mac和linux的ssh都可以被暴露。
2024-04-02 14:41:26
849
原创 如何不依赖Unity直接解压unitypackage的内容
我们都知道unity的资源导出是导出成.unitypackage文件,如果要里面的内容,得打开Unity,将unitypackage导入进去才能看到里面的内容。当然可以,为此我做了一个工具,可以不需要unity直接将unitypackage解压出来,这里我介绍下他的用法,后续我会把工具包上传上来。通过上面的主要代码,我们可以看到其实unitypackage就是一个简单的压缩包,解压出来的文件如下图所示,像乱码一样,文件也不明文。随便找个目录看下,找到pathname。如果需要免费下载该资源包,请加群获取。
2024-03-12 14:12:26
1720
3
原创 Unity使用UnityWebRequest读取音频长度不对的解决方法
在开发的过程中碰到这样一个问题,有的音频文件通过UnityWebRequest读取出来后,AudioClip的Length会不对,比如本身有7秒,读出来只有3秒。知道了区别,我们就知道怎么解决了,对于读出来不对的音频,我们可以通过音频软件转换下,将码率换为正确的48kbps以上,采样数24000Hz以上,即可解决问题。比如这个文件,我们通过windows查看时长有6秒,然后我们通过代码输出,发现只有4.032秒,这样会导致我们代码后面的逻辑有了问题。首先我找了个读出来正常长度的音频,我们进行了对比。
2024-03-05 14:26:44
1090
原创 Unity应用在车机上启动有概率黑屏的解决方案
在PlayerSetting里将Android下的Resizable Window取消勾选,注意是不要勾选在AndroidManifest.xml里将主Activity的android:resizeableActivity设置为true这样可能能解决你们的问题。
2024-01-26 10:39:03
791
原创 谷歌aab包在Android 14闪退而apk没问题(targetsdk 34)
翻译过来就是,Goole I/O 2023讨论的,使用RECEIVER_EXPORTED / RECEIVER_NOT_EXPORTED标志注册接收者是Android 13的一部分,现在是运行在Android 14或更高版本(U+)上的应用程序的要求。Unity应用上线到GooglePlay,有用户反馈fold5设备上(Android14系统)疯狂闪退,经测试,在小米手机Android14系统的版本复现成功了,奇怪的是apk直接安装没问题,而打包成aab就是疯狂闪退。
2024-01-12 16:31:20
3034
1
原创 系统语言德语时浮点数转化问题
因为C#是面向全球性的应用语言,不同国家有不同的文化,借助CultureInfo使整个.NET Framework更加人性化,因为这可以使同一个数据适应不同地区和文化,这样当然满足处于不同地区和文化的用户。但前提是数据给“人”看,如果这些数据用于计算机之间的传输,即给“机器”看,这样的多文化处理反而不妥,造成同一个数据的不同展现形式,尤其是读写两方的文化地区不同时,数据可能根本无法被正常读取或者产生潜在bug。但是在德国,表示小数则是用 逗号,即 0,123。知道了原理,那么就大概知道怎么解决了。
2024-01-12 15:55:03
537
原创 各种知名游戏的技术分析
介绍一个GitHub,里面包括了市面上的各种游戏的技术分析,包括渲染管线、工作流、技术文章等等,在做某个类型的游戏的时候,可以针对某个游戏去进行技术参考,特别实用。里面有赛博朋克2077,死亡搁浅,GTA等等,有需要的可以看。
2023-07-26 13:44:14
412
原创 Unity如何快速接入iOS和GooglePlay的成就排行榜等GameCenter功能
一般在游戏开发中,经常有成就排行榜的需求,按照我们的理解,通常是要自己导入谷歌的sdk,或者苹果的sdk,然后封装后通过桥接来调用。其实不用这么复杂,Unity已经帮我们封装好了,直接调用接口。我们可以通过以下方式进行调用,Unity会自动帮我们根据平台进行调用,大大减少了我们的开发效率。目前所有相关的功能都在Social类中。
2023-07-25 18:54:28
1757
原创 AndroidStudio打包AAR供Unity使用流程
最近很多人私信我问如何打包aar的事,因为Android源生开发知识量比较多,如果从头学起就要花很长时间,本篇幅着重来跟大家说说怎么快速打包aar供Unity使用。为什么要打包aar,原因是从新版本2021.2已经不允许直接把res文件放在Plugins/Android目录下了,jar和AndroidManfiest不影响,主要是res目录。这将影响的是,一些旧版本的sdk提供的还是jar+res的方式,需要升级,如果sdk没有提供升级版本的话,那将受到蛮大的影响。那么针对这种情况,我们自己说说如何解决。首
2022-07-07 11:36:46
7374
10
原创 Unity隐藏目录和隐藏文件
在开发的时候,有时候想在项目Assets下放东西但是又不想Unity识别到,可以采用下面的方式,下面我们看官方介绍:Unity - Manual: Special folder names隐藏资源在导入过程中,Unity忽略Assets文件夹(或其中的子文件夹)中的以下文件和文件夹:隐藏的文件夹。 以' . '开头的文件和文件夹。 以“~”结尾的文件和文件夹。 命名为cvs的文件和文件夹。 扩展名为.tmp的文件。效果如下:...
2022-05-24 11:54:55
1766
原创 UGUI Text中文符号句首句尾问题
经常在游戏开发中碰到中文符号在句首或句尾导致显示不正常的问题,而TextMeshPro就没有这些问题因为TMP支持配置,那对于项目中没法使用TMP的情况,而用的UGUI的Text的情况,怎么办呢?比如下图:双引号单独在句尾了,这样显示特别不美观,而版署那边又要求修改。还有这种,句号在句首了,也没奇怪。百度谷歌也没找到合适的方案,或找到的方案有瑕疵,因此特地写了一个类,专门解决这种情况,支持配置避免行尾出现的符号、避免行首出现的符号等等,可直接拿去使用。代码如下:using...
2022-05-19 10:08:15
831
4
原创 Android开发之如何与蓝牙设备相互通信
最近研究了下怎么在Android应用上连接蓝牙设备,就比如安卓应用是怎么与手环进行连接的呢,怎么做到在应用点击按钮,修改手环的设置呢?总体开发流程大概是:搜索蓝牙设备列表 选择蓝牙地址进行连接,等待连接成功 搜索蓝牙设备的Services列表 搜索某个Service的Characteristics 订阅Characteristics 接收消息/写入消息至于如何开发,需要有一定的源生Android开发基础。如何在Unity中接入呢,本质也是类似,就是通过Android Studio输出aa
2022-05-08 10:29:37
783
1
原创 C#如何在Windows上接入蓝牙设备
最近研究了下怎么在windows上连接蓝牙设备,并获取蓝牙设备的消息以及如何向蓝牙设备写入消息。该方法同样适用于Unity引擎。本质上还是获取windows的底层API接口进行调用,连接蓝牙设备的流程大概是:搜索蓝牙设备列表,并获取蓝牙设备的属性,其中有属性值有isConnectable、name等等 选择蓝牙地址进行连接,等待连接成功 搜索蓝牙设备的Services列表 搜索某个Service的Characteristics 订阅Characteristics 接收消息/写入消息至于如
2022-05-08 10:21:50
3047
6
原创 Unity打包后处理修改AndroidManifest.xml原因开发Quest2蓝牙权限自动被移除
在开发Quest2应用的时候需要用到蓝牙权限,但是一直报错AndroidJavaException: java.lang.SecurityException: Need BLUETOOTH permission: Neither user 10076 nor current process has android.permission.BLUETOOTH.01-24 20:40:47.280 26380 26405 E Unity : AndroidJavaException: java.lang
2022-04-29 22:52:20
3398
原创 Unity NavMesh导航报错“SetDestination“ can only be called on an active agent that has been placed on a Na
在使用NavMeshAgent进行导航的时候,发现调用SetDestination一直报错,报错显示是:"SetDestination" can only be called on an active agent that has been placed on a NavMesh.UnityEngine.AI.NavMeshAgent:SetDestination(Vector3)但是查看地图,发现Bake过了,Agent也在地图上啊,照理说会自动关联到NavMesh地图上的。后来发现是因为N
2022-04-24 16:29:55
6034
1
原创 Unity Slider显示NaN
Slider设置value的时候发现显示不出来,但是数据是对的。但是发现里面的一些对象坐标变成了NaN,很是奇怪啊。遇事先Google,果然世界之大,总有碰到的。UnityでSliderのRectTransformにNanが入ってしまうときの確認箇所 - ArceLife(アルセライフ)我们看看代码:float sliderValue = (float) (videoPlayer.time / videoPlayer.length);timeSlider.SetValueW.
2022-04-12 18:52:22
3530
2
原创 Unity打包报错OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please
将项目从2021.1升级到2021.2的时候,收到一些错误,解决后打包Android包,之前没问题的突然报错了:OBSOLETE - Providing Android resources in Assets/Plugins/Android/res is deprecated, please move your resources to an AAR or an Android Library. See "AAR plug-ins and Android Libraries" section of th
2022-03-13 11:36:45
13010
11
原创 Unity免费库/插件/工具类/扩展集合
推荐一个GitHub关于Unity库/插件/工具类/扩展的集合,都是免费的,里面包含各种各样实用的工具,比如对象池、八叉树、回放系统、粒子、寻路、Debug工具、VR、网络库、物理、AI、Input控制器等等等等,应有尽有。链接:https://github.com/michidk/Unity-Script-Collection我尝试做下翻译:GameObjects & TransformsRecyclerKit- 对象池系统. UnityOctree- Unity八叉树实..
2022-01-06 14:48:00
9353
3
原创 Unity打包报错A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFa
Unity安卓打包报错:A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
2021-12-05 10:45:52
29644
12
原创 一键反编译Android包教程
某些时候我们想修改apk包内容,比如汉化某个游戏,这时候就需要修改游戏apk的包内容,并重新签名成安卓手机识别的apk文件,下面详细介绍,文章末尾有一键修改工具。确保java环境
2021-10-29 16:43:57
2439
2
原创 Unity打包代码修改gradle.properties或AndroidManifest文件
Unity通过Gradle打包方式会自动生成对应的gradle相关文件,再进行打包,虽然编辑器可以设置一部分参数,但是因为Unity版本不同,参数支持可能不够。以Unity2018.4.17为例仅支持设置部分路径,如需设置gradle版本,并没有地方设置。对于这种情况,其实Unity可以通过IPostGenerateGradleAndroidProject进行设置,不需要升级Unity版本。比如我们可以这样修改打包后的gradle.properties文件,打包完后修改部分参数,..
2021-09-10 12:14:38
4917
原创 Unity调用jar报错Failed resolution of: Lcom/xxx/R$layout
想实现在Android这边写了UI,是继承Dialog的窗口,想通过Unity调用jar弹出该Dialog窗口,进行一些操作,发现弹出时会报错:Failed resolution of: Lcom/xxx/R$layout。根据logcat的报错提示,找到发现是访问R.layout和R.id报了错。Android代码如下:setContentView(R.layout.devices_dialog);findViewById(R.id.lvBluetoothDevices);这错误关键字太难
2021-07-23 11:45:17
1258
2
原创 Unity发布Android App Bundle详解(四)Addressables+Play Asset Delivery分发
在之前文章我们了解到了:Unity aab要我们自己处理,Unity目前没有提供完整的解决方案帮我们自动处理(截止2021.7.16号) 2021.8.1号开始谷歌对新应用只能接受aab格式,而aab的本体包限制在150M aab格式超过150M的应用要自行通过Play Asset Delivery分发 Unity应用需要通过AssetBundle进行包体拆分,然后通过GooglePlay提供的Play Asset Delivery分发那前面的工作我们都准备完毕了,现在我们开始进行aab的打包,
2021-07-16 12:02:30
9329
7
原创 Unity发布Android App Bundle详解(三)快速转换Addressables
概述对于项目本身就使用AssetBundle的来说,打包新格式aab是很容易的,上篇文章已经详细说过了。对于项目之初没有考虑AssetBundle热更新的项目怎么办呢?项目都是采用Resources加载,并且是同步加载的,unity场景资源也较多,没有做好分包设计的怎么办呢?这篇文章我们讲怎么处理。难点场景采用同步/异步加载 SceneManager.LoadScene ("xx",LoadSceneMode.Single); 资源采用Resources.Load加载
2021-07-12 18:02:46
5587
10
原创 AndroidStudio工程打包aab文件
之前的文章说过,Unity可以直接导出aab文件的,用法也很简单,就是Build Settings勾选Build App Bundle(Google Play)选项。而如果是想通过Unity Export Project导出Gradle工程,可以使用下面的方式打包aab文件。Android Studio打包AAB文件1、打开Android Studio工程,打开Build-Generate Singned Bundle/APK...选项注意:该选项上面的Build Bundles(s).
2021-07-12 12:29:11
9443
12
原创 Unity发布Android App Bundle详解(二)Play Asset Delivery介绍
Play Asset Delivery是什么?Play Asset Delivery (PAD) 将 app bundle 的优势带到游戏中。它允许超过 150 MB 的游戏替换旧版扩展文件 (OBB),方法是将包含游戏所需的所有资源的单个工件发布到 Play。PAD 提供了灵活的分发模式、自动更新、压缩和增量修补功能,并且可免费使用。使用 PAD,所有资源包均在 Google Play 上托管和提供,因此您无需使用内容分发网络 (CDN) 向玩家提供游戏资源。Play Asset Delivery
2021-07-08 12:30:30
7569
10
原创 Unity打开淘宝app并跳转到商品页面
最近碰到个需求,是希望在Unity有一个按钮,打开后直接跳转淘宝app,打开商品页面。百度了下没有相关的文章,于是我在此分享下。之前开发游戏的时候就希望引导玩家到应用商店更新游戏,之前采用的方式也是Unity的Application.OpenURL接口,该接口不仅可以跳转到浏览器,还可以跳转到应用并传参数。打开安卓应用商店,?id=xxx(xxx就是你apk的包名)Application.OpenURL("market://details?id=com.egogame.picoadventure
2021-07-05 18:05:26
1282
3
原创 Unity发布aab(Android App Bundle)详解(一)Unity .aab支持情况
从2021.8月开始,谷歌开始禁止新应用使用apk+obb的方式提交应用了,而强制改用新格式.aab。本来想着不用就不用吧,.aab格式应该对Unity很容易吧,查了资料,发现只要在Build Settings勾选Build App Bundle(Google Play)选项即可,如图:勾选后打包,发现确实打出了.aab格式的文件了。但是生活总是开玩笑,发现事情往往没有这么简单。上传到GooglePlay后台后,系统提示“您的App Bundle包含的以下配置会使应用的初始安装大小超过150 M
2021-06-30 14:45:30
17402
9
原创 GooglePlay内购接入错误Google Play In-app Billing API version is less than 3
报错提示:Google Play In-app Billing API version is less than 3
2021-06-11 11:06:04
4152
2
转载 Unity如何与Android交互
引言最近为了实现Unity与Android之间的通信,在网络上发现了很多种实现方案。有打包Jar的,有打包aar的,有直接拷贝文件的。试了几种方案虽然都能解决需求,但是使用起来给我的感觉并不是很舒服。在各种尝试中,已了解了Unity和Android之间通信的底层原理。该方案为本人结合Java特性所给出,可以减少很多其它方案的一些不明确以及繁琐的步骤。本文适用对象有一定的Unity开发经验,会使用Unity 有一定的Android开发经验,会使用AndroidStudio方案优势不需要
2021-06-10 18:23:09
794
原创 Unity接入GooglePlay内购V4 V5 V6(源生Android方式)
Unity接GooglePlay In-App Billing坑还是蛮多的,各种坑。接的方式目前来看有三种:采用Unity IAP插件,开启Unity的IAP Service 采用Android源生接入,在Android Studio接入,然后打包出jar或aar放到Unity项目,使用Unity调用 打包出Android工程,在Android工程中接入这次介绍的是第二种,使用安卓源生方式接入,因为该方式一劳永逸,新项目可以很快就完成接入。为什么不用第一种呢?直接导入IAP插件,然后设置参
2021-06-10 17:52:03
6377
29
原创 TextMeshPro打包后闪退报错UnityEngine.TextCore.LowLevel.FontEngine:TryAddGlyphToTexture_Internal
今天打包安卓apk后运行总是闪退,死活找不到原因是什么,后来看了下log2021-04-28 11:25:33.725 2571-2635/? W/System: Ignoring header Cookie because its value was null.2021-04-28 11:25:38.178 3898-3915/? E/CRASH: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 000000082021-04-28 1
2021-04-28 13:04:24
2071
原创 Git Clone速度太慢的解决方案
Git进行Clone的时候超级慢,解决方法就是可以使用一些镜像网站,跟GitHub保持同步的。最常见GitHub镜像地址: https://hub.fastgit.org/ https://github.com.cnpmjs.org/ 使用方法:如https://github.com/xxx,将地址修改为https://github.com.cnpmjs.org/xxx即可,速度会变很快。...
2020-10-21 11:55:01
750
原创 Unity事件中心Event Center
事件中心支持的用法 简单发送事件: EgoEventCenter.PostEvent("Test"); 发送string类型事件: EgoEventCenter.PostEvent<string>("Test","data"); 发送多个参数事件: EgoEventCenter.PostEvent<int, float>("Test", 1, 2f); 监听事件: EgoEventCenter.AddListener("Test",OnTes..
2020-07-15 13:36:44
2798
2
原创 Unity Json序列化高级用法介绍
虽然Unity有自带的JsonUtility类,但是因为支持的东西太少了而且用的时候有各种限制,比如说不能序列化Dictionary,比如序列化必须要加上Serializable等等,所以我比较习惯的是用Newtonsoft.Json。Newtonsoft.Json的GitHub地址在此,里面可以查看文档,教程等等。如何下载源代码?打开包管理器用户界面Window > Package Manager 然后按jillejr.newtonsoft.json-for-unity包装上...
2020-07-09 15:53:23
1144
原创 unity导入工程报错Unity Package Manager Error
Unity改成Package Manager虽然理念很好,但是总是碰到各种奇葩问题,比如导入工程时,处理Package的时候各种提示报错,导致工程无法正常打开...点continue就闪退了。Unity Package Manager Error报错信息:Unable to connect "https://packages.unity.cn"看来是unity中国的问题。查了资料解决方案如下:加环境变量,直接在cmd下用命令行添加(注意用管理员方式打开),命令如下:setx UNITY_NO
2020-07-07 10:35:30
5861
原创 Unity安卓视频兼容性探讨
在Unity中使用了一段视频,然后使用了VideoPlayer组件进行播放,以下是碰到的一些问题。兼容性问题:Video在很多的设备中视频无法播放,如华为畅享8(安卓8.0)等等,刚开始以为是因为Android系统版本太低不兼容,后来发现Android9的也出现,这就不对了...于是看了logcat输出的log,发现都有这么一条AndroidVideoMedia的log。04...
2020-04-09 17:25:33
4869
6
傻瓜式解压unitypackage,不依赖Unity和Python,支持批量解压unitypackage包
2024-03-12
APK一键反编译签名工具,支持新版安卓v2签名
2021-10-30
PadDemo_Unity.zip
2021-09-17
EgoGooglePlay.rar
2021-07-25
JsonNet.zip
2020-07-09
svn服务器软件-CollabNetSubversionEdge-5.1.0_setup-x86_64
2018-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人