how to create an object and add it to the object list
i tried to register an object but i can’t add it to the scene someone should please help me
1 Like
Here is an example with 3D cubes.
if(runtimeScene.getTimeManager().isFirstFrame()){
console.log("3D Pyramid Script Started...");
const scene = runtimeScene;
const cubeSize = 50; // Size of each 3D Box
const baseSize = 5; // Pyramid base size (5x5)
// Starting position (adjust as needed)
const startX = 300; // Adjust to center
const startY = 300; // Adjust for visibility
const startZ = 0;
// Loop to create the pyramid
for (let row = 0; row < baseSize; row++) {
let cubesInRow = baseSize - row; // Reduce cubes per row
let offsetX = (cubeSize * row) / 2; // Center alignment for X
let offsetY = (cubeSize * row) / 2; // Center alignment for X
console.log(`Generating row ${row + 1} with ${cubesInRow}x${cubesInRow} cubes...`);
for (let i = 0; i < cubesInRow; i++) {
for (let j = 0; j < cubesInRow; j++) {
let newCube = scene.createObject("RedCube");
if (!newCube) {
console.error(`Failed to create 'RedCube' at row ${row}, column ${i}, depth ${j}`);
continue;
}
// Calculate 2D Position
let posX = startX - (i * cubeSize) - offsetX;
// let posY = startY - row * cubeSize; // Higher for each row
// let posZ = startY + (row * cubeSize); // Higher for each row
let posZ = startZ + (row * cubeSize);
// Use Z Order for layering depth
// let zOrder = 100 - ((row * 10 + j)*cubeSize); // Higher rows appear on top
// let posY = 100 - ((row * 10 + j) *cubeSize); // Higher rows appear on top
let posY = startY - (j * cubeSize) - offsetY;
// Apply positioning
newCube.setPosition(posX, posY);
newCube.setZ(posZ);
// newCube.setColor(r + ";" + g + ";" + b);
let r = Math.floor(Math.random() * 256);
let g = Math.floor(Math.random() * 256);
let b = Math.floor(Math.random() * 256);
let mycolor = `${r}` +";" +`${g}` + ";" + `${b}` ;
newCube.setColor(mycolor);
// newCube.setZOrder(zOrder);
// newCube.setZ(zOrder)
// newCube.setVariableNumber(newCube.getVariables().get("Z"), zOrder);
scene.addObject(newCube);
let myz = newCube.getZ();
console.log(`Placed cube at (X:${posX}, Y:${posY}) with Z-Order: ${posZ} / Z: ${myz}, Color
: ${mycolor}`);
}
}
}
// Get all objects in the scene
const objects = runtimeScene.getObjects("RedCube");
objects.forEach((object) => {
const posX = object.getX();
const posY = object.getY();
const posZ = object.getZ();
console.log(`Object: ${object.getName()} - X: ${posX}, Y: ${posY}, Z: ${posZ}`);
});
console.log("3D Pyramid Generation Complete.");
}
1 Like
Thanks for the example!
1 Like