Hello, was wondering if anyone knows the best setup for light outside the editor. I have a light that I’m adding/creating on initialization and then on app.on(“update”) I have the light’s rotateLocal() and setLocalPosition() being set. Originally I figured it isn’t necessary to have it’s position/rotation constantly set on the game logic loop so I took it out and put it after the light declaration/after app.start but this seemed to create a giant black circle where the light should be shining. I thought there might be a specific function that the position/rotation has to be called after so I tried a setTimeout of 10 seconds outside the update loop but same thing happened. Do all light position/rotation have to be set on the update loop or is there a better way to do this? Thanks!
Do you have a small project that you can share to show the repro?
There are too many moving components to show the project but essentially the code for the lights consists of
// Create an spot light
light = new Entity();
light.addComponent("light", {
type: "spot",
color: new Color(1, 1, 1),
outerConeAngle: 60,
innerConeAngle: 40,
range: 100,
intensity: 1,
castShadows: true,
shadowBias: 0.005,
normalOffsetBias: 0.01,
shadowResolution: 2048
});
const cone = new Entity();
cone.addComponent("model", {
type: "cone"
});
cone.model.material = white;
light.addChild(cone);
For the light and
app.on("update", (dt) => {
light.rotateLocal(90, 30, 50);
light.setLocalPosition(val, val, val);
});
for the update loop. If I take that rotate/setposition code out of the update loop it’s black on the ground where the light should be hitting
Silly question: Have you added the light entity to the scene hierarchy?
ah, yes I have a
app.root.addChild(light);
right after declaring light
OK so I actually had light.lookAt(center)
as part of that block and THAT method specifically was causing this issue for some reason. With only rotate/setposition it works fine
1 Like
Lol, that happens sometimes
1 Like