Итак, я только начинаю с Babylon JS, и у меня есть переменная, которую я объявляю в функции createScene
с именем scene
. У меня есть эта функция, которая берет объекты из массива и конвертирует их, чтобы заполнить мой scene
(цель) сетками:
let objectsFromArray = []
for(let i in sceneObjects){
let currentObject = sceneObjects[i];
let objectFunc = get(BABYLON, currentObject.path)
objectsFromArray.push(
objectFunc(...currentObject.params)
)
for(let action of Object.keys(currentObject.actions)){
objectsFromArray[i][action] = objectsFromArray.actions[action]
}
}
Массив вне функции createScene
, который имеет все generi c объекты / сетки хранятся в нем следующим образом:
let sceneObjects = [
{
path: "MeshBuilder.CreateBox",
params: [
"box",
{
width: 30,
height: 1
},
this["scene"] //<---- This is the issue
],
actions: {
position: new BABYLON.Vector3(0, -5, 3)
}
},
]
Обратите внимание на массив this["scene"]
в конце массива params. Это здесь, потому что мне нужно динамически передать переменную scene
, локально объявленную в моей функции createScene
, в качестве цели для Вавилона JS, чтобы знать, где разместить me sh. Очевидно, this["scene"]
нацеливается на неопределенную глобальную переменную вместо локальной. Как динамически нацелить переменную, которая была объявлена локально / в области действия?
PS Извините за неправильное использование терминологии / глупости, в основном программируя как хобби