public void Construct( IObservable <GameState> observeState, IPawnInstances pawnInstances ) { var targetGroup = GetComponent <CinemachineTargetGroup>(); observeState.AddedPawns() .SelectMany(pawns => pawns) .Where(pawn => pawn.CameraWeight > 0f) .Subscribe(pawn => { targetGroup.AddMember( pawnInstances.Get(pawn.ID).transform, pawn.CameraWeight, 1f ); }); observeState.RemovedPawns() .SelectMany(pawns => pawns) .Subscribe(pawn => { targetGroup.RemoveMember( pawnInstances.Get(pawn.ID).transform ); }); }
public static IObservable <PawnState> EachAddedPawn(this IObservable <GameState> observeState) { return(observeState.AddedPawns().SelectMany(pawns => pawns)); }