在管道通信基础上,可进行宿主程序与Godot的双向通信。
先拿属性信息试试手。
DrGraph端
static UnicodeString command = "Book.position";
if (InputQuery("输入窗口", "请输入待获取的属性信息", command)) {
TDrStream_Get drGet(THelper::String::GetStringAt(command, L".", 0).Trim(),
THelper::String::GetStringAt(command, L".", 1).Trim());
TDllStream ds;
ds << drGet;
PipeStreamServer->WritePipe(ds, 1000);
}
Godot端(源码完善)
List<PropertyInfo> *p_list = new List<PropertyInfo>;
bool p_reversed = true;
destObject->get_property_list(p_list, p_reversed);
cofs << "OK";
for (List<PropertyInfo>::Iterator it = p_list->begin(); it != p_list->end(); ++it) {
String content = it->name.ptr();
if (it->class_name.operator String().is_empty() == false)
content += str_format(U"[%s]", it->class_name.operator String().utf8().get_data());
Variant value = destObject->get(it->name);
content

文章介绍了如何在管道通信的基础上实现Godot游戏引擎与宿主程序之间的双向通信,通过发送属性信息请求,Godot端获取并返回对象的属性列表,展示了实时类型信息(RTTI)的初步应用。
最低0.47元/天 解锁文章
3368

被折叠的 条评论
为什么被折叠?



