![](https://img-blog.csdnimg.cn/a957beb55bdb451c9c297d7b55f1e094.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Unity开发
文章平均质量分 90
Unity开发中遇到的一些问题和解决办法
xiaofengxuan892
这个作者很懒,什么都没留下…
展开
-
Unity中常用的单例模式、对象池的脚本模板,连按退出和滑动翻页或放大缩小的功能实现,以及属性在代码中的灵活使用
1.单例模式的脚本模板:Unity中针对一些常用的manager可以使用单例模式,用于统一的功能管理://普通单例,不需要继承MonoBehavior,不用挂载在GameObject上public class CommonSingletonTemplate<T> where T : class, new(){ private static readonly object sysLock = new object(); private static T _instan原创 2022-03-21 20:44:11 · 4808 阅读 · 1 评论 -
如何反编译aar包来查看class文件以及使用AndroidStudio查看手机日志和打包Unity的Export project成apk
1.如何反编译aar包,用来查看aar中的class脚本文件?首先下载"jd-gui"工具:https://github.com/java-decompiler/jd-gui该项目的“README.md”中有详细使用方法。只需要下载下图中任意一个jar文件即可下载完成后直接双击运行该“jd-gui-1.6.6-min.jar”即可打开该反编译软件:点击“File -> Open File”打开需要反编译的aar文件即可2.如何使用AndroidStudio查看手机的lo原创 2022-03-19 17:58:11 · 9861 阅读 · 0 评论 -
Unity中的设备唯一码GAID、IDFA,用于广告跟踪和数据统计
当前可以唯一标识设备,用于程序的数据收集和统计的ID安卓:国外:GAID:广告id,即Google Advertising ID(GAID),是由Google Play service提供给用户的可以重置的唯一广告id,通常也被用来作为设备的唯一标识,用于数据收集。但用户手机上必须安装有google play服务,并且网络可以访问google,才可以获取到该id。(该广告id也被称为AAID —— Android Advertising ID)。由于可以被重置,因此是非永久性标识符。PS:这原创 2022-03-17 22:58:49 · 17723 阅读 · 0 评论 -
Unity打包安卓apk时遇到“build gradle project”失败的问题
Unity在打包安卓apk时经常会遇到build gradle project失败的情况,现将目前遇到的情况整理如下:情况一:打包一会过后显示打包失败,并报如下错:情况二:打包时一直卡在“build gradle project”,纹丝不动(在等待若干个小时后依然卡着,极少概率下可能打包成功)导致这种情况出现的原因:网络不稳定,在下载Gradle版本或者该项目依赖的库文件时由于网络速度过慢导致下载失败,从而无法正常打包解决办法:1.主动更新Gradle版本:不同的Un原创 2022-03-15 22:59:52 · 10477 阅读 · 0 评论 -
Unity中获取字符串长度、Unicode字符数量和编码ASCII,UTF,GBK的区别
1.String.Length,String.ToCharArray,StringInfo,Encoding.UTF8.GetByteCount的区别:String.Length:获取的是字符串中Char的数量,而不是Unicode字符的数量String.ToCharArray也是将string转换成Char数组。StringInfo:若要获取字符串中的Unicode字符数量,而需要使用“System.Globalization.StringInfo”GetByteCount:获取字符串的字原创 2022-03-01 16:07:07 · 4018 阅读 · 0 评论 -
Unity如何在代码中将数值以二进制、八进制、十进制、十六进制间转换,并以特定形式输出字符串
Unity如何在代码中将数值在二进制、八进制、十进制、十六进制间转换,并以特定形式输出字符串原创 2022-02-22 19:56:55 · 5008 阅读 · 0 评论 -
Unity的ScrollRect如何裁切粒子特效,以及如何使粒子特效显示在UI上
在功能开发中,有时候为了更好的效果会在UI上添加一些特效,比如在头像框上增加一个圆环的粒子特效,但由于粒子和UI的渲染方式有些不同,导致会出现UI和特效之间穿插,显示上不理想。并且如果在ScrollRect下显示人物列表,滑动滚动条时还无法对粒子特效进行遮罩处理。这里集中解决这两个问题:首先解决如何使粒子特效显示在UI上:1.设定Canvas渲染模式:当添加一个UI对象时,如果Hierarchy下没有Canvas,则UGUI系统会自动添加该对象,并且Canvas的渲染模式默认为Screen Sp原创 2022-02-20 19:08:01 · 6597 阅读 · 1 评论 -
UGUI的滚动列表ScrollRect一次性实例化多个子item时如何做优化来降低性能消耗
在功能开发中经常会遇到某些页面需要一次性实例化几十甚至上百个item的情况,如果真的根据当时的数据量把多个子item都实例化出来,内存占用会变得很大,而且UGUI对超出viewport区域的对象也会绘制,导致画面突然变得很卡。这个时候就需要对实例化的步骤做些优化:1.对象池的引入:首先在滑动列表时始终展示出来的只有viewport区域内的item,对超出viewport区域的item是不予显示的。那么是否可以将超出viewport区域的item放入回收池中,当需要新的item时直接去回收池中查找原创 2022-01-02 10:30:05 · 1016 阅读 · 0 评论 -
Unity如何制作道具tips随着屏幕边界自适应变换位置,确保不超出屏幕的功能
UGUI中道具tips如何自适应UI,确保其不超出屏幕边界原创 2021-12-23 19:50:31 · 3634 阅读 · 0 评论 -
Unity接入科大讯飞SDK-安卓篇
最近需要接入sdk,现把接入科大讯飞SDK安卓端的过程整理如下:接入SDK分成两个大的部分:安卓端 和 Unity端安卓端主要负责导入科大讯飞的sdk,并编写相关脚本,最后生成aar包,提供给Unity使用Unity端则根据导出的aar包调用相关方法实现科大语音的功能本文使用的工具是:Android Studio, Unity2018.4.1f1一、安卓端:1.打开Android Studio,新建项目:设置项目名称和sdk:PS:本项目中使用的Android S原创 2021-10-19 13:57:05 · 3742 阅读 · 0 评论 -
Unity接入安卓SDK——基础篇
最近需要接入SDK,现整理在安卓端接入SDK的过程。首先需要了解Unity和安卓之间交互的方式通过Unity安装路径下的“Classes.jar”作为两者之间沟通的桥梁,在安卓端导入该jar包,然后编写需要在Unity中调用的方法以及使用“UnityPlayer.UnitySendMessage”向Unity端传递消息,最后导出jar包供Unity端使用即可。现详细讲述Unity接入原生安卓SDK的过程:1.在安卓端生成jar包本例子使用Eclipse作为安卓端的工具首先新建项目工程:原创 2021-10-19 13:54:19 · 4118 阅读 · 0 评论 -
C#中宏定义使用“Conditional”和“#if....#endif”的区别
最近在项目中碰到用“[Conditional("xxx")]"来设置方法的执行条件,发现跟原来的"#if....#endif"有些类似,于是查了下两者之间的区别:Conditional:对于使用“[Conditional("xxx")]”定义的方法而言,该方法是否被执行取决于该方法的调用方是否满足“xxx”环境,如果满足则会执行该方法,否则不执行#if...#endif:使用这种方式定义的,在编译时只会把满足条件的代码编译到最终的程序集中,与外部调用方是否满足条件无关现测试如下:1.使用VS原创 2021-09-07 11:10:38 · 1193 阅读 · 1 评论 -
如何在Unity控制台中输出第三方C# dll中的Console.Writeline日志信息
最近在做项目的时候有一个功能需要调用第三方C#库中的方法,虽然执行起来也都没有什么问题,但是某些情况下,为了调试需要,希望能够输出C#库中的Log信息,方便排查。但是C# dll中输出日志时都是使用Console.WriteLine之类的方法,而这个方法在Unity控制台中是无法显示日志信息的。因此找了下相关的方法,现整理如下:1.在查阅了一些资料后发现Console有一个很重要的方法“Console.SetOut”可以设置当前输出流如下:在VS Studio中新建一个C#控制台应用程序原创 2021-09-06 17:16:35 · 2116 阅读 · 0 评论