Godot - 在运行时从网络导入动画文件

问题描述 投票:0回答:1

我正在尝试通过网络将一些资产传递到我的游戏中。

在此过程中,我们只有很少的纹理和 1 个动画文件。

当尝试加载文件时,我得到:

打开:user://animTest.tres:1 - 解析错误

最终目标是能够通过 add_animation 函数将此动画添加到 AnimationPlayer ..

有什么想法可以从网络导入动画文件吗?

尝试通过http请求获取文件,并将其加载到新的动画对象中。 没用 - 出现解析错误。

godot godot3
1个回答
0
投票

设置 Godot 3.5.1 环境后,我尝试用您提供给我们的信息重建您的问题。

我在《戈多》中做了什么:

  • 创建一个包含动画播放器和简单 Sprite 的场景
  • 为精灵创建动画并将其保存到名为 test.tres
  • 的文件中
  • 从动画播放器中删除了动画。

然后为了模仿从服务器加载,我做了一个简单的本地文件服务器,并将 test.tres 文件放在那里,这样 Godot 就可以下载它了。

接下来我在场景中创建了一个脚本来加载文件。因此我创建了一个 HttpRequester 节点并下载了文件:

func _ready():
    $HTTPRequest.connect("request_completed", self, "_on_request_completed")
    $HTTPRequest.request("http://127.0.0.1:8080/test.tres")

然后在信号中我将文件保存在系统上,然后将其作为动画加载。 播放动画确实没有问题:

func _on_request_completed(result, response_code, headers, body):
    var txt = body.get_string_from_utf8()
    var file : File = File.new()
    file.open("user://anim.tres", file.WRITE)
    file.store_string(txt)
    file.close()
    
    
    var anim = load("user://anim.tres")
    $AnimationPlayer.add_animation("test", anim)
    $AnimationPlayer.play("test")

当然,这个示例错过了错误处理和多个文件,但它展示了一种从文件服务器加载动画并播放它的方法

© www.soinside.com 2019 - 2024. All rights reserved.