//个人记录,持续更新
1、将此代码挂载到空脚本上:
bool flag = (object)GetComponent<Camera>() == null;
bool flag1 = (object)GetComponent<Text>() == null;
Debug.Log(flag+"::"+flag1);
//输出结果:False::True
bool flag = GetComponent<Camera>() == null;
bool flag1 = GetComponent<Text>() == null;
Debug.Log(flag+"::"+flag1);
//输出结果:True::True
原因:Unity C#7.0会出现此问题,似乎是因为unity底层重写了一些标识符
2.关于AnimatorOverrideController的bug
原代码如下:
public AnimationClip _Clip;
private Animator _player;
private AnimatorOverrideController _ani;
-----
_player=gameObject.GetComponent<Animator>();
_ani= new AnimatorOverrideController(_player.runtimeAnimatorController);
_player.runtimeAnimatorController = _ani;
_ani["WAIT00"] = _Clip;
无法修改成功
原因:人物素材问题,请按照unity的标准人物动画制作素材
3.unity自5.1版本后已经修复了for和foreach循环开销问题请放心使用
4.僵尸内存:
(1)lua虚拟机已经成功释放,但C#中的回收机制依然发现lua虚拟机在进行引用
(具体情况需要具体分析)
(2)UnityECS自己没能及时释放导致占用
5、“错误 CS1056:999+ 编译器错误上的意外字符 ' ”(首发)
截至今天此bug依然没有很好的解决方案,在此提供一些解决方案仅供参考:
(1)环境缺失
请统一整个项目组所有人的开发环境保持一致,来解决这个问题
(2)包体受损
您的文件在移动或传输过程中产生了损坏,请确保文件传输是正确的
(3)语言包的问题
这个bug在设备区域上有见到过,一个美版设备,一个大陆版设备两个可能会出现这个问题
(4) 编译问题
请尝试切换编译平台,比如PC切换至安卓,切换到合适的运行环境中进行编译来解决这个问题
6、Xlua项目出现
不能将源类型 'UnityEngine.UI.InputField.SubmitEvent' 转换为目标类型 'UnityEngine.UI.InputField.EndEditEvent'
删除Xlua项目中的Gen目录,重新编译
7、脚本名字不能起名叫“Attribute”否则会引发: 编译器错误 CS0641
尽管微软是如此解释的:
“attribute”:仅对从 System.Attribute 派生的类有效
使用仅可用在派生自 System.Attribute的类上的特性。
但与这并无关系
8、(本条为转载)
Unity2019.4.40f1。这个稳定版本的粒子系统有个bug,粒子系统中,如果粒子par使用了Shape功能,并且shapeType为Mesh,假设使用a.mesh文件,此时另一个模型b_model也是用a.mesh文件。那么设置为的a.mesh如果没有开启读写,则在手机包中使用AssetBundle模式加载了par和b_model,这是b_model的mesh文件是丢失的,如果使用editor加载assetbundle是可以看到b_model的mesh文件,但是如果双击mesh文件,恭喜你,unity就会崩溃。
————————————————
版权声明:本文为CSDN博主「刘培玉--大王」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010778229/article/details/130275406
9、白框 Message 英文崩溃 【内容报错五花八门,具体详见英伟达的官方指南】
本次报错原因,在unity里用c#写了openGL代码,在某些平台上引发了底层数据库不兼容问题,导致崩溃,unity是一个全平台的平台,但并不是所有平台都采用openGL运行,可能使用的为DX环境,国产操作系统平台上可能此问题会高频出现。
10、Rider2024【截至将24/09/16】中文汉化bug,无法正常汉化
目前只能等待官方修复此问题,建议您使用rider其他版本,目前测试至2023.2.5可正常使用
11、unity 命名bug
不小心把代码粘到shader起名的地方去了,然后报错,显示不出来退出键
解决方法:关了,重启【bug截图,挺让人无语的bug】
12、发现一个有意思的bug
2024新春遭遇游戏开发顶级Bug!Unity?微软?到底怪谁?#文科游戏开发日志_哔哩哔哩_bilibili
这个其实不能怪微软和unity,是显卡的问题,显卡绘制游戏引擎也会用,网页窗口等第三方软件也可能会调用dx,opengl接口,导致帧率降低等问题。这个问题在国产操作系统上极为常见,主要还是因为显卡是个多线程,单进程的生物啦【原理参考多线程开发的线程锁问题】
需要特别指出的是N卡驱动程序可能会因音频调用导致降低帧率引发掉帧卡顿,估计可能是软件做的太杂了
13、穿山甲广告报错
Assembly 'Assets/ExternalDependencyManager/Editor/1.2.176/Google.IOSResolver.dll' will not be loaded due to errors:
打开unityhub,然后再安装的unity中,单击齿轮,添加模块,选择IOS Build Support,完成。重启unity即可。
主要就是这个谷歌广告插件是给ios用的,缺环境,装上就好了
14、unity6 webGL无法正常运行,错误如下:
WebGL.framework.js.gz:9Invalid serialized file version. File: "globalgamemanagers".
WebGL.framework.js.gz:9 Unknown error occurred while loading 'globalgamemanagers'.
解决方法:使用你的unityhub重新安卓unitywebGL对应构成的组件,或重新下载新的对应版本的构成文件,这是构成文件受损,或下载的版本不匹配造成的。
15、ugui引用Button无法正常使用
删除命名空间:【一般是编辑器快捷功能自己加上去的,注意点就好了】
using Button = UnityEngine.UIElements.Button;
16、unity无法正常打包,报错一闪而过就消失,错误日志搜索无果,查询后发现是unity问题
这个问题有可能是你的脚本中声明了命名空间的问题,导致unity在打包时检测出了这个命名空间,编译器不提示报错,因为没有使用,甚至unity也可正常运行,仅在打包时出现此问题。
解决方案:删除脚本中无用的吗,命名空间引用。
17、资产标有 HideFlags.DontSave,但包含在内部版本中: 资源:“Library/unity default resources” 资产名称:Hidden/InternalErrorShader (您可能在构建中引用了内部 Unity 数据。 UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
网上的不少方法可能也适用:清空Library和obj文件夹,检查场景中的空物体
而我这里是发现shader代码写的有问题,因此请检查您shader代码的引用
18、安卓 谷歌sdk接入,参见下方链接:这里面报错bug比较多,基本上都是操作不对导致的,而且也总是有人问我,还有使用安卓编辑器接入sdk要看下安卓接入sdk的版本,这直接关系到你使用安卓studio的版本,谷歌这事弄的挺不好的,新版平台接入老版本的经常找不好设置的地方,总是变。