diff options
author | Benoit Bolsee <benoit.bolsee@online.be> | 2008-04-15 00:54:20 +0400 |
---|---|---|
committer | Benoit Bolsee <benoit.bolsee@online.be> | 2008-04-15 00:54:20 +0400 |
commit | 566053319a47119bf718154f800659f9f0b86472 (patch) | |
tree | decf82225fcbd22e9c7f937b53af02b4ad04911c /source/gameengine/Ketsji/KX_SceneActuator.cpp | |
parent | 0b8b4369c9dbfd9f0048b54a74bf3669919e7f0f (diff) |
fix BGE bug #8309: After Parent Object added to the visual layer, Child Camera won't follow.
This bug fix is made of two parts:
1) It's now possible to dynamically add a camera.
2) Empty camera name on a SetCamera actuator now points to the actuator's parent object if this object is a camera.
This trick is useful to make current a dynamically created camera: just add a SetCamera actuator on the camera itself and leave the name empty. Later, when the camera is added in the scene with an AddObject actuator, either directly or via a parent object, you just need to activate the actuator to make the newly created camera current. If you set a name on a SetCamera actuator, it will always point to the original camera, even after replication.
Diffstat (limited to 'source/gameengine/Ketsji/KX_SceneActuator.cpp')
-rw-r--r-- | source/gameengine/Ketsji/KX_SceneActuator.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/gameengine/Ketsji/KX_SceneActuator.cpp b/source/gameengine/Ketsji/KX_SceneActuator.cpp index a37fce434be..7a9d144e92f 100644 --- a/source/gameengine/Ketsji/KX_SceneActuator.cpp +++ b/source/gameengine/Ketsji/KX_SceneActuator.cpp @@ -105,6 +105,15 @@ bool KX_SceneActuator::Update() { m_scene->SetActiveCamera(m_camera); } + else + { + // if no camera is set and the parent object is a camera, use it as the camera + SCA_IObject* parent = GetParent(); + if (parent->isA(&KX_Camera::Type)) + { + m_scene->SetActiveCamera((KX_Camera*)parent); + } + } break; default: break; |