Exemple #1
0
        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));
 }