private void Start() { // Publish()の返り値は // IConnectableUniTaskAsyncEnumerable<T> _connectableUniTaskAsyncEnumerable = UniTaskAsyncEnumerable .EveryUpdate().Publish(); // この時点ではまだ値は発行されない _connectableUniTaskAsyncEnumerable .ForEachAsync(_ => Debug.Log(Time.frameCount)); }
public AsyncMessageBroker() { channel = Channel.CreateSingleConsumerUnbounded <T>(); multicastSource = channel.Reader.ReadAllAsync().Publish(); connection = multicastSource.Connect(); }
//这里使用了Rx的一个技巧,让一个消费者订阅Channel,然后把这个消费者作为新的广播者,就可以被多个消费订阅了。 public AsyncMessageBroker() { channel = Channel.CreateSingleConsumerUnbounded <T>(); multicastSource = channel.Reader.ReadAllAsync().Publish(); connection = multicastSource.Connect(); // Publish returns IConnectableUniTaskAsyncEnumerable. }