关于lua:ToLua或XLua中的虚拟机是否独立于Unity的主线程

55次阅读

共计 1966 个字符,预计需要花费 5 分钟才能阅读完成。

1)ToLua 或 XLua 中的虚拟机是否独立于 Unity 的主线程
​2)Timeline 技能编辑器提取关键帧信息
3)Canvas AdditionalShaderChannels 设置有效
4)SDK 返回的时候取 Time.deltaTime 比拟大


这是第 291 篇 UWA 技术常识分享的推送。明天咱们持续为大家精选了若干和开发、优化相干的问题,倡议浏览工夫 10 分钟,认真读完必有播种。

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

Lua

Q:ToLua 或 XLua 中的虚拟机是否独立于 Unity 的主线程?

A:Lua 的虚拟机有本人的堆、栈内存,虚拟机的更新须要有内部的线程通过函数调用来驱动,而 Lua 虚拟机目前只反对单个线程来驱动。在理论我的项目中,因为 Lua 中要拜访 Unity 的 API,所以基本上都是通过主线程来驱动。

但实际上,如果不须要拜访 Unity API,齐全是能够放在子线程里去驱动的。

该答复由 UWA 提供

Timeline

Q:最近在用 Unity 做一个技能编辑器,让策动能够在 Timeline 编辑器里编辑技能动画、施法特效、受击动画、受击特效和播放声音等等。编辑这些都没什么问题,我想依据编辑好的 Timeline 导出一系列行为节点,在 Editor 的环境下导出成配置(蕴含所有行为节点)。当初我不分明怎么获取 Timeline 里第 m 帧开始某动画 x,第 n 帧完结这些行为。同时怎么能给动画打上对应 Tag?

A1:Timeline 的组成如下图:

每个 Track 对应一个 TrackAsset 其实就是一个 PlayableAsset,整个 Timeline 也是一个 TimelineAsset,外面存了所有 Track 的数据。

对于每个 Clip 的开始和完结工夫在 TimelineClip 中能够获取。

感激羽飞 @UWA 问答社区提供了答复

A2:我把基于 Timeline 的编辑器小 Demo 共享上来。

技能编辑器 Demo。

以上是自己摸索着写的一个简略技能编辑器 Demo,基于 Timeline 的。

感激题主右前锋 @UWA 问答社区提供了答复

UGUI

Q:在 UI 中应用到的 Shader 中用到了 UV1 和 UV2 通道,在 Canvas AdditionalShaderChannels 中抉择增加了对应通道后没有成果,雷同代码资源在 2019.4.26f1c1 正确显示,求教大家是否是版本问题还是须要非凡设置解决?

Unity 版本:2018.4.17f1

Unity 版本:2019.4.26f1c1

A:搜寻了一下 Unity Release Note,在 Unity 2019.2.0 版本中发现 Unity 修复了这个问题。修复后,AddVert 会把 UV2 的数据和 UV3 的数据也拷贝进去。没修复前,UV2 的数据从 RenderDoc 外面看是 0。

测试了一下,的确在 2019.1.14 版本还是有问题的,下一个版本 2019.2.0 就没问题了。

在 2018.4.23f1 版本上参考这个链接的 Outline 成果进行了测试,在小米 9 真机上没有发现问题,题主能够参考一下:
https://www.1024sou.com/artic…

PS:看了 2018.4.18 到 2018.4.23 之间的所有的 Release Note,没有发现相干问题的修复。这个文章是应用 Shader 来实现 Outline 的,感觉成果挺不错。

感激 Xuan@UWA 问答社区提供了答复

Script

Q:nity 调用某 SDK 进行登录,SDK 返回的时候取 Time.deltaTime 比拟大(就是从调用 SDK 开始到 SDK 返回的工夫),这种状况可能导致我在 Update 里的逻辑经验了很长的一帧。

A1:间接点就是判断 Time.deltaTime 大于某个阈值时间接 Return。

感激碎心客 @UWA 问答社区提供了答复

A2:Time.deltaTime 比拟大也就是说登录操作的耗时很高,而且是一个同步调用,的确会导致卡顿问题(在 Update 里的逻辑经验了很长的一帧)。<br/>
一般来说,网络申请等操作应该尽可能通过异步调用来实现,如果是 SDK 的登录接口没有提供异步办法,倡议先尝试通过子线程(new Thread)来调用,而后主线程上开个协程每帧轮询下后果。

该答复由 UWA 提供

封面图来源于网络


明天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题兴许都只是冰山一角,咱们早已在 UWA 问答网站上筹备了更多的技术话题等你一起来摸索和分享。欢送酷爱提高的你退出,兴许你的办法恰能解他人的当务之急;而他山之“石”,也能攻你之“玉”。

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

正文完
 0