Godot Engine:DLC流程

概述

以前用Unity做DLC的时候首先要用到AssetBundle进行打包,整个过程还是挺繁琐的。Unity的assetbundle中的文件的原始位置和最终所在的包无关,因此要严格定义好打包的规则,当资源较多的时候需要用到插件及自己扩展的脚本来进行打包。这样的设计虽然对一些复杂场景是合理的,但是对于一些简单场景,总有点弄巧成拙的感觉。而且,Unity没有提供一个方便使用的处理包加载的方法,需要自己使用底层API再封装,总之当时用Unity实现DLC的那段日子,很是辛苦。相比之下,Godot实现DLC的打包->下载->加载->调用这几个步骤一气呵成,不需要你自己再造轮子。更为重要的是,Godot的GDScript可以直接放到包里,以实现逻辑的更新,不需要像Unity那样还要使用Lua并且还要给予xLua或者sLua这样的第三方技术。总之,再次感到Godot真的是贴心又到位!

实现要点

以下是我的DLC步骤,如果有问题或错误,敬请大家帮我指出!

1.首先还是要开启User Dir,用于存储下载到的DLC资源,开启方式如图

开启User Dir

2.导出PCK

打包

3.将PCK放到服务器端

我用PHP实现了一个简单的服务器,把PCK文件放上去设置好目录即可,此步略

4.Godot端实现下载和加载

extends Node2D

func _ready():
	$HTTPRequest.download_file = "user://test.pck"#指定保存的文件名
	$HTTPRequest.request("http://localhost/game.php/dlc/download")#下载

func _on_HTTPRequest_request_completed(result, response_code, headers, body):
	if response_code == 200:
		ProjectSettings.load_resource_pack("user://test.pck")#加载
		get_tree().change_scene("res://DLCs/DLCScene.tscn")#调用,文件的路径依据打包时的原始路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发游戏的老王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值