news 2026/5/27 10:16:00

开发功能开关-–-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/5/26 9:18:55

C语言图论:最短路径算法

本文献给: 已掌握无向图基础,希望理解如何在带权图中找到两点间最短路径的C语言学习者。本文将系统讲解两种经典的最短路径算法。 你将学到: 最短路径问题的定义与核心概念Dijkstra算法:解决单源、非负权图的最短路径Bellman-For…

作者头像 李华
网站建设 2026/5/24 13:06:44

实习面试题-聚合搜索项目面试题

1.你的项目中使用了哪些技术栈?请分别介绍一下 Spring Boot、Elastic Stack 在项目中的作用。 2.你提到自己二次开发了 Spring Boot 初始化模板,这个模板有哪些功能? 3.什么是 HttpClient?如何使用 HttpClient 来抓取外部网站的文章?请简述整个过程。 4.什么是 Jsoup?…

作者头像 李华
网站建设 2026/5/24 23:39:53

JavaScript 处理二进制数据流:从 ArrayBuffer 到 Blob 再到 File 的转换指南

各位同学,大家好。今天我们将深入探讨JavaScript中处理二进制数据流的核心机制。在现代Web应用中,我们不再仅仅局限于文本数据的交互,图片、音频、视频、文件上传下载、网络协议等都离不开对二进制数据的精确操控。理解并掌握JavaScript提供的…

作者头像 李华