diff --git a/.DS_Store b/.DS_Store
index c257b29e612f4d945559633ec58aac425bb66366..29750aff4fa9bef62a6da7247c09d823af66f858 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/assets/cocos_generator/script/util.ts b/assets/cocos_generator/script/util.ts
index d53ba2c8047f386b05cdc86fb80e4651cd2947b7..542abaccf30f8b44ed4a81f1136670e78eda9494 100644
--- a/assets/cocos_generator/script/util.ts
+++ b/assets/cocos_generator/script/util.ts
@@ -189,6 +189,73 @@ export async function asyncDelay(time) {
   })
 }
 
+export async function asyncLoadDragonBoneAnime(node, { skeJsonData: { url: skeJsonDataUrl }, texJsonData: { url: texJsonDataUrl }, texPngData: { url: texPngDataUrl } }) {
+
+    if (!texPngDataUrl || !texJsonDataUrl || !texPngDataUrl
+        || texPngDataUrl == '' || texJsonDataUrl == '' || texPngDataUrl == '') {
+        return;
+    }
+
+    return new Promise((resolve, reject) => {
+        if (node.animaNode) {
+            node.animaNode.removeFromParent();
+        }
+        const animaNode = new cc.Node();
+        animaNode.name = 'animaNode';
+        animaNode.parent = node;
+        animaNode.active = true;
+        node.animaNode = animaNode;
+
+        const dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);
+
+        const loadTexture = new Promise((resolve, reject) => {
+            cc.assetManager.loadRemote(texPngDataUrl, (error, texture) => {
+                if (error) {
+                    reject(error);
+                }
+                resolve(texture);
+            });
+        });
+
+        const loadTexJsonData = new Promise((resolve, reject) => {
+            cc.assetManager.loadAny({ url: texJsonDataUrl }, (error, atlasJson) => {
+                if (error) {
+                    reject(error);
+                }
+                resolve(atlasJson);
+            });
+        });
+
+        const loadSkeJsonData = new Promise((resolve, reject) => {
+            cc.assetManager.loadAny({ url: skeJsonDataUrl }, (error, dragonBonesJson) => {
+                if (error) {
+                    reject(error);
+                }
+                resolve(dragonBonesJson);
+            });
+        });
+
+        Promise.all([loadTexture, loadTexJsonData, loadSkeJsonData]).then(([texture, atlasJson, dragonBonesJson]) => {
+            const atlas = new dragonBones.DragonBonesAtlasAsset();
+            atlas.atlasJson = JSON.stringify(atlasJson);
+            atlas.texture = texture;
+
+            const asset = new dragonBones.DragonBonesAsset();
+            asset.dragonBonesJson = JSON.stringify(dragonBonesJson);
+
+            dragonDisplay.dragonAtlasAsset = atlas;
+            dragonDisplay.dragonAsset = asset;
+
+            let armatureNames = dragonBonesJson.armature.map(data => data.name);
+
+            if (armatureNames.length > 0) {
+                dragonDisplay.armatureName = armatureNames[0];
+            }
+            resolve(animaNode);
+        });
+    });
+}
+
 export class FireworkSettings {
   baseNode; // 父节点
   nodeList; // 火花节点的array