tolua错误大全-Chinar出品-几乎可为新手解决所有报错情景

Chinar blog www.chinar.xin

tolua 错误修复


本文提供全流程,中文翻译。

Chinar 的初衷是将一种简单的生活方式带给世人

使有限时间 具备无限可能

Chinar —— 心分享、心创新!

助力快速完成 tolua 错误修复

为初学者节省宝贵的时间,避免采坑!

Chinar 教程效果:


文章目录

  • 1
    • Intro —— 介绍
  • 2
    • API Upgradable —— API 升级
  • 3
    • Build Resources —— 打包资源
  • 支持
    • May Be —— 开发者,总有一天要做的事!


全文高清图片,点击即可放大观看 (很多人竟然不知道)


1

Intro —— 介绍


tolua 对于新手来讲,坑不少,群里经常有人问道。

本文就来对于 tolua 常见的错误做一个总结,以便于大家对号入座,解决问题。

引起的错误原因有很多,但大多数都是Unity版本更新过快,API过时导致的错误。

tolua 作者,维护框架的那些大神们只管开发,性能。其他的兼容性问题,大神们也没精力去专门的做各版本适配。
只能我们拿来后自己改改。如果连基础的改动都不会,那估计tolua框架也玩不转了


2

API Upgradable —— API 升级


错误发生 场景/原因

导入 tolua 就开始报错,多数都是因为版本的问题导致API 弃用造成的错误

下面仅拿一个例子举例,属于API弃用,需要升级替换新函数。

提示 —— 如报错的是 xxxxWrap 文件,报错函数可直接注销。
(因为,我们修改C#就要重新清理、重建一次Wrap文件)

tolua错误大全-Chinar出品-几乎可为新手解决所有报错情景_第1张图片

tolua错误大全-Chinar出品-几乎可为新手解决所有报错情景_第2张图片
具体报错信息:
  • CreateFromMemoryImmediate API过时弃用了
  • 根据提示改为: LoadFromMemory
Assets\LuaFramework\Scripts\Common\LuaLoader.cs(35,38):
error CS0619: 'AssetBundle.CreateFromMemoryImmediate(byte[])' is obsolete: 
'Method CreateFromMemoryImmediate has been renamed to LoadFromMemory (UnityUpgradable) -> LoadFromMemory(*)'
  • 同理:根据提示改为: target = BuildTarget.iOS;
Assets\LuaFramework\Editor\Packager.cs(39,18): error CS0619:
'BuildTarget.iPhone' is obsolete: 'Use iOS instead (UnityUpgradable) -> iOS'

在这里插入图片描述

解决方案:
步骤 描述
1 找到 相应报错 脚本,定位到报错函数。
2 根据提示,将弃用的API升级,改为现有支持的API
3 如果出现已弃用,没有替代方案。根据上下文情景结合稍加改动。(wrap文件,可直接注销。反正都会自动生成)

举个例子
tolua错误大全-Chinar出品-几乎可为新手解决所有报错情景_第3张图片


3

Build Resources —— 打包资源


错误发生 场景/原因

打包热更新资源时会报错,脚本函数缺失 / 丢失程序集引用

tolua错误大全-Chinar出品-几乎可为新手解决所有报错情景_第4张图片

tolua错误大全-Chinar出品-几乎可为新手解决所有报错情景_第5张图片
具体报错信息:
  • UnityEngine_LightWrap
  • UnityEngine_QualitySettingsWrap
Assets\LuaFramework\ToLua\Source\Generate\UnityEngine_LightWrap.cs(101,8):
error CS1061: 'Light' does not contain a definition for 'SetLightDirty' and no accessible extension method 'SetLightDirty' accepting a first argument of type 'Light' could be found (are you missing a using directive or an assembly reference?)
Assets\LuaFramework\ToLua\Source\Generate\UnityEngine_QualitySettingsWrap.cs(1107,4):
 error CS0200: Property or indexer 'QualitySettings.streamingMipmapsRenderersPerFrame' cannot be assigned to -- it is read only
Error building Player because scripts had compiler errors

tolua错误大全-Chinar出品-几乎可为新手解决所有报错情景_第6张图片

解决方案:
步骤 描述
1 找到 CustomSettings 脚本,查找对应错误函数名,注销掉类型
2 //_GT(typeof(Light)),
3 //_GT(typeof(ParticleSystem)),
4 //_GT(typeof(QualitySettings)),
5 菜单栏 LuaClear wrap files,清理所有wrap文件,并重新 Build X平台 Resources

举个例子
tolua错误大全-Chinar出品-几乎可为新手解决所有报错情景_第7张图片


支持

May Be —— 开发者,总有一天要做的事!


拥有自己的服务器,无需再找攻略

Chinar 提供一站式《零》基础教程

使有限时间 具备无限可能!

先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


Chinar 免费服务器、建站教程全攻略!( Chinar Blog )


Chinar

END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: [email protected]

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

你可能感兴趣的:(Unity,3D,lua,游戏)