mirror of
https://github.com/gongxh0901/kunpocc-behaviortree.git
synced 2025-12-26 16:48:56 +00:00
行为树节点参数添加复合类型参数,更新demo
This commit is contained in:
@@ -1,138 +1,8 @@
|
||||
{
|
||||
"bt-tree1": [
|
||||
{
|
||||
"id": "1759488688188_qejfcso50",
|
||||
"className": "Selector",
|
||||
"parameters": {},
|
||||
"children": [
|
||||
"1759488707759_2bmdm1fqt",
|
||||
"1759488725107_v8u160t95",
|
||||
"1759488737637_axpz9aqaz",
|
||||
"1759482034741_cf3mqaqdj"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "1759479318405_bptb8ltcp",
|
||||
"className": "LimitTime",
|
||||
"parameters": {
|
||||
"_max": 2
|
||||
},
|
||||
"children": [
|
||||
"1758089736854_t55n54hkh"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "1759479295671_jflit2ek8",
|
||||
"className": "LimitTime",
|
||||
"parameters": {
|
||||
"_max": 2
|
||||
},
|
||||
"children": [
|
||||
"1758089659917_vjumiu9hy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "1758089659917_vjumiu9hy",
|
||||
"className": "BTAnimation",
|
||||
"parameters": {
|
||||
"_name": "walk",
|
||||
"_loop": true
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": "1758089736854_t55n54hkh",
|
||||
"className": "BTAnimation",
|
||||
"parameters": {
|
||||
"_name": "run",
|
||||
"_loop": true
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": "1758089757615_dp9tw9ka1",
|
||||
"className": "BTAnimation",
|
||||
"parameters": {
|
||||
"_name": "jump",
|
||||
"_loop": false
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": "1759478407706_w30m4btux",
|
||||
"className": "BTAnimation",
|
||||
"parameters": {
|
||||
"_name": "idle",
|
||||
"_loop": true
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": "1759481172259_xou25wj2n",
|
||||
"className": "BTConditionRandom",
|
||||
"parameters": {
|
||||
"_value": 0.3
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": "1759481282875_5orqavi5y",
|
||||
"className": "BTConditionRandom",
|
||||
"parameters": {
|
||||
"_value": 0.4
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": "1759481307863_ja6q4q9bz",
|
||||
"className": "BTConditionRandom",
|
||||
"parameters": {
|
||||
"_value": 0.3
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": "1759482034741_cf3mqaqdj",
|
||||
"className": "LimitTime",
|
||||
"parameters": {
|
||||
"_max": 3
|
||||
},
|
||||
"children": [
|
||||
"1759478407706_w30m4btux"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "1759488707759_2bmdm1fqt",
|
||||
"className": "Sequence",
|
||||
"parameters": {},
|
||||
"children": [
|
||||
"1759481172259_xou25wj2n",
|
||||
"1759479295671_jflit2ek8"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "1759488725107_v8u160t95",
|
||||
"className": "Sequence",
|
||||
"parameters": {},
|
||||
"children": [
|
||||
"1759481282875_5orqavi5y",
|
||||
"1759479318405_bptb8ltcp"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "1759488737637_axpz9aqaz",
|
||||
"className": "Sequence",
|
||||
"parameters": {},
|
||||
"children": [
|
||||
"1759481307863_ja6q4q9bz",
|
||||
"1758089757615_dp9tw9ka1"
|
||||
]
|
||||
}
|
||||
],
|
||||
"bt-tree2": [
|
||||
{
|
||||
"id": "1757930589538_qisfksbwz",
|
||||
"className": "MemSequence",
|
||||
"id": "1758206972710_bhxebhy7o",
|
||||
"className": "Sequence",
|
||||
"parameters": {},
|
||||
"children": [
|
||||
"1758090634327_mf36nwkdt"
|
||||
@@ -142,6 +12,17 @@
|
||||
"id": "1758090634327_mf36nwkdt",
|
||||
"className": "Selector",
|
||||
"parameters": {},
|
||||
"children": [
|
||||
"1758206988178_55b7kk5va"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "1758206988178_55b7kk5va",
|
||||
"className": "BTAnimation",
|
||||
"parameters": {
|
||||
"_name": "",
|
||||
"_loop": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,6 +7,33 @@
|
||||
import { sp } from "cc";
|
||||
import { BT } from "./Header";
|
||||
|
||||
@BT.ClassAction("BTTestNode", { name: "嵌套数据测试节点", group: "测试", desc: "测试节点" })
|
||||
export class BTTestNode extends BT.LeafNode {
|
||||
@BT.prop({
|
||||
type: BT.ParamType.object,
|
||||
properties: {
|
||||
x: { type: BT.ParamType.int, min: 0 },
|
||||
y: { type: BT.ParamType.int, min: 0 }
|
||||
}
|
||||
})
|
||||
position: { x: number, y: number };
|
||||
|
||||
// 对象数组参数
|
||||
@BT.prop({
|
||||
type: BT.ParamType.array,
|
||||
itemType: BT.ParamType.object,
|
||||
itemProperties: {
|
||||
name: { type: BT.ParamType.string },
|
||||
value: { type: BT.ParamType.int }
|
||||
}
|
||||
})
|
||||
configs: Array<{ name: string, value: number }>;
|
||||
|
||||
public tick(): BT.Status {
|
||||
return BT.Status.SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
@BT.ClassAction("BTAnimation", { name: "播放动画", group: "动画", desc: "通过动画名播放动画,播放完成后返回成功" })
|
||||
export class BTAnimation extends BT.LeafNode {
|
||||
@BT.prop({ type: BT.ParamType.string, description: "动画名" })
|
||||
@@ -54,7 +81,7 @@ export class BTConditionRandom extends BT.Condition {
|
||||
private _value: number = 0.5;
|
||||
|
||||
public isEligible(): boolean {
|
||||
return Math.random() > this._value;
|
||||
return Math.random() < this._value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "bt-tree1",
|
||||
"description": "",
|
||||
"name": "bt-tree2",
|
||||
"description": "这是一个描述",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "1759488688188_qejfcso50",
|
||||
@@ -8,23 +8,46 @@
|
||||
"name": "选择节点",
|
||||
"position": {
|
||||
"x": -60,
|
||||
"y": -240
|
||||
"y": -200
|
||||
},
|
||||
"parameters": {},
|
||||
"children": [
|
||||
"1759488707759_2bmdm1fqt",
|
||||
"1759488725107_v8u160t95",
|
||||
"1759488737637_axpz9aqaz",
|
||||
"1759482034741_cf3mqaqdj"
|
||||
"1759482034741_cf3mqaqdj",
|
||||
"1758190139303_t5o7vv3ak"
|
||||
],
|
||||
"alias": "根选择节点"
|
||||
},
|
||||
{
|
||||
"id": "1758190139303_t5o7vv3ak",
|
||||
"className": "BTTestNode",
|
||||
"name": "嵌套数据测试节点",
|
||||
"position": {
|
||||
"x": 440,
|
||||
"y": -80
|
||||
},
|
||||
"parameters": {
|
||||
"position": {
|
||||
"x": 10,
|
||||
"y": 20
|
||||
},
|
||||
"configs": [
|
||||
{
|
||||
"name": "hahaa",
|
||||
"value": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"id": "1759479318405_bptb8ltcp",
|
||||
"className": "LimitTime",
|
||||
"name": "时间限制器",
|
||||
"position": {
|
||||
"x": -60,
|
||||
"x": -120,
|
||||
"y": 40
|
||||
},
|
||||
"parameters": {
|
||||
@@ -39,7 +62,7 @@
|
||||
"className": "LimitTime",
|
||||
"name": "时间限制器",
|
||||
"position": {
|
||||
"x": -340,
|
||||
"x": -400,
|
||||
"y": 40
|
||||
},
|
||||
"parameters": {
|
||||
@@ -54,7 +77,7 @@
|
||||
"className": "BTAnimation",
|
||||
"name": "播放动画",
|
||||
"position": {
|
||||
"x": -340,
|
||||
"x": -400,
|
||||
"y": 160
|
||||
},
|
||||
"parameters": {
|
||||
@@ -68,8 +91,8 @@
|
||||
"className": "BTAnimation",
|
||||
"name": "播放动画",
|
||||
"position": {
|
||||
"x": -60,
|
||||
"y": 200
|
||||
"x": -120,
|
||||
"y": 160
|
||||
},
|
||||
"parameters": {
|
||||
"_name": "run",
|
||||
@@ -82,8 +105,8 @@
|
||||
"className": "BTAnimation",
|
||||
"name": "播放动画",
|
||||
"position": {
|
||||
"x": 220,
|
||||
"y": 60
|
||||
"x": 160,
|
||||
"y": 40
|
||||
},
|
||||
"parameters": {
|
||||
"_name": "jump",
|
||||
@@ -96,7 +119,7 @@
|
||||
"className": "BTAnimation",
|
||||
"name": "播放动画",
|
||||
"position": {
|
||||
"x": 360,
|
||||
"x": 300,
|
||||
"y": 40
|
||||
},
|
||||
"parameters": {
|
||||
@@ -110,7 +133,7 @@
|
||||
"className": "BTConditionRandom",
|
||||
"name": "随机条件节点",
|
||||
"position": {
|
||||
"x": -480,
|
||||
"x": -540,
|
||||
"y": 40
|
||||
},
|
||||
"parameters": {
|
||||
@@ -123,7 +146,7 @@
|
||||
"className": "BTConditionRandom",
|
||||
"name": "随机条件节点",
|
||||
"position": {
|
||||
"x": -200,
|
||||
"x": -260,
|
||||
"y": 40
|
||||
},
|
||||
"parameters": {
|
||||
@@ -136,7 +159,7 @@
|
||||
"className": "BTConditionRandom",
|
||||
"name": "随机条件节点",
|
||||
"position": {
|
||||
"x": 80,
|
||||
"x": 20,
|
||||
"y": 40
|
||||
},
|
||||
"parameters": {
|
||||
@@ -149,11 +172,11 @@
|
||||
"className": "LimitTime",
|
||||
"name": "时间限制器",
|
||||
"position": {
|
||||
"x": 360,
|
||||
"x": 300,
|
||||
"y": -80
|
||||
},
|
||||
"parameters": {
|
||||
"_max": 3
|
||||
"_max": 2
|
||||
},
|
||||
"children": [
|
||||
"1759478407706_w30m4btux"
|
||||
@@ -165,7 +188,7 @@
|
||||
"className": "Sequence",
|
||||
"name": "顺序节点",
|
||||
"position": {
|
||||
"x": -400,
|
||||
"x": -480,
|
||||
"y": -80
|
||||
},
|
||||
"parameters": {},
|
||||
@@ -180,7 +203,7 @@
|
||||
"className": "Sequence",
|
||||
"name": "顺序节点",
|
||||
"position": {
|
||||
"x": -120,
|
||||
"x": -200,
|
||||
"y": -80
|
||||
},
|
||||
"parameters": {},
|
||||
@@ -188,14 +211,14 @@
|
||||
"1759481282875_5orqavi5y",
|
||||
"1759479318405_bptb8ltcp"
|
||||
],
|
||||
"alias": "奔跑动画分支"
|
||||
"alias": "奔跑动画"
|
||||
},
|
||||
{
|
||||
"id": "1759488737637_axpz9aqaz",
|
||||
"className": "Sequence",
|
||||
"name": "顺序节点",
|
||||
"position": {
|
||||
"x": 160,
|
||||
"x": 80,
|
||||
"y": -80
|
||||
},
|
||||
"parameters": {},
|
||||
@@ -297,11 +320,18 @@
|
||||
"targetNodeId": "1758089757615_dp9tw9ka1",
|
||||
"sourcePointType": "child",
|
||||
"targetPointType": "parent"
|
||||
},
|
||||
{
|
||||
"id": "conn_1758204108181_90iaioyvg",
|
||||
"sourceNodeId": "1759488688188_qejfcso50",
|
||||
"targetNodeId": "1758190139303_t5o7vv3ak",
|
||||
"sourcePointType": "child",
|
||||
"targetPointType": "parent"
|
||||
}
|
||||
],
|
||||
"canvasScale": 1.0252718826976899,
|
||||
"canvasScale": 1.0006385665653545,
|
||||
"canvasOffset": {
|
||||
"x": 540.227707847,
|
||||
"y": 428.7616100108487
|
||||
"x": 584.9936143343465,
|
||||
"y": 498.99074078480237
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,12 @@
|
||||
"description": "",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "1757930589538_qisfksbwz",
|
||||
"className": "MemSequence",
|
||||
"name": "记忆顺序节点",
|
||||
"id": "1758206972710_bhxebhy7o",
|
||||
"className": "Sequence",
|
||||
"name": "顺序节点",
|
||||
"position": {
|
||||
"x": -60,
|
||||
"y": -280
|
||||
"x": 80,
|
||||
"y": -320
|
||||
},
|
||||
"parameters": {},
|
||||
"children": [
|
||||
@@ -20,25 +20,49 @@
|
||||
"className": "Selector",
|
||||
"name": "选择节点",
|
||||
"position": {
|
||||
"x": 20,
|
||||
"y": -80
|
||||
"x": -80,
|
||||
"y": -220
|
||||
},
|
||||
"parameters": {},
|
||||
"children": [
|
||||
"1758206988178_55b7kk5va"
|
||||
],
|
||||
"alias": "是的发放是的发放"
|
||||
},
|
||||
{
|
||||
"id": "1758206988178_55b7kk5va",
|
||||
"className": "BTAnimation",
|
||||
"name": "播放动画",
|
||||
"position": {
|
||||
"x": -20,
|
||||
"y": -40
|
||||
},
|
||||
"parameters": {
|
||||
"_name": "",
|
||||
"_loop": false
|
||||
},
|
||||
"children": []
|
||||
}
|
||||
],
|
||||
"connections": [
|
||||
{
|
||||
"id": "conn_1758090635620_zajj5r8g0",
|
||||
"sourceNodeId": "1757930589538_qisfksbwz",
|
||||
"id": "conn_1758206976733_208tneycs",
|
||||
"sourceNodeId": "1758206972710_bhxebhy7o",
|
||||
"targetNodeId": "1758090634327_mf36nwkdt",
|
||||
"sourcePointType": "child",
|
||||
"targetPointType": "parent"
|
||||
},
|
||||
{
|
||||
"id": "conn_1758206989897_46hw88z7h",
|
||||
"sourceNodeId": "1758090634327_mf36nwkdt",
|
||||
"targetNodeId": "1758206988178_55b7kk5va",
|
||||
"sourcePointType": "child",
|
||||
"targetPointType": "parent"
|
||||
}
|
||||
],
|
||||
"canvasScale": 1.139190980775211,
|
||||
"canvasOffset": {
|
||||
"x": 266.1539154489914,
|
||||
"y": 608.1811503312816
|
||||
"x": 549.4323607689915,
|
||||
"y": 698.6185343759718
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
"version": "3.8.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"kunpocc-behaviortree": "^0.1.0",
|
||||
"kunpocc-behaviortree": "^0.1.1",
|
||||
"ts-node": "^10.9.2"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user