Local Multiplayer
In version 2.1 a new Local Multiplayer demo was added from a feature request by one of the community members.
It works by specifying a “Player ID” on the RhythmDirector and other relevant components that are bound to one RhytmDirector. Example ScoreManager or Track EventReceivers
There are some limitations for the LocalMultiplayer setup:
SaveManager will only save data for PlayerID 0 Feel free to duplicate the SaveManager and make your own custom one to save the data you want/need
You CANNOT play the EXACT SAME RhythmTimeline on two different RhythmDirector Unfortunatly the system was not originally designed with local multiplayer in mind. Some early decisions in the code structure prevents me from making this possible without a complete re-write of the system. Therefore the only way to play twice the same RhythmTimeline is to duplicate it in editor in advance. Duplicating a Timeline at runtime is simply too complicated and costly to be worthwhile as too many important calls are internal to Unity Timeline package.
I recommend simply duplicating the RhythmTimelines in editor, add a suffix “_Player2” or something and then using that on the second RhythmDirector. The only caveat is that you’ll need to do this each time you modify the original timeline. You could potentially write an editor script that does this for you using reflection on Timeline editor functions. That will be a lot easier than doing it at runtime.
Perhaps in a future version 3 I will re-write the entire system to be less reliant on the timeline, track and clip assets realtime data. But that would only be if enough people request it and if there are additional changes that would make it worth the time investment.