A pretty simple and hopefully readable camera implementation that allows tracking multiple objects and zooming out dynamically so that they all fit on screen, unlike other assets on the market this allows tracking multiple types of objects easily, you can track individual instances or entire object classes.
The functionality is provided by a single object and no scripts, the project also contains a very simple example room and objects.
How to use: just place the 'MultiTrackCamera' object in the room, and then add objects to be tracked using the Track_Objects(object_to_track) function (which can be called from the MultiTrackCamera object itself or from any other object using dot notation "MultiTrackCamera.Track_Objects(object)"). As the function uses a with() statement it can accept object index or instance id so you can choose to either track a single instance or any instance of a certain object. For added convenience it is also possible to pass an array of objects\instances to the same function like this "MultiTrackCamera.Track_Objects([object1, object2, object3...])".
To stop tracking an object\instance use the "Stop_Tracking_Objects(object_or_instance_or_array)" function. Note that if some object is tracked both as an instance and as part of an object_index removing its instance from the tracked object array will not actually stop the tracking. A Stop_Tracking_All() method is also provided.
End User Licence Agreement (EULA).
Fixed padding, hopefully, some changes to the demo room to make it more useful for debugging