CoroutineHelper
โ
ๅฝๅ็ฉบ้ด: Cwl.Helper.Unity;
ไธ็งๆนไพฟ็ๆนๅผๆฅ่ฐ็จๅงๆๆๅ็จ๏ผๅจไปปไฝไธไธๆไธญ๏ผๆ ่ฎบๆฏๅฆไธบ MonoBehaviour
ๅฎไพใ
็ซๅณ โ
static void MyTask();
CoroutineHelper.Immediate(MyTask);
CoroutineHelper.Immediate(() => {
// some other stuff
MyTask();
});
ๅจไธไธไธช Unity Update
ไบไปถๅ็ซๅณ่ฐ็จๅงๆใ
static IEnumerator MyCoroutineTask();
CoroutineHelper.Immediate(MyCoroutineTask());
ๅจไธไธไธช Unity Update
ไบไปถๅ็ซๅณ่ฐ็จๅ็จใ
ๆกไปถๅปถ่ฟ โ
ๆกไปถ่งฆๅ็ๆ ธๅฟใ
static void CleanupTask();
CoroutineHelper.Deferred(CleanupTask, () => SomeCheck.ShouldClean);
static void AddStuffToPlayer(int id);
CoroutineHelper.Deferred(
() => AddStuffToPlayer(114514),
() => EMono.core.IsGameStarted);
ๅฝๆกไปถไธบ็ๆถ่ฐ็จๅงๆใ
ๅธงๅปถ่ฟ โ
ๆๆถไฝ ๆณๅปถ่ฟๆไบๅธงๅๆง่กไฝ ็ๅจไฝใไพๅฆ๏ผๅจไธ UI ็ธๅ ณ็ไปฃ็ ไธญ๏ผไฝ ๅฏ่ฝๅธๆๅ ่ฎฉ UI ๅทๆฐ๏ผ็ถๅๅจ 1 ๅธงๅ็ปๅถไฝ ่ชๅทฑ็ๅ ๅฎน๏ผไปฅ้ๅบๆฐ็ไฝ็ฝฎ/ๆฐๆฎ็ญใ
static void AdjustPosition();
// default 1 frame
CoroutineHelper.Deferred(AdjustPosition);
// specify frames
CoroutineHelper.Deferred(AdjustPosition, 5);
// anonymous lambda works too
CoroutineHelper.Deferred(
() => {
// some other stuff
AdjustPosition();
},
5);
ๆถ้ดๅปถ่ฟ โ
ๆๆถไฝ ๅธๆๆไธชๆๆๆ็ปญไธๆฎตๆถ้ด๏ผ็ถๅๅ่ฟ่กๅ็ปญๆไฝใ
static void ClearEffects();
// wait 1.5s
CoroutineHelper.Deferred(ClearEffects, 1.5f);
CoroutineHelper.Deferred(
() => {
// some other stuff
ClearEffects();
},
1.5f);
ProgressIndicator
โ
ไธบๅผๆญฅๆนๆณๆไพๅจๅฑๅนๅณไธ่งๆพ็คบ็ถๆๆๆฌ็ๅธฎๅฉ็ฑปใ
static string currentLoading = "";
static bool shouldClose;
IEnumerator MyAsyncTask()
{
var progress = ProgressIndicator.CreateProgress(
onUpdate: () => new UpdateInfo(Text: currentLoading, Sprite: null, Color: null),
shouldKill: () => shouldClose
);
foreach (var file in BunchOfFiles) {
currentLoading = file.Name;
yield return new SomeTask();
}
currentLoading = "finished loading";
shouldClose = true;
}
ไนๅฏไฝฟ็จๅชๅจๅฝๅไฝ็จๅๆพ็คบๅนถ่ชๅจๅ ณ้ญ็ไพฟๆท้่ฝฝ:
static string currentLoading = "";
IEnumerator MyAsyncTask()
{
using var progress = ProgressIndicator.CreateProgress(
() => new UpdateInfo(Text: currentLoading, Sprite: null, Color: null)
);
foreach (var file in BunchOfFiles) {
currentLoading = file.Name;
yield return new SomeTask();
}
currentLoading = "finished loading";
}
ProgressIndicator
โ
็จไบๅจๅฑๅนๅณไธ่งๆพ็คบๅผๆญฅๆไฝ็่ฟๅบฆ่ท่ธชๅจใ
static string currentLoading = "";
static bool shouldClose;
IEnumerator MyAsyncTask()
{
var progress = ProgressIndicator.CreateProgress(
onUpdate: () => new UpdateInfo(Text: currentLoading, Sprite: null, Color: null),
shouldKill: () => shouldClose
);
foreach (var file in BunchOfFiles) {
currentLoading = file.Name;
yield return new SomeTask();
}
currentLoading = "ๅ ่ฝฝๅฎๆ";
shouldClose = true;
}
ๆจ่ฟๅฏไปฅไฝฟ็จไฝ็จๅ้่ฝฝ๏ผๅฎไผๅจๆนๆณ้ๅบๆถ่ชๅจๅ ณ้ญ๏ผ
static string currentLoading = "";
IEnumerator MyAsyncTask()
{
using var progress = ProgressIndicator.CreateProgressScoped(
() => new UpdateInfo(currentLoading)
);
foreach (var file in BunchOfFiles) {
currentLoading = file.Name;
yield return new SomeTask();
}
currentLoading = "ๅ ่ฝฝๅฎๆ";
}
SpriteCreator
โ
ๅธฎๅฉๅ ่ฝฝ PNG ไฝไธบ Sprite๏ผๅธฆๆ็ผๅญๅๅฏ้่ฐๆดๅคงๅฐ้้กนใ
Sprite? LoadSprite(this string path, Vector2? pivot = null, string? name = null, int resizeWidth = 0, int resizeHeight = 0);
var filePath = "X:/someimage.png";
var sprite = filePath.LoadSprite(name: "SpriteNewName", resizeWidth: 900, resizeHeight: 600);
้ป่ฎคๆ
ๅตไธ๏ผ่ฝดๅฟไฝไบไธญๅฟ๏ผ0.5, 0.5
๏ผ๏ผไธๆไพ name
ๅๆฐๆถ๏ผSprite ๅ็งฐๅฐไฝฟ็จๅ
้จ็ผๅญๅ็งฐใๅฆๆ resizeWidth
ๅ/ๆ resizeHeight
ไธไธบ 0
๏ผๅ Sprite ๅฐ่ขซ่ฐๆด่ณๆๅฎๅคงๅฐใ
SpriteReplacerHelper
โ
็จไบๅฟซ้ๅๆธธๆๅ
SpriteSheet
ๆทปๅ ่ดดๅพๅ๏ผๅนถๅธฆๆๅฏ้่ฐๆดๅคงๅฐ้้กนใ
// file at "X:/someimage_alt.png"
SpriteReplacerHelper.AppendSpriteSheet("someimage_alt", 32, 32);
ๅ จๅฑไธญๆจๅบๅฝไธบๅ่ดดๅพๅช่ฐ็จ่ฏฅๆนๆณไธๆฌก๏ผไธ้จๅๆบ่กจ็่ดดๅพ็ฑ CWL ่ชๅจๆทปๅ ใ
ChildrenIterator
โ
ๅธฎๅฉๆฅๆพๅ ทๆๅ็งฐ็ GameObject ็ๅตๅฅๅญๅฏน่ฑกใๅ่ฎพไฝ ๆณๆพๅฐๅคๅ้กต้ข็ๅธๅฑ็ป้ขๆฟไธญๅ่กจๅ ็ด ็ๆๆฌๅฏน่ฑก๏ผไฝ ๅฏไปฅ่ฟๆ ทๅ๏ผ
var text = page.transform.GetFirstNestedChildWithName("Content View/Scroll View/Viewport/Content/Profile List/Entry (1)/text");
ๅฏนไบ้ๅตๅฅ่ฎฟ้ฎ๏ผไฝฟ็จ GetFirstChildWithName
ใ
ๅฆๆๆชๆพๅฐ๏ผๅ่ฟๅ null
ใ
ๅ ถไปๅ ๅฎน โ
ไธไบไฝ ๅฏ่ฝไธ้่ฆ็ๅ ๅฎน๏ผ