1)关于AI逻辑写在Lua中的问题
​2)Shader中宏的作用
3)Update中的new Struct对象
4)通过在编辑的预制体中获取资源路径


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

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

Lua

Q:现在战斗的核心逻辑都在xLua里面,包含了AI的逻辑,这部分计算量极大,会造成画面卡死。

尝试过用Thread把xLua虚拟机包一层,结果还是会报Main Thread的错误。也尝试用闭包的方式,从Lua回传到CSharp,用System.Action接住,然后丢线程里面跑,但是会卡断主线程。

现在想尝试用两个Lua虚拟机,一个放Thread里面只跑战斗,其他的放在主Lua虚拟机中。那么整个游戏运行起来,会有3个虚拟机:Mono、xLua和xLuaInThread。

策划希望AI做得聪明一些,对应的思考维度和运算量都会大幅提高。不知道是否有其他推荐的方案?

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

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

Shader

Q:Particle Additive Shader中使用了该宏:UNITY\_DECLARE\_DEPTH\_TEXTURE(\_CameraDepthTexture);,查了一下没找到相关说明。字面理解是声明了一个深度图。

在默认管线(向前渲染)中,按照常规理解深度图需要通过设置Camera的depthTextureMode来指定。还请各位指教。

感谢翟孟飞@UWA问答社区提供了回答

Script

Q:Struct中包含String字段,如果在Update中new,会不会有GC问题?考虑是否需要用缓存池来解决,目前我测试了一下将Struct改成Class是肯定有,如果是Struct类型,就没找到。

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

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

Script

Q:我想调用AssetDatabase.GetAssetPath 获取资源路径,但我点击图1物体,使用AssetDatabase.GetAssetPath(gameObject),却获取不到。想请问:如何通过图1获取到图2对应的物体路径?

感谢马三小伙儿@UWA问答社区提供了回答

感谢翟孟飞@UWA问答社区提供了回答

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

1.Vulkan API的性能及兼容性
2.Unity TMP字体方案如何选择
3.如何实现AAB包的增量更新

封面图来源于:Daydream Renderer for Unity
Daydream Renderer是一组脚本和着色器,旨在允许在Daydream平台上以60fps的帧率实现高质量实时渲染。


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

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

03-05 15:17