# Cable Joints implementation in Unity ### Running: - Load project in Unity - Select a scene from the file explorer in "Assets > Scenes" - Enable Gizmos using the button in the top right of the game preview - Press the play button ### Code Structure | File | Description| |------------------------------------------------------------| -| | [CableJointsAlgorithm.cs](Assets/CableJointsAlgorithm.cs) | Main Algorithm Implementation| | [Controller.cs](Assets/Controller.cs) | Sets up the scene, creates Unity Game Objects| | [RollerProperties.cs](Assets/RollerProperties.cs) | Contains properties for each part of the Cable| | [Extensions.cs](Assets/Extensions.cs) | Useful extension methods| ### Creating a scene: An effort was made to simplify creation of new scenes as much as possible and create most required objects in code instead. - Create a new scene in unity - Add the controller component to any object (e.g. the Main Camera) - Add rollers using Right click > 2D Object > Sprites > Circle - Other shapes can be added using the same menu - Add the RollerProperties Component to all objects which should be connected by the cable and adjust the settings: - Start: set for one of the ends of the cable - Clockwise: determines the side the cable is running around the object - Link To: Select the next game object the cable should be connected to - Movement: Rotatable and Powered should only be used for circles and represent rollers. Fixed and Free can be used for any shape - Use fixed attachment point: If set to true the object is not viewed as a roller, but a point attachment instead (e.g. weights) - Objects not connected by cable (e.g. Floor) can be created by adding an sprite with a collider. - Mass is calculated based on area - Press 'T', to toggle powered wheels on and off.