Unity BUG合集(更新中)

目录

1、调用UI中变量应先引用

2、报错:Visual Studio Editor Package version 2.0.11 is available, we strongly encourage you to update from the Unity Package Manager for a better Visual Studio integration

3.【插件AVpro】slide滑动条消失(debug显示value值最初为nan)

4.【插件AVpro】Object reference not set to an instance of an object

5.scroll view跑路

6.Unity编辑器的整体颜色风格设置

7.unity中的脚本使用visual studio 打开不继承MonoBehaviour解决

8.WEB导出失败

9.莫名其妙的问题如“cannot convert from”

10.audio听不到声音

11.HUB无法打开工程,且许可证未到期

12.莫名其妙地板穿模

13.嵌套绑定事件失败

14.报错:UnityException: get_isPlaying is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead.  Called from MonoBehaviour 'test11'. See "Script Serialization" page in the Unity Manual for further details.

15.msi后缀安装包打不开


1、调用UI中变量应先引用

using UnityEngine.UI;

2、报错:Visual Studio Editor Package version 2.0.11 is available, we strongly encourage you to update from the Unity Package Manager for a better Visual Studio integration

Unity报错解决办法:Visual Studio Editor Package version 2.0.11 is available........_Z_hongli的博客-CSDN博客

细节如下图所示:

这个问题出现的原因是因为没有更新包管理器中的包,我们在window窗口中找到Package Manager然后观察有哪个地方没有绿色勾勾,然后点进去,Update一下就解决了

3.【插件AVpro】slide滑动条消失(debug显示value值最初为nan)

(8条消息) Unity UGUI Slider 滑动条消失问题_www1501766557的博客-CSDN博客

加判断条件

4.【插件AVpro】Object reference not set to an instance of an object

在视频播放前便开始传参/操作,所以显示未实例化

需要加判断条件(视频存在吗?不存在则不执行)

5.scroll view跑路

原因不明,删除重做吧

6.Unity编辑器的整体颜色风格设置

(15条消息) Unity编辑器的整体颜色风格设置_天富儿的博客-CSDN博客_unity颜色设置

7.unity中的脚本使用visual studio 打开不继承MonoBehaviour解决

(15条消息) unity中的脚本使用visual studio 打开不继承MonoBehaviour解决_m0_46542690的博客-CSDN博客

8.WEB导出失败

找到问题了,一是路径中有中文名,二是必须和工程文件同一路径

9.莫名其妙的问题如“cannot convert from”

定义了相同名字的变量/类,用namespace封装即可

10.audio听不到声音

重启引擎

11.HUB无法打开工程,且许可证未到期

问题描述:用hub打开工程,hub闪一下后没有任何工程打开

观察:体量小的工程可以打开,体量大的工程无法打开

解决方法一:重启电脑

解决方法二:在任务管理器中结束Unity Editor任务,然后在HUB中尝试打开

解决方法三:禁用无线网,使用公司有线网

12.莫名其妙地板穿模

地板有碰撞体,在地板上加任何碰撞体不行。

解决方法:加一个plane,plane上加刚体,不再穿模。

13.嵌套绑定事件失败

方法Open:打开UI,绑定事件

 public static void Open(UnityAction un)
{
button.onClick.AddListener(un);
}

出问题代码:

 private void Start()
        {

            Open(() =>
            {

                Open(NextStep);

            });

        }


        void NextStep()
        {

            Debug.log("");
        }

出现问题:nextstep绑定事件失败

原因:方法不可以连续嵌套(详细原因正在探究中,现在只发现方法的值不可以嵌套传递)

更改后代码:

 private void Start()
        {

            Open(() =>
            {

                Open(()=>{ Debug.log("");});

            });

        }


       

14.报错:UnityException: get_isPlaying is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead.  Called from MonoBehaviour 'test11'. See "Script Serialization" page in the Unity Manual for further details.

写了这么多年确实第一次遇到这种BUG,仔细一看是因为复制粘贴时把代码写成了这样:

很明显是错误的,但为了测试API没注意。

正确写法:

 暂时没有找到具体原因。

实验了一下,只是定义不使用也会报错。

 但是使用类中自己的方法并不会报错。

使用自己编写的脚本也不会报错。

 

 只有在调用DoTween的方法时才会报错。

网上也没有搜到具体原因。

资料参考:Script serialization - Unity 手册

看了参考资料后,发现只有Find相关函数不能直接在类中调用,所以猜测是Sequence()中使用了Find之类的函数,于是进行实验:

果然报错了:

再看看原来的报错信息:

UnityException: get_isPlaying is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead.  Called from MonoBehaviour 'test11'. See "Script Serialization" page in the Unity Manual for further details.

 看来是Sequence()使用了get_isPlaying(),而get_isPlaying()不能在类中直接使用,所以报错。

在网上还搜到

 get_transform is not allowed to be called from a MonoBehaviour constructor (or instance field initializer), call it in Awake or Start instead.

虽然这些都不能直接使用,但Unity文档中没有提及和详细说明,头疼。

15.msi后缀安装包打不开

解决方法:

【已成功解决】.msi文件无法打开:“无法打开此安装程序包。请确认该程序包存在,并且你有权访问它,或者与应用程序供应商联系,以确认这是一个有效的Windows Installer程序包”_无法打开此安装包请确认该程序包存在_是瑶瑶子啦的博客-CSDN博客

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity华佗热更新是指利用Unity游戏引擎提供的华佗技术实现的热更新功能。热更新是指在游戏发布后,通过网络下载新的资源文件或者代码来更新游戏内容,而无需重新下载整个游戏。 Unity华佗热更新的优点是可以快速修复游戏bug,增加新的功能和内容,提升游戏的体验,而无需用户重新下载和安装整个游戏。这样可以大大减少用户的等待时间和网络流量的消耗。另外,Unity华佗热更新还能够提升游戏的可持续性,降低开发和发布新版本的成本。 Unity华佗热更新的实现原理是游戏客户端通过连接服务器,检查版本更新信息。如果有新版本可用,游戏客户端会下载新的资源文件或者代码,并进行更新操作。更新完成后,游戏客户端可以重新加载新的资源文件或者代码,使得游戏立即生效。 使用Unity华佗热更新需要注意安全性问题,防止恶意篡改游戏资源或者代码。为了保证安全,可以利用数字签名和加密等方式来验证资源的完整性和真实性。另外,还可以在游戏客户端内置一些反作弊的机制,防止使用非法资源或者代码。 总之,Unity华佗热更新是一种非常方便和高效的游戏更新方式。它能够快速修复游戏的问题,提升游戏的体验,并降低开发和发布新版本的成本。但是在使用时需要注意安全性问题,确保游戏资源和代码的完整性和真实性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值