基础内容

必要插件安装
缓动曲线和动画基础
ElementFolder,Track与其次级模块,PathNode重构
This commit is contained in:
SoulliesOfficial
2025-01-26 21:10:16 -05:00
parent 40f63dd2bd
commit 8d0abec75f
9320 changed files with 2950357 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
using System;
using UniRx.Operators;
namespace UniRx
{
public static partial class Observable
{
public static IConnectableObservable<T> Multicast<T>(this IObservable<T> source, ISubject<T> subject)
{
return new ConnectableObservable<T>(source, subject);
}
public static IConnectableObservable<T> Publish<T>(this IObservable<T> source)
{
return source.Multicast(new Subject<T>());
}
public static IConnectableObservable<T> Publish<T>(this IObservable<T> source, T initialValue)
{
return source.Multicast(new BehaviorSubject<T>(initialValue));
}
public static IConnectableObservable<T> PublishLast<T>(this IObservable<T> source)
{
return source.Multicast(new AsyncSubject<T>());
}
public static IConnectableObservable<T> Replay<T>(this IObservable<T> source)
{
return source.Multicast(new ReplaySubject<T>());
}
public static IConnectableObservable<T> Replay<T>(this IObservable<T> source, IScheduler scheduler)
{
return source.Multicast(new ReplaySubject<T>(scheduler));
}
public static IConnectableObservable<T> Replay<T>(this IObservable<T> source, int bufferSize)
{
return source.Multicast(new ReplaySubject<T>(bufferSize));
}
public static IConnectableObservable<T> Replay<T>(this IObservable<T> source, int bufferSize, IScheduler scheduler)
{
return source.Multicast(new ReplaySubject<T>(bufferSize, scheduler));
}
public static IConnectableObservable<T> Replay<T>(this IObservable<T> source, TimeSpan window)
{
return source.Multicast(new ReplaySubject<T>(window));
}
public static IConnectableObservable<T> Replay<T>(this IObservable<T> source, TimeSpan window, IScheduler scheduler)
{
return source.Multicast(new ReplaySubject<T>(window, scheduler));
}
public static IConnectableObservable<T> Replay<T>(this IObservable<T> source, int bufferSize, TimeSpan window, IScheduler scheduler)
{
return source.Multicast(new ReplaySubject<T>(bufferSize, window, scheduler));
}
public static IObservable<T> RefCount<T>(this IConnectableObservable<T> source)
{
return new RefCountObservable<T>(source);
}
/// <summary>
/// same as Publish().RefCount()
/// </summary>
public static IObservable<T> Share<T>(this IObservable<T> source)
{
return source.Publish().RefCount();
}
}
}