news 2026/8/15 4:28:17

开发功能开关-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
开发功能开关-–-behaviac

原文

behaviac的运行时提供有核心的更新行为树的功能,在其之上,还有logging,热加载,连调等调试功能。这些调试功能只是‘开发’功能,在游戏发布后实际上是不需要的。

除了可以在config.h中定义BEHAVIAC_RELEASE宏为1来完全使‘开发功能’不被编译外。也可以保留这些‘开发’功能但只是使用下面所列的‘开关’来关闭或者打开某些功能。

具体可以参考优化及性能

Cpp

namespacebehaviac{classBEHAVIAC_APIConfig{public:staticboolIsProfiling();staticvoidSetProfiling(boolbEnabled);//logging是否打开staticboolIsLogging();staticvoidSetLogging(boolbLogging);//logging打开的情况下,是否每次logging的时候都FlushstaticboolIsLoggingFlush();staticvoidSetLoggingFlush(boolbFlush);//socket连接是否打开,只有打开socket连接,连调功能才会支持staticboolIsSocketing();staticvoidSetSocketing(boolbSocketing);//是否是阻塞模式,当时阻塞模式的时候,游戏会阻塞,等待编辑器的连接,//只有成功建立连接后,游戏才继续运行staticboolIsSocketBlocking();staticvoidSetSocketBlocking(boolbBlocking);//游戏和编辑器建立连接的时候使用的端口staticvoidSetSocketPort(unsignedshortport);staticunsignedshortGetSocketPort();//热加载是否打开staticboolIsHotReload();staticvoidSetHotReload(boolbHotReload);};

具体的代码可以查看behaviac/base/workspace.h

Unity

C#下同名函数的意义和Cpp一样,此外,IsSuppressingNonPublicWarning是个用来控制是否输出非public成员的警告。

IsSuppressingNonPublicWarning为true的时候,Agent的成员(field,method,property)如果不是public的,则输出警告信息,从而可以修改其为public,这样的话,当使用导出格式为c#时其效率就是最高的,而且没有GC Alloc。

具体的代码请查看behaviac/runtime/workspace.cs

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/14 10:49:47

Week 29: 深度学习补遗:MoE的稳定性机制与路由策略实现

文章目录Week 29: 深度学习补遗:MoE的稳定性机制与路由策略实现摘要Abstract1. Noisy Top-K Router1.1 理论背景1.2 代码实现2. Token 级与 Pooling 级路由2.1 理论背景2.2 代码实现3. Auxiliary Loss3.1 理论背景3.2 代码实现总结Week 29: 深度学习补遗&#xff1a…

作者头像 李华
网站建设 2026/8/13 20:01:10

25年12月14日复盘总结,大盘方向,操作建议,板块机会,实用干货

25年12月14日复盘总结,大盘方向,操作建议,板块机会,实用干货大盘指数经过近一个季度回调半指的风险得到了极大的释放,指数走出了三段4的调整,那在这个位置我们就不应该再看风险,三段4的调整已经…

作者头像 李华
网站建设 2026/8/12 10:41:37

what?动态规划?

动态规划入门:从原理到实战,吃透基础算法动态规划(Dynamic Programming,简称 DP)是算法领域的核心思想之一,也是面试、竞赛中的高频考点。它并非单一算法,而是一种 “化繁为简” 的解题思路 ——…

作者头像 李华
网站建设 2026/8/14 3:33:48

CommonJS 的缓存机制:为什么二次 require 得到的对象是同一个?

各位同仁,下午好!今天,我们将深入探讨 Node.js 中 CommonJS 模块系统的核心机制之一:模块缓存。这是一个看似简单却蕴含深厚设计哲学的机制,它直接决定了我们在 Node.js 应用中管理状态、优化性能以及理解模块行为的关…

作者头像 李华
网站建设 2026/8/13 17:18:46

跨标签页通信的五种方案:LocalStorage、BroadcastChannel 与 SharedWorker

各位同仁,下午好!今天,我们将深入探讨前端开发中一个既常见又关键的议题:跨标签页通信。在现代Web应用中,用户经常会同时打开多个标签页或窗口来访问同一个网站的不同部分,或者处理同一任务的不同阶段。在这…

作者头像 李华