diff --git a/bt-demo/.gitignore b/bt-demo/.gitignore new file mode 100644 index 0000000..4cf037e --- /dev/null +++ b/bt-demo/.gitignore @@ -0,0 +1,30 @@ + +#/////////////////////////// +# Cocos Creator 3D Project +#/////////////////////////// +library/ +temp/ +local/ +build/ +profiles/ +extensions/ +publish/ +#////////////////////////// +# NPM +#////////////////////////// +node_modules/ + +#////////////////////////// +# VSCode +#////////////////////////// +.vscode/ +.creator/ + +#////////////////////////// +# WebStorm +#////////////////////////// +.idea/ + +package-lock.json + +**/.DS_Store \ No newline at end of file diff --git a/bt-demo/README.md b/bt-demo/README.md new file mode 100644 index 0000000..48b9492 --- /dev/null +++ b/bt-demo/README.md @@ -0,0 +1,10 @@ +# 项目说明 + +clone项目后,到项目根目录,执行以下命令,安装项目依赖库 +```bash +npm i +``` + +重新用creator打开项目 + +本项目使用的creator版本为3.8.6 \ No newline at end of file diff --git a/bt-demo/assets/resources.meta b/bt-demo/assets/resources.meta new file mode 100644 index 0000000..84b262a --- /dev/null +++ b/bt-demo/assets/resources.meta @@ -0,0 +1,14 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "9d91ce52-ffe8-43c0-a118-9ace6bd9cf45", + "files": [], + "subMetas": {}, + "userData": { + "isBundle": true, + "bundleConfigID": "default", + "bundleName": "resources", + "priority": 8 + } +} diff --git a/bt-demo/assets/resources/config.meta b/bt-demo/assets/resources/config.meta new file mode 100644 index 0000000..4107367 --- /dev/null +++ b/bt-demo/assets/resources/config.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "1ea023b5-0ab6-4613-b157-3098b11c379b", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/bt-demo/assets/resources/config/bt_config.json b/bt-demo/assets/resources/config/bt_config.json new file mode 100644 index 0000000..e5e2a0a --- /dev/null +++ b/bt-demo/assets/resources/config/bt_config.json @@ -0,0 +1,169 @@ +{ + "bt-tree1": [ + { + "id": "1759472794685_3awlwerqg", + "className": "MemSelector", + "parameters": {}, + "children": [ + "1759472800995_k3q8rx02h", + "1759472799864_nait7thja", + "1759472798713_ay9jxznr4", + "1759472797759_gu3y8p1um" + ] + }, + { + "id": "1759472797759_gu3y8p1um", + "className": "Inverter", + "parameters": {}, + "children": [] + }, + { + "id": "1759472798713_ay9jxznr4", + "className": "LimitTime", + "parameters": { + "_max": 1 + }, + "children": [] + }, + { + "id": "1759472799864_nait7thja", + "className": "LimitTicks", + "parameters": { + "_max": 1 + }, + "children": [] + }, + { + "id": "1759472800995_k3q8rx02h", + "className": "Repeat", + "parameters": { + "_max": 1 + }, + "children": [] + } + ], + "bt-tree2": [ + { + "id": "1757930589538_qisfksbwz", + "className": "MemSequence", + "parameters": {}, + "children": [ + "1758005578560_0b1kuefo0", + "node_1757926547913_xilg11ei7", + "1757931183149_eeuq44vs0" + ] + }, + { + "id": "node_1757926547913_xilg11ei7", + "className": "MemSelector", + "parameters": {}, + "children": [ + "node_1757926550855_1hqcmi43w", + "node_1757926555912_18vbde5fp", + "1757930584200_cf9rez1qg", + "1757931171553_a3afal936" + ] + }, + { + "id": "node_1757926550855_1hqcmi43w", + "className": "WaitTicks", + "parameters": { + "_max": 2 + }, + "children": [] + }, + { + "id": "node_1757926555912_18vbde5fp", + "className": "WaitTime", + "parameters": { + "_max": 1 + }, + "children": [] + }, + { + "id": "1757930584200_cf9rez1qg", + "className": "Inverter", + "parameters": {}, + "children": [ + "1757930606484_dbsf9bsu2" + ] + }, + { + "id": "1757930606484_dbsf9bsu2", + "className": "WaitTicks", + "parameters": { + "_max": 0 + }, + "children": [] + }, + { + "id": "1757931171553_a3afal936", + "className": "WaitTicks", + "parameters": { + "_max": 0 + }, + "children": [] + }, + { + "id": "1757931183149_eeuq44vs0", + "className": "LimitTicks", + "parameters": { + "_max": 1 + }, + "children": [] + }, + { + "id": "1758005570308_u6yo43u3b", + "className": "MemSelector", + "parameters": {}, + "children": [ + "1758005574101_v4xhs2jo8" + ] + }, + { + "id": "1758005572265_dl9lxnrki", + "className": "MemSequence", + "parameters": {}, + "children": [ + "1758005575213_obgfw5q7p" + ] + }, + { + "id": "1758005574101_v4xhs2jo8", + "className": "Selector", + "parameters": {}, + "children": [ + "1758005576340_c8xf5bdhp" + ] + }, + { + "id": "1758005575213_obgfw5q7p", + "className": "RandomSelector", + "parameters": {}, + "children": [ + "1758005577367_tw24xyxop" + ] + }, + { + "id": "1758005576340_c8xf5bdhp", + "className": "Sequence", + "parameters": {}, + "children": [] + }, + { + "id": "1758005577367_tw24xyxop", + "className": "Parallel", + "parameters": {}, + "children": [] + }, + { + "id": "1758005578560_0b1kuefo0", + "className": "ParallelAnySuccess", + "parameters": {}, + "children": [ + "1758005570308_u6yo43u3b", + "1758005572265_dl9lxnrki" + ] + } + ] +} \ No newline at end of file diff --git a/bt-demo/assets/resources/config/bt_config.json.meta b/bt-demo/assets/resources/config/bt_config.json.meta new file mode 100644 index 0000000..d216453 --- /dev/null +++ b/bt-demo/assets/resources/config/bt_config.json.meta @@ -0,0 +1,11 @@ +{ + "ver": "2.0.1", + "importer": "json", + "imported": true, + "uuid": "c8aeef5d-6d0e-4093-848e-7d8f1ca30261", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/bt-demo/assets/scene.meta b/bt-demo/assets/scene.meta new file mode 100644 index 0000000..b243f5d --- /dev/null +++ b/bt-demo/assets/scene.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "6f3166a3-36ba-4512-bae8-889c2a7d7d98", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/bt-demo/assets/scene/GameEntry.scene b/bt-demo/assets/scene/GameEntry.scene new file mode 100644 index 0000000..8109b9a --- /dev/null +++ b/bt-demo/assets/scene/GameEntry.scene @@ -0,0 +1,687 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "GameEntry", + "_objFlags": 0, + "__editorExtras__": {}, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_name": "GameEntry", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 15 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "autoReleaseAssets": false, + "_globals": { + "__id__": 16 + }, + "_id": "bef93422-3e63-4c0f-a5cf-d926e7360673" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + } + ], + "_active": true, + "_components": [ + { + "__id__": 12 + }, + { + "__id__": 13 + }, + { + "__id__": 14 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 375, + "y": 667, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "beI88Z2HpFELqR4T5EMHpg" + }, + { + "__type__": "cc.Node", + "_name": "Camera", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 4 + }, + { + "__id__": 7 + } + ], + "_active": true, + "_components": [ + { + "__id__": 11 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 1000 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "ebFwiq8gBFaYpqYbdoDODe" + }, + { + "__type__": "cc.Node", + "_name": "touch", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 3 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -1000 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "77ynXZOUlAmZhaA9QBApfI" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 4 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "44ewOBJMBKwauq6v9Ikv2U" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 4 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 18, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 1.1368683772161603e-13, + "_bottom": 1.1368683772161603e-13, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 750, + "_originalHeight": 1334, + "_alignMode": 2, + "_lockFlags": 18, + "_id": "81c6EXUVxA0IMliXVVpGt0" + }, + { + "__type__": "cc.Node", + "_name": "stage", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 3 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 8 + }, + { + "__id__": 9 + }, + { + "__id__": 10 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -1000 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "61IfeQ6J5Kpp0fCcAF/VJO" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "f2tzcWDiBNNKKrnPd07n/y" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 18, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_alignMode": 2, + "_lockFlags": 18, + "_id": "0f+BSXru9DValkOkklwcLG" + }, + { + "__type__": "e5804qewX9N9op0d4aH4r7B", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "stage": { + "__id__": 7 + }, + "touchNode": { + "__id__": 4 + }, + "_id": "aef3WWUq5ARp6kYDQOuKMM" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 3 + }, + "_enabled": true, + "__prefab": null, + "_projection": 0, + "_priority": 1, + "_fov": 45, + "_fovAxis": 0, + "_orthoHeight": 667, + "_near": 0, + "_far": 2000, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": 1, + "_stencil": 0, + "_clearFlags": 0, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_aperture": 19, + "_shutter": 7, + "_iso": 0, + "_screenScale": 1, + "_visibility": 1107296259, + "_targetTexture": null, + "_postProcess": null, + "_usePostProcess": false, + "_cameraType": -1, + "_trackingType": 0, + "_id": "63WIch3o5BEYRlXzTT0oWc" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "d6rUX5yfhMlKoWX2bSbawx" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "_cameraComponent": { + "__id__": 11 + }, + "_alignCanvasWithScreen": true, + "_id": "12O/ljcVlEqLmVm3U2gEOQ" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 18, + "_target": null, + "_left": 375, + "_right": 375, + "_top": 667, + "_bottom": 667, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "c5V1EV8IpMtrIvY1OE9t2u" + }, + { + "__type__": "cc.PrefabInfo", + "root": null, + "asset": null, + "fileId": "bef93422-3e63-4c0f-a5cf-d926e7360673", + "instance": null, + "targetOverrides": null + }, + { + "__type__": "cc.SceneGlobals", + "ambient": { + "__id__": 17 + }, + "shadows": { + "__id__": 18 + }, + "_skybox": { + "__id__": 19 + }, + "fog": { + "__id__": 20 + }, + "octree": { + "__id__": 21 + }, + "skin": { + "__id__": 22 + }, + "lightProbeInfo": { + "__id__": 23 + }, + "postSettings": { + "__id__": 24 + }, + "bakedWithStationaryMainLight": false, + "bakedWithHighpLightmap": false + }, + { + "__type__": "cc.AmbientInfo", + "_skyColorHDR": { + "__type__": "cc.Vec4", + "x": 0, + "y": 0, + "z": 0, + "w": 0.520833125 + }, + "_skyColor": { + "__type__": "cc.Vec4", + "x": 0, + "y": 0, + "z": 0, + "w": 0.520833125 + }, + "_skyIllumHDR": 20000, + "_skyIllum": 20000, + "_groundAlbedoHDR": { + "__type__": "cc.Vec4", + "x": 0, + "y": 0, + "z": 0, + "w": 0 + }, + "_groundAlbedo": { + "__type__": "cc.Vec4", + "x": 0, + "y": 0, + "z": 0, + "w": 0 + }, + "_skyColorLDR": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.5, + "z": 0.8, + "w": 1 + }, + "_skyIllumLDR": 20000, + "_groundAlbedoLDR": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.2, + "z": 0.2, + "w": 1 + } + }, + { + "__type__": "cc.ShadowsInfo", + "_enabled": false, + "_type": 0, + "_normal": { + "__type__": "cc.Vec3", + "x": 0, + "y": 1, + "z": 0 + }, + "_distance": 0, + "_planeBias": 1, + "_shadowColor": { + "__type__": "cc.Color", + "r": 76, + "g": 76, + "b": 76, + "a": 255 + }, + "_maxReceived": 4, + "_size": { + "__type__": "cc.Vec2", + "x": 512, + "y": 512 + } + }, + { + "__type__": "cc.SkyboxInfo", + "_envLightingType": 0, + "_envmapHDR": null, + "_envmap": null, + "_envmapLDR": null, + "_diffuseMapHDR": null, + "_diffuseMapLDR": null, + "_enabled": false, + "_useHDR": true, + "_editableMaterial": null, + "_reflectionHDR": null, + "_reflectionLDR": null, + "_rotationAngle": 0 + }, + { + "__type__": "cc.FogInfo", + "_type": 0, + "_fogColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "_enabled": false, + "_fogDensity": 0.3, + "_fogStart": 0.5, + "_fogEnd": 300, + "_fogAtten": 5, + "_fogTop": 1.5, + "_fogRange": 1.2, + "_accurate": false + }, + { + "__type__": "cc.OctreeInfo", + "_enabled": false, + "_minPos": { + "__type__": "cc.Vec3", + "x": -1024, + "y": -1024, + "z": -1024 + }, + "_maxPos": { + "__type__": "cc.Vec3", + "x": 1024, + "y": 1024, + "z": 1024 + }, + "_depth": 8 + }, + { + "__type__": "cc.SkinInfo", + "_enabled": false, + "_blurRadius": 0.01, + "_sssIntensity": 3 + }, + { + "__type__": "cc.LightProbeInfo", + "_giScale": 1, + "_giSamples": 1024, + "_bounces": 2, + "_reduceRinging": 0, + "_showProbe": true, + "_showWireframe": true, + "_showConvex": false, + "_data": null, + "_lightProbeSphereVolume": 1 + }, + { + "__type__": "cc.PostSettingsInfo", + "_toneMappingType": 0 + } +] \ No newline at end of file diff --git a/bt-demo/assets/scene/GameEntry.scene.meta b/bt-demo/assets/scene/GameEntry.scene.meta new file mode 100644 index 0000000..819d3d7 --- /dev/null +++ b/bt-demo/assets/scene/GameEntry.scene.meta @@ -0,0 +1,11 @@ +{ + "ver": "1.1.50", + "importer": "scene", + "imported": true, + "uuid": "bef93422-3e63-4c0f-a5cf-d926e7360673", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/bt-demo/assets/script.meta b/bt-demo/assets/script.meta new file mode 100644 index 0000000..44e737f --- /dev/null +++ b/bt-demo/assets/script.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "448b0525-daf3-4ad4-be4a-04a7e181f028", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/bt-demo/assets/script/GameEntry.ts b/bt-demo/assets/script/GameEntry.ts new file mode 100644 index 0000000..d6ea77b --- /dev/null +++ b/bt-demo/assets/script/GameEntry.ts @@ -0,0 +1,20 @@ +import { _decorator, Component, Node } from 'cc'; +import * as BT from "kunpocc-behaviortree"; +const { ccclass, property, menu } = _decorator; +@ccclass("GameEntry") +@menu("kunpo/GameEntry") +export class GameEntry extends Component { + @property(Node) + private stage: Node = null; + + @property(Node) + private touchNode: Node = null; + + start(): void { + BT + } + + protected update(dt: number): void { + + } +} \ No newline at end of file diff --git a/bt-demo/assets/script/GameEntry.ts.meta b/bt-demo/assets/script/GameEntry.ts.meta new file mode 100644 index 0000000..a93d713 --- /dev/null +++ b/bt-demo/assets/script/GameEntry.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "e5804a9e-c17f-4df6-8a74-778687e2bec1", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/bt-demo/assets/script/Math.ts b/bt-demo/assets/script/Math.ts new file mode 100644 index 0000000..475da93 --- /dev/null +++ b/bt-demo/assets/script/Math.ts @@ -0,0 +1,73 @@ +interface Math { + /** + * 限制值 + * @param value 当前值 + * @param min 最小值 + * @param max 最大值 + */ + clampf(value: number, min: number, max: number): number; + + /** + * 随机从 min 到 max 的整数(包含min和max) + * @param min + * @param max + */ + rand(min: number, max: number): number; + + /** + * 随机从 min 到 max的数 + * @param min + * @param max + */ + randRange(min: number, max: number): number; + + /** + * 角度转弧度 + * @param angle 角度 + */ + rad(angle: number): number; + + /** + * 弧度转角度 + * @param radian 弧度 + */ + deg(radian: number): number; + + /** + * 数值平滑渐变 + * @param num1 + * @param num2 + * @param elapsedTime + * @param responseTime + */ + smooth(num1: number, num2: number, elapsedTime: number, responseTime: number): number; +} + +Math.clampf = function (value: number, min: number, max: number): number { + return Math.min(Math.max(value, min), max); +}; + +Math.rand = function (min: number, max: number): number { + return Math.floor(Math.random() * (max - min + 1) + min); +}; + +Math.randRange = function (min: number, max: number): number { + return Math.random() * (max - min) + min; +}; + +Math.rad = function (angle: number): number { + return (angle * Math.PI) / 180; +}; + +Math.deg = function (radian: number): number { + return (radian * 180) / Math.PI; +}; + +Math.smooth = function (num1: number, num2: number, elapsedTime: number, responseTime: number): number { + let out: number = num1; + if (elapsedTime > 0) { + out = out + (num2 - num1) * (elapsedTime / (elapsedTime + responseTime)); + } + return out; +}; + diff --git a/bt-demo/assets/script/Math.ts.meta b/bt-demo/assets/script/Math.ts.meta new file mode 100644 index 0000000..454a584 --- /dev/null +++ b/bt-demo/assets/script/Math.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "a336ce23-5d73-4280-b2e9-084389a3877e", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/bt-demo/extensions-config/.gitignore b/bt-demo/extensions-config/.gitignore new file mode 100644 index 0000000..aa052db --- /dev/null +++ b/bt-demo/extensions-config/.gitignore @@ -0,0 +1 @@ +local/ \ No newline at end of file diff --git a/bt-demo/extensions-config/bt-editor/bt-tree1.json b/bt-demo/extensions-config/bt-editor/bt-tree1.json new file mode 100644 index 0000000..d068d5a --- /dev/null +++ b/bt-demo/extensions-config/bt-editor/bt-tree1.json @@ -0,0 +1,102 @@ +{ + "name": "bt-tree1", + "description": "", + "nodes": [ + { + "id": "1759472794685_3awlwerqg", + "className": "MemSelector", + "name": "记忆选择节点", + "position": { + "x": -60, + "y": -200 + }, + "parameters": {}, + "children": [ + "1759472800995_k3q8rx02h", + "1759472799864_nait7thja", + "1759472798713_ay9jxznr4", + "1759472797759_gu3y8p1um" + ] + }, + { + "id": "1759472797759_gu3y8p1um", + "className": "Inverter", + "name": "反转器", + "position": { + "x": 160, + "y": -80 + }, + "parameters": {}, + "children": [] + }, + { + "id": "1759472798713_ay9jxznr4", + "className": "LimitTime", + "name": "时间限制器", + "position": { + "x": 20, + "y": -80 + }, + "parameters": { + "_max": 1 + }, + "children": [] + }, + { + "id": "1759472799864_nait7thja", + "className": "LimitTicks", + "name": "次数限制器", + "position": { + "x": -120, + "y": -80 + }, + "parameters": { + "_max": 1 + }, + "children": [] + }, + { + "id": "1759472800995_k3q8rx02h", + "className": "Repeat", + "name": "重复节点", + "position": { + "x": -260, + "y": -80 + }, + "parameters": { + "_max": 1 + }, + "children": [] + } + ], + "connections": [ + { + "id": "conn_1759472802506_ojduz0zog", + "sourceNodeId": "1759472794685_3awlwerqg", + "targetNodeId": "1759472800995_k3q8rx02h", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1759472803849_dk7zwd0xt", + "sourceNodeId": "1759472794685_3awlwerqg", + "targetNodeId": "1759472799864_nait7thja", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1759472807533_unxo9p2b0", + "sourceNodeId": "1759472794685_3awlwerqg", + "targetNodeId": "1759472798713_ay9jxznr4", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1759472809481_l9rcrno3b", + "sourceNodeId": "1759472794685_3awlwerqg", + "targetNodeId": "1759472797759_gu3y8p1um", + "sourcePointType": "child", + "targetPointType": "parent" + } + ] +} \ No newline at end of file diff --git a/bt-demo/extensions-config/bt-editor/bt-tree2.json b/bt-demo/extensions-config/bt-editor/bt-tree2.json new file mode 100644 index 0000000..b5c6ff8 --- /dev/null +++ b/bt-demo/extensions-config/bt-editor/bt-tree2.json @@ -0,0 +1,303 @@ +{ + "name": "bt-tree2", + "description": "", + "nodes": [ + { + "id": "1757930589538_qisfksbwz", + "className": "MemSequence", + "name": "记忆顺序节点", + "position": { + "x": -60, + "y": -200 + }, + "parameters": {}, + "children": [ + "1758005578560_0b1kuefo0", + "node_1757926547913_xilg11ei7", + "1757931183149_eeuq44vs0" + ] + }, + { + "id": "node_1757926547913_xilg11ei7", + "className": "MemSelector", + "name": "记忆选择节点", + "position": { + "x": 20, + "y": -80 + }, + "parameters": {}, + "children": [ + "node_1757926550855_1hqcmi43w", + "node_1757926555912_18vbde5fp", + "1757930584200_cf9rez1qg", + "1757931171553_a3afal936" + ] + }, + { + "id": "node_1757926550855_1hqcmi43w", + "className": "WaitTicks", + "name": "等待次数", + "position": { + "x": -220, + "y": 40 + }, + "parameters": { + "_max": 2 + }, + "children": [] + }, + { + "id": "node_1757926555912_18vbde5fp", + "className": "WaitTime", + "name": "等待时间", + "position": { + "x": -60, + "y": 40 + }, + "parameters": { + "_max": 1 + }, + "children": [] + }, + { + "id": "1757930584200_cf9rez1qg", + "className": "Inverter", + "name": "反转器", + "position": { + "x": 100, + "y": 40 + }, + "parameters": {}, + "children": [ + "1757930606484_dbsf9bsu2" + ] + }, + { + "id": "1757930606484_dbsf9bsu2", + "className": "WaitTicks", + "name": "等待次数", + "position": { + "x": 100, + "y": 160 + }, + "parameters": { + "_max": 0 + }, + "children": [] + }, + { + "id": "1757931171553_a3afal936", + "className": "WaitTicks", + "name": "等待次数", + "position": { + "x": 260, + "y": 40 + }, + "parameters": { + "_max": 0 + }, + "children": [] + }, + { + "id": "1757931183149_eeuq44vs0", + "className": "LimitTicks", + "name": "次数限制器", + "position": { + "x": 420, + "y": -80 + }, + "parameters": { + "_max": 1 + }, + "children": [] + }, + { + "id": "1758005570308_u6yo43u3b", + "className": "MemSelector", + "name": "记忆选择节点", + "position": { + "x": -540, + "y": 40 + }, + "parameters": {}, + "children": [ + "1758005574101_v4xhs2jo8" + ] + }, + { + "id": "1758005572265_dl9lxnrki", + "className": "MemSequence", + "name": "记忆顺序节点", + "position": { + "x": -380, + "y": 40 + }, + "parameters": {}, + "children": [ + "1758005575213_obgfw5q7p" + ] + }, + { + "id": "1758005574101_v4xhs2jo8", + "className": "Selector", + "name": "选择节点", + "position": { + "x": -540, + "y": 160 + }, + "parameters": {}, + "children": [ + "1758005576340_c8xf5bdhp" + ] + }, + { + "id": "1758005575213_obgfw5q7p", + "className": "RandomSelector", + "name": "随机选择节点", + "position": { + "x": -380, + "y": 160 + }, + "parameters": {}, + "children": [ + "1758005577367_tw24xyxop" + ] + }, + { + "id": "1758005576340_c8xf5bdhp", + "className": "Sequence", + "name": "顺序节点", + "position": { + "x": -540, + "y": 280 + }, + "parameters": {}, + "children": [] + }, + { + "id": "1758005577367_tw24xyxop", + "className": "Parallel", + "name": "并行节点", + "position": { + "x": -380, + "y": 280 + }, + "parameters": {}, + "children": [] + }, + { + "id": "1758005578560_0b1kuefo0", + "className": "ParallelAnySuccess", + "name": "并行任意成功", + "position": { + "x": -460, + "y": -80 + }, + "parameters": {}, + "children": [ + "1758005570308_u6yo43u3b", + "1758005572265_dl9lxnrki" + ] + } + ], + "connections": [ + { + "id": "conn_1757926557710_7asuzelad", + "sourceNodeId": "node_1757926547913_xilg11ei7", + "targetNodeId": "node_1757926555912_18vbde5fp", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1757926560138_ragkonnfy", + "sourceNodeId": "node_1757926547913_xilg11ei7", + "targetNodeId": "node_1757926550855_1hqcmi43w", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1757930585861_b5oi5rm01", + "sourceNodeId": "node_1757926547913_xilg11ei7", + "targetNodeId": "1757930584200_cf9rez1qg", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1757930591546_aul6he8br", + "sourceNodeId": "1757930589538_qisfksbwz", + "targetNodeId": "node_1757926547913_xilg11ei7", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1757931173864_bvoj26wca", + "sourceNodeId": "node_1757926547913_xilg11ei7", + "targetNodeId": "1757931171553_a3afal936", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1757931198693_i0xwbcybx", + "sourceNodeId": "1757930589538_qisfksbwz", + "targetNodeId": "1757931183149_eeuq44vs0", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1757931631231_ecs9ql7x6", + "sourceNodeId": "1757930584200_cf9rez1qg", + "targetNodeId": "1757930606484_dbsf9bsu2", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1758005608025_lk647mty7", + "sourceNodeId": "1758005570308_u6yo43u3b", + "targetNodeId": "1758005574101_v4xhs2jo8", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1758005609490_i9jyzji9o", + "sourceNodeId": "1758005572265_dl9lxnrki", + "targetNodeId": "1758005575213_obgfw5q7p", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1758005610949_y0443s3om", + "sourceNodeId": "1758005575213_obgfw5q7p", + "targetNodeId": "1758005577367_tw24xyxop", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1758005614225_q84l7ry4u", + "sourceNodeId": "1758005578560_0b1kuefo0", + "targetNodeId": "1758005570308_u6yo43u3b", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1758005615813_q663l1nnl", + "sourceNodeId": "1758005578560_0b1kuefo0", + "targetNodeId": "1758005572265_dl9lxnrki", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1758005618014_6uj500l16", + "sourceNodeId": "1758005574101_v4xhs2jo8", + "targetNodeId": "1758005576340_c8xf5bdhp", + "sourcePointType": "child", + "targetPointType": "parent" + }, + { + "id": "conn_1758009576474_gtfkqutb1", + "sourceNodeId": "1757930589538_qisfksbwz", + "targetNodeId": "1758005578560_0b1kuefo0", + "sourcePointType": "child", + "targetPointType": "parent" + } + ] +} \ No newline at end of file diff --git a/bt-demo/package.json b/bt-demo/package.json new file mode 100755 index 0000000..e8c5453 --- /dev/null +++ b/bt-demo/package.json @@ -0,0 +1,11 @@ +{ + "name": "kunpocreator", + "uuid": "f5d24040-9cd4-4a5a-8559-38bf55e621f7", + "creator": { + "version": "3.8.6" + }, + "dependencies": { + "kunpocc-behaviortree": "^0.0.6", + "ts-node": "^10.9.2" + } +} diff --git a/bt-demo/settings/v2/packages/builder.json b/bt-demo/settings/v2/packages/builder.json new file mode 100644 index 0000000..774fb01 --- /dev/null +++ b/bt-demo/settings/v2/packages/builder.json @@ -0,0 +1,80 @@ +{ + "__version__": "1.3.9", + "bundleConfig": { + "custom": { + "default": { + "displayName": "i18n:builder.asset_bundle.defaultConfig", + "configs": { + "native": { + "preferredOptions": { + "isRemote": false, + "compressionType": "merge_all_json" + } + }, + "web": { + "preferredOptions": { + "isRemote": false, + "compressionType": "merge_dep" + }, + "fallbackOptions": { + "compressionType": "merge_dep" + } + }, + "miniGame": { + "fallbackOptions": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "configMode": "fallback", + "overwriteSettings": { + "alipay-mini-game": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "bytedance-mini-game": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "fb-instant-games": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "huawei-quick-game": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "migu-mini-game": { + "isRemote": false, + "compressionType": "merge_all_json" + }, + "oppo-mini-game": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "taobao-mini-game": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "vivo-mini-game": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "wechatgame": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "xiaomi-quick-game": { + "isRemote": true, + "compressionType": "merge_all_json" + }, + "taobao-creative-app": { + "isRemote": true, + "compressionType": "merge_all_json" + } + } + } + } + } + } + } +} diff --git a/bt-demo/settings/v2/packages/cocos-service.json b/bt-demo/settings/v2/packages/cocos-service.json new file mode 100644 index 0000000..9cc4921 --- /dev/null +++ b/bt-demo/settings/v2/packages/cocos-service.json @@ -0,0 +1,23 @@ +{ + "__version__": "3.0.9", + "game": { + "name": "未知游戏", + "app_id": "UNKNOW", + "c_id": "0" + }, + "appConfigMaps": [ + { + "app_id": "UNKNOW", + "config_id": "8c18cb" + } + ], + "configs": [ + { + "app_id": "UNKNOW", + "config_id": "8c18cb", + "config_name": "Default", + "config_remarks": "", + "services": [] + } + ] +} diff --git a/bt-demo/settings/v2/packages/device.json b/bt-demo/settings/v2/packages/device.json new file mode 100644 index 0000000..70e599e --- /dev/null +++ b/bt-demo/settings/v2/packages/device.json @@ -0,0 +1,3 @@ +{ + "__version__": "1.0.1" +} diff --git a/bt-demo/settings/v2/packages/engine.json b/bt-demo/settings/v2/packages/engine.json new file mode 100644 index 0000000..8c5ccd9 --- /dev/null +++ b/bt-demo/settings/v2/packages/engine.json @@ -0,0 +1,451 @@ +{ + "__version__": "1.0.12", + "modules": { + "graphics": { + "pipeline": "legacy-pipeline" + }, + "configs": { + "migrationsConfig": { + "cache": { + "base": { + "_value": true + }, + "gfx-webgl": { + "_value": true + }, + "gfx-webgl2": { + "_value": true + }, + "gfx-webgpu": { + "_value": false + }, + "animation": { + "_value": true + }, + "skeletal-animation": { + "_value": true + }, + "3d": { + "_value": false + }, + "meshopt": { + "_value": false + }, + "2d": { + "_value": true + }, + "xr": { + "_value": false + }, + "rich-text": { + "_value": true + }, + "mask": { + "_value": true + }, + "graphics": { + "_value": true + }, + "ui-skew": { + "_value": false + }, + "affine-transform": { + "_value": true + }, + "ui": { + "_value": true + }, + "particle": { + "_value": false + }, + "physics": { + "_value": false, + "_option": "physics-ammo" + }, + "physics-ammo": { + "_value": false, + "_flags": { + "LOAD_BULLET_MANUALLY": false + } + }, + "physics-cannon": { + "_value": false + }, + "physics-physx": { + "_value": false, + "_flags": { + "LOAD_PHYSX_MANUALLY": false + } + }, + "physics-builtin": { + "_value": false + }, + "physics-2d": { + "_value": true, + "_option": "physics-2d-builtin" + }, + "physics-2d-box2d": { + "_value": false + }, + "physics-2d-box2d-wasm": { + "_value": false, + "_flags": { + "LOAD_BOX2D_MANUALLY": false + } + }, + "physics-2d-builtin": { + "_value": false + }, + "physics-2d-box2d-jsb": { + "_value": false + }, + "intersection-2d": { + "_value": true + }, + "primitive": { + "_value": false + }, + "profiler": { + "_value": true + }, + "occlusion-query": { + "_value": false + }, + "geometry-renderer": { + "_value": false + }, + "debug-renderer": { + "_value": false + }, + "particle-2d": { + "_value": true + }, + "audio": { + "_value": true + }, + "video": { + "_value": true + }, + "webview": { + "_value": true + }, + "tween": { + "_value": true + }, + "websocket": { + "_value": true + }, + "websocket-server": { + "_value": false + }, + "terrain": { + "_value": false + }, + "light-probe": { + "_value": false + }, + "tiled-map": { + "_value": false + }, + "vendor-google": { + "_value": false + }, + "spine": { + "_value": true, + "_option": "spine-3.8" + }, + "spine-3.8": { + "_value": true, + "_flags": { + "LOAD_SPINE_MANUALLY": false + } + }, + "spine-4.2": { + "_value": false, + "_flags": { + "LOAD_SPINE_MANUALLY": false + } + }, + "dragon-bones": { + "_value": false + }, + "marionette": { + "_value": true + }, + "procedural-animation": { + "_value": true + }, + "custom-pipeline-post-process": { + "_value": false + }, + "render-pipeline": { + "_value": true, + "_option": "legacy-pipeline" + }, + "custom-pipeline": { + "_value": true + }, + "legacy-pipeline": { + "_value": false + } + }, + "flags": { + "LOAD_SPINE_MANUALLY": false + }, + "name": "迁移生成的配置", + "includeModules": [ + "2d", + "affine-transform", + "animation", + "audio", + "base", + "gfx-webgl", + "gfx-webgl2", + "graphics", + "intersection-2d", + "legacy-pipeline", + "marionette", + "mask", + "particle-2d", + "physics-2d-builtin", + "procedural-animation", + "profiler", + "rich-text", + "skeletal-animation", + "spine-3.8", + "tween", + "ui", + "video", + "websocket", + "webview" + ], + "noDeprecatedFeatures": { + "value": true, + "version": "<=3.8.0" + } + }, + "defaultConfig": { + "name": "默认配置", + "cache": { + "base": { + "_value": true + }, + "gfx-webgl": { + "_value": true + }, + "gfx-webgl2": { + "_value": false + }, + "gfx-webgpu": { + "_value": false + }, + "animation": { + "_value": true + }, + "skeletal-animation": { + "_value": true + }, + "3d": { + "_value": false + }, + "meshopt": { + "_value": false + }, + "2d": { + "_value": true + }, + "xr": { + "_value": false + }, + "rich-text": { + "_value": true + }, + "mask": { + "_value": true + }, + "graphics": { + "_value": true + }, + "ui-skew": { + "_value": false + }, + "affine-transform": { + "_value": true + }, + "ui": { + "_value": true + }, + "particle": { + "_value": false + }, + "physics": { + "_value": false, + "_option": "physics-ammo" + }, + "physics-ammo": { + "_value": true, + "_flags": { + "LOAD_BULLET_MANUALLY": false + } + }, + "physics-cannon": { + "_value": false + }, + "physics-physx": { + "_value": false, + "_flags": { + "LOAD_PHYSX_MANUALLY": false + } + }, + "physics-builtin": { + "_value": false + }, + "physics-2d": { + "_value": true, + "_option": "physics-2d-builtin" + }, + "physics-2d-box2d": { + "_value": true + }, + "physics-2d-box2d-wasm": { + "_value": false, + "_flags": { + "LOAD_BOX2D_MANUALLY": false + } + }, + "physics-2d-builtin": { + "_value": false + }, + "physics-2d-box2d-jsb": { + "_value": false + }, + "intersection-2d": { + "_value": true + }, + "primitive": { + "_value": false + }, + "profiler": { + "_value": true + }, + "occlusion-query": { + "_value": false + }, + "geometry-renderer": { + "_value": false + }, + "debug-renderer": { + "_value": false + }, + "particle-2d": { + "_value": true + }, + "audio": { + "_value": true + }, + "video": { + "_value": true + }, + "webview": { + "_value": true + }, + "tween": { + "_value": true + }, + "websocket": { + "_value": true + }, + "websocket-server": { + "_value": false + }, + "terrain": { + "_value": false + }, + "light-probe": { + "_value": false + }, + "tiled-map": { + "_value": false + }, + "vendor-google": { + "_value": false + }, + "spine": { + "_value": true, + "_option": "spine-3.8" + }, + "spine-3.8": { + "_value": true, + "_flags": { + "LOAD_SPINE_MANUALLY": false + } + }, + "spine-4.2": { + "_value": false, + "_flags": { + "LOAD_SPINE_MANUALLY": false + } + }, + "dragon-bones": { + "_value": false + }, + "marionette": { + "_value": true + }, + "procedural-animation": { + "_value": true + }, + "custom-pipeline-post-process": { + "_value": false + }, + "render-pipeline": { + "_value": true, + "_option": "custom-pipeline" + }, + "custom-pipeline": { + "_value": true + }, + "legacy-pipeline": { + "_value": false + } + }, + "flags": { + "LOAD_SPINE_MANUALLY": false + }, + "includeModules": [ + "2d", + "affine-transform", + "animation", + "audio", + "base", + "custom-pipeline", + "gfx-webgl", + "graphics", + "intersection-2d", + "marionette", + "mask", + "particle-2d", + "physics-2d-builtin", + "procedural-animation", + "profiler", + "rich-text", + "skeletal-animation", + "spine-3.8", + "tween", + "ui", + "video", + "websocket", + "webview" + ], + "noDeprecatedFeatures": { + "value": true, + "version": "<=3.8.0" + } + } + }, + "globalConfigKey": "defaultConfig" + }, + "macroConfig": { + "BATCHER2D_MEM_INCREMENT": 288 + } +} diff --git a/bt-demo/settings/v2/packages/information.json b/bt-demo/settings/v2/packages/information.json new file mode 100644 index 0000000..94848de --- /dev/null +++ b/bt-demo/settings/v2/packages/information.json @@ -0,0 +1,23 @@ +{ + "__version__": "1.0.1", + "information": { + "customSplash": { + "id": "customSplash", + "label": "customSplash", + "enable": false, + "customSplash": { + "complete": false, + "form": "https://creator-api.cocos.com/api/form/show?" + } + }, + "removeSplash": { + "id": "removeSplash", + "label": "removeSplash", + "enable": false, + "removeSplash": { + "complete": false, + "form": "https://creator-api.cocos.com/api/form/show?" + } + } + } +} diff --git a/bt-demo/settings/v2/packages/ios.json b/bt-demo/settings/v2/packages/ios.json new file mode 100644 index 0000000..34d2e00 --- /dev/null +++ b/bt-demo/settings/v2/packages/ios.json @@ -0,0 +1,11 @@ +{ + "__version__": "1.0.1", + "splash-setting": { + "displayRatio": 1, + "totalTime": 0, + "watermarkLocation": "default", + "autoFit": true, + "base64src": "data:image/png;base64,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", + "bgBase64": "data:image/png;base64,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" + } +} diff --git a/bt-demo/settings/v2/packages/program.json b/bt-demo/settings/v2/packages/program.json new file mode 100644 index 0000000..916c1b2 --- /dev/null +++ b/bt-demo/settings/v2/packages/program.json @@ -0,0 +1,3 @@ +{ + "__version__": "1.0.4" +} diff --git a/bt-demo/settings/v2/packages/project.json b/bt-demo/settings/v2/packages/project.json new file mode 100644 index 0000000..a7d75e1 --- /dev/null +++ b/bt-demo/settings/v2/packages/project.json @@ -0,0 +1,29 @@ +{ + "__version__": "1.0.6", + "general": { + "designResolution": { + "height": 1334, + "width": 750, + "fitHeight": true + }, + "highQuality": false + }, + "custom_joint_texture_layouts": [], + "script": { + "preserveSymlinks": true + }, + "layer": [ + { + "name": "Window", + "value": 1 + }, + { + "name": "Game", + "value": 2 + }, + { + "name": "Graphics", + "value": 4 + } + ] +} diff --git a/bt-demo/settings/v2/packages/scene.json b/bt-demo/settings/v2/packages/scene.json new file mode 100644 index 0000000..0c8c1e7 --- /dev/null +++ b/bt-demo/settings/v2/packages/scene.json @@ -0,0 +1,4 @@ +{ + "__version__": "1.0.3", + "current-scene": "bef93422-3e63-4c0f-a5cf-d926e7360673" +} diff --git a/bt-demo/tsconfig.json b/bt-demo/tsconfig.json new file mode 100644 index 0000000..8b92104 --- /dev/null +++ b/bt-demo/tsconfig.json @@ -0,0 +1,10 @@ +{ + /* Base configuration. Do not edit this field. */ + "extends": "./temp/tsconfig.cocos.json", + /* Add your custom configuration here. */ + "compilerOptions": { + "strict": false, + "module": "ES6", + "target": "ES6" + } +} \ No newline at end of file diff --git a/package.json b/package.json index 6f12407..d6ce6ba 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "scripts": { "clean": "rm -rf dist", - "copy": "cp -r dist/* ./../kunpo-ecs/demo/node_modules/kunpocc-behaviortree/dist/", + "copy": "cp -r dist/* ./bt-demo/node_modules/kunpocc-behaviortree/dist/", "build": "npm run clean && rollup -c rollup.config.mjs && npm run copy" }, "files": [