操作系统或设备 - Godot 版本: Linux、Godot 3.0 (master)
问题描述:
从任何视口获取屏幕截图都会导致空数据。
重现步骤:
get_viewport().queue_screen_capture()
yield(get_tree(),"idle_frame")
yield(get_tree(),"idle_frame")
var i = get_viewport().get_screen_capture()
i.save_png("user://cap.png")
现在 queue_screen_capture() 和 get_screen_capture() 甚至不存在。
还没有尝试过 gdscript,但您应该能够调用 'viewport.get_texture().get_data()' 来获取对可以保存的 Image 的引用。 还调用 'image.lock()' 和 image.unlock()' 应该让您获得(并且可能设置?)像素。
这是从屏幕上选择颜色时颜色选择器的工作方式:
https://github.com/godotengine/godot/blob/master/scene/gui/color_picker.cpp#L428
@MarianoGnu你是对的,问题只是 ViewportTexture::get_data() 没有绑定到 GDScript,但这应该很容易解决。
最有用的评论
@MarianoGnu你是对的,问题只是 ViewportTexture::get_data() 没有绑定到 GDScript,但这应该很容易解决。