Пример #1
0
    private IEnumerator InstantiatePlayer()
    {
        observers = new LinkedList <IObservableOptionsObserver>();

        observableOptions = new ObservableOptions
        {
            position      = false,
            rotation      = false,
            interpolation = false,
            extrapolation = false
        };

        // To avoid synchronization issues due to scene loading
        yield return(new WaitForSeconds(loadingTime));

        int _offset = POSITION_OFFSET * PhotonNetwork.LocalPlayer.ActorNumber;
        int _pos    = PLAYER_START_POST + _offset;

        LocalPlayerPrefab = PhotonNetwork.Instantiate(playerPrefab.name, new Vector3(_pos, 0f, _pos), Quaternion.identity);

        // Wait other player instantion messages
        yield return(new WaitForSeconds(loadingTime));

        loadingScreen.enabled = false;
    }
        public static ISubject <Try <Datagram> > ToObservable(this Socket socket, Action <ObservableOptions> configuration = null)
        {
            var options = new ObservableOptions();

            configuration?.Invoke(options);

            var block = socket.ToDataflowBlock(opt =>
            {
                opt.TaskScheduler = options.TaskScheduler;
            });

            return(Subject.Create <Try <Datagram> >(block.AsObserver(), block.AsObservable()));
        }