Lua与C#传参

Lua与C#传参

1)Lua与C#传参
​2)Unity发布iOS版本出现屏幕问题
3)安卓的View成为Unity界面的一部分
4)Unity升级导致项目启动时间过长
5)Unity中Cascaded Shadows在移动端的设置


这是第258篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。

UWA 问答社区:answer.uwa4d.com
UWA QQ群2:793972859(原群已满员)

Lua

Q:游戏中是先在Lua中String.format好再传入C#,还是在Lua里把参数传入C#,在C#里用String.format好?

即一个是Lua加载文字表,String.format后传给C#显示,另一个是C#读表,Lua把参数传给C#,再string.format使用,哪个方式更好些,或者有没有其他更好的方式?

A1:搬运群里大佬的问答:第二种比较好,因为传参越简单越好,参数可以打包传。

感谢Tao@UWA问答社区提供了回答

A2:可以参考一下这篇文章:《用好Lua+Unity,让性能飞起来——Lua与C#交互篇》,总之Lua与C#传参,优先考虑int、float和double等类型,其次bool、string及object等类型,同时尽可能降低交互次数。

感谢羽飞@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/60e41d96e58b4719dd3e2916


iOS

Q:Unity发布iOS版本在iOS 11之后出现屏幕显示问题:半屏被压缩,另一半黑屏。

A:直接在编辑器中设置这几个参数,不要在代码中设置这个,7p就不会出现这个问题:
Screen.autorotateToLandscapeLeft = true; Screen.autorotateToLandscapeRight = true; Screen.autorotateToPortrait = false; Screen.autorotateToPortraitUpsideDown = false; Screen.orientation = ScreenOrientation.AutoRotation;

感谢许家胜@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/5ab9ef650b827e2c0bfdd1b6


Unity

Q:加载了一个安卓的Activity,会遮挡住Unity的界面,如何让安卓的View,成为Unity界面的一部分呢?Unity界面的一部分使用安卓原生SDK的界面实现。

A:安卓混合Unity的界面,已经完成了。
https://blog.csdn.net/Yzw_92_4_11/article/details/68952529

感谢题主韩飞@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/60e6caa7e58b4719dd3e296b


Editor

Q:查看了Unity的editor.log发现里面:

RefreshInfo: InitialScriptRefreshV2(NoUpdateAssetOptions)
RefreshProfiler: Total: 0.000ms
InvokeBeforeRefreshCallbacks: 1115393.587ms
......

OnSourceAssetsModified: 340.325ms
......

ImportAndPostprocessOutOfDateAssets: 1032441.185ms (82533.117ms without children)
ImportManagerImport: 82501.381ms (0.000ms without children)
......

有没有大佬知道这个是在处理什么东西?科学上网了也没有查到相关信息,这里看耗时就很长时间了1115393.587ms。

A:参考以下几点:

  1. 检查一下项目是不是放在机械硬盘上,建议放NVME的固态上。因为高版本的数据结构更复杂了,不用固态来不及序列化。
  2. 检查一下是不是开了PlasticSCM。

感谢萧小俊@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/60e2afece58b4719dd3e28ed


Rendering

Q:Unity的Shadow Cascade功能在移动平台中是否生效?

在场景使用了Unity自带的实时阴影,具体参数如下:

用Frame Debug观察阴影绘制过程:

Shadowmap为1024*1024,场景远处会有黑色的阴影覆盖。
当Cascade设置为2则远处阴影消失:

用Frame Debug观察阴影绘制过程:

Shadowmap还是1024*1024,但一分为二,各占1024*512。

以上是在PC上验证的,证明Cascade确实起作用。但当在Unity编辑器中的BuildSettings中切换到Android平台时,无论怎么修改Cascade的值,场景远处均有阴影,用Frame Debug观察阴影绘制过程如下:

似乎在安卓平台中这个参数不起作用,查阅Unity官服文档也并没说明Shadow Cascade不支持移动平台。

请问有同样遇到这种问题的吗?

A:Graphics设置那里需要在对应的Tier里面启用Cascaded Shadows。

感谢题主x21@UWA问答社区提供了回答,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/60e7fa6d038436106ddf2955

20210712
更多精彩问题等你回答~

1.如何实现AAB包的增量更新
2.关于Unity出AAB包的问题
3.RTS 手游技术难点

封面图来源于网络


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)