I have some gameplay where I have player triggered actions that will trigger once every couple of seconds at most and not for a couple of minutes at other times.
Since the actions are rather rare, the IRpcCommands would seem suitable, however https://docs.unity3d.com/Packages/com.unity.netcode@1.0/api/Unity.NetCode.IRpcCommand.html says that they are not meant for player commands, referencing ICommandData and IInputComponentData instead.
ICommandData however says you should prefer it over Rpc if you need to send a constant stream of data from client to server (which is not the case here).
I've now implemented the logic using RPC Commands, however I'd like to do predictions on the results of the actions on the client. Are there any good ways of doing client side prediction (the RPC should have some impact on GhostComponent data).
As an example (my use case isn't exactly that but it's easier to explain) - having an RTS game where you rather rarely issue a move command where you provide a target location.
Is the way to go to just have an ICommandData/IInputComponentData on every single unit, very rarely change it and hope delta compression is good enough to take care of it? Seems rather dirty and like a waste of transmitted data.