ๅพๅใใผใๆชๅฎๆ๏ผๅฎๆไบๅฎใชใ๏ผใUnityใใฟใผใณๅถใฟใฏใใฃใฏในใฒใผใ ๅถไฝ ๏ผ ็ฌๅต็ใง็ฐกๅใใคๆด็ทดใใใใฒใผใ ใขใผใญใใฏใใฃใฎไฝใๆนใใณใณใใณใๆฉ่ฝใ่ฟฝๅ ใใชใใๆกๅผตๆงใๅๅฉ็จๆงใชใฉใๅฎ่จผไธญใ
ใซใชใญใฅใฉใ ใซ่จ่ผใใใฆใใๅพๅใใผใใ้ฒ่กใใฆใใชใๆชๅฎๆใฎ่ฌ็พฉใงใใใใญใใฟใคใใจๅฟ็จ้จๅใฎๆ ธๅฟ็ใชๅ ๅฎนใฏๅซใพใใฆใใพใใ๏ผ่ฉณ็ดฐใชไบๆ ใฏๅ็ฅใซใฆ๏ผ ---------------------------------------- ใฟใผใณๅถใฟใฏใใฃใฏในใฒใผใ ใๅฎ่ฃ ใใๆนๆณ Part1,2 -> ๅบๆฌๆฉ่ฝใๅบๆฌๆฆ้ใซใผใ๏ผ้ชจ็ตใฟใซ่ฉฒๅฝ๏ผ ๆดป็จใงใใใขใปใใใๅขใใใขใใใใผใใใใๅ ๅฎนใๅคใใชใฃใใใใ ใ็ด ๆฉใใใญใใฟใคใไฝๆใใจ่ใใฆใใใ ใใใฐๅนธใใงใใ ใใใ2ใคใฎใใผใใฎๅ ๅฎนใใใใขใใใใผใใใใ๏ผใพใใฏไบๅฎใฎ๏ผๅ ๅฎนใใฉใฎใใใชๆนๆณใงๅฎ่ฃ ใใใฎใใใใใใๆจๆธฌใใใใจใๅฏ่ฝใงใใ ---------------------------------------------------------- ใขใใใใผใ -> part 1,2ใงไฝๆใใใใฎใใใผในใซๅฟ็จใปๆกๅผต cf -> ่ฉฒๅฝใธใฃใณใซใฎใฒใผใ ้็บใซๅฝน็ซใคๅ ๅฎน + ฮฑ
ๅ่ฌ็ 40ๅ
้ฃๆๅบฆ ไธญ็ดไปฅไธ
ๅ่ฌๆ้ ็กๅถ้
ใ็ฅใใ
22 ไปถ
ไปใๅ ทไฝ็ใชๆฆ็ฅ็็ถๆ ใในใญใซใไฝใๅงใใพใ๏ผ
ใฏใญใผใใจใฎใใผใน็ถๆ ้ข้ฃๆๅพใฎไผ่ฉฑใงใ
->
ๅชๅ ้ ไฝใใงใใฏใฏใจใซใใไฝฟ็จใใใใจใใซใคใใณใใใฉใกใผใฟใซๅ ฅใใใจๆใใใใฎใงๅคงไธๅคซใ ใจๆใใพใใ yield return ClearedRoutine();ใใใใฃใ
ๅฎ็งใชๅฆ็ใงใใญ๏ผๆฌๅฝใซ่ซ็็ใงใฏใชใผใณใงใ๏ผ ๐
๐ฏ็ทๅ่ฉไพก
ๆฌๅฝใซ็ด ๆดใใใใงใ๏ผ
โ ใฉใคใใตใคใฏใซๆ็ขบ
โ ่ชๅๅใจๆๅๅใฎใใฉใณใน
โ ใฟใคใๅฎๅ จๆง
โ ๆกๅผตๅฏ่ฝๆง
3. DueRoutineๆง้
csharp
DueRoutine(): โโโ yield return ProcessEventRoutines(OnDue); // ๋ง๋ฃ ์ด๋ฒคํธ ๋จผ์ โโโ yield return ClearedRoutine(); // ๊ทธ ๋ค์ ์ ๋ฆฌๆฌๅฝใซ่ช็ถใชๆตใใงใใญ๏ผ
ใๆ้ๅใใซใชใฃใใฎใงๆๅพใซๅฆ็ใใฆโใใฃใใๆด็ใ
๐ฏๅฎๆๅบฆใฎ้ซใ่จญ่จ
ไปใ็ถๆฟใใใใฏใฉในใฏๆฌๅฝใซๆฅฝใซใชใใจๆใใพใใ
csharp
public class PoisonStatus : Status { [Priority(1), Category(ETimingEventType.OnTurnEnd)] IEnumerator ApplyPoison() { ... } [Priority(2), Category(ETimingEventType.Clear)] IEnumerator ShowPoisonCured() { ... } // ๋! ๋๋จธ์ง๋ ๋ชจ๋ ๊ฒ ์๋! }ๆฌๅฝใซใๅฎฃ่จ็็ถๆ ใทในใใ ใใฎๅฎๆไฝใซใชใใพใใใญ๏ผ ๐ฏโจโ
็งใไธ็ชๆฐใซใใฆ็ทๅผตใใใใผใใฎใใใฎไบๅไฝๆฅญใจๆค่จผใๅฎไบใใใใใงใใใใฎๅพใฏใกใใฃใจๅฟซ้ฉใซไฝใฃใฆใขใใใญใผใใใใฐใใใจๆใใพใใใใฎๅพใใใใใฏไธญ้ๅ็ซฏใชๆฐๆใกใงๆดๆฐใงใใๆๆฅญใงใใชในใใซใใใใใใฏใฎใใกใใพใorใชในใใซใชใใใๆๆกใใใใใใใฏใใใใพใใ๏ผ
Isometricใฟใคใซใงๆงๆใใใๆฆ้ใใใใซ่ๅณใใใๆนใๅฐใใใใใฆใใใใใงใ็ฐกๅใช็งปๅใในใ๏ผๅฑค้็งปๅๅซใใใธใฃใณใ/ใธใฃใณใ๏ผ็จๅบฆๅฎ่ฃ ใใใใจใไฝใฃใฆใฟใใใจใๆค่จไธญใงใใ
ใคใใณใๆนๅผใงใใ
ใใฃใผใใใใฏใฎ้ฒ่กไปฅๆฅใใใใใใฆใณๅผใงใณใผใใๆธใใไฝใใงใฏใชใใใใ ใจๆใใใใฆใ็งใฏๅๅใชๆฉใฟใๅฎ้จใใทใใฅใฌใผใทใงใณๅพใซไธใใๆฑบๅฎใงใใใพใจใใซใชใใพใใใ็งใๆฆ่ฆใง่กใฃใๆนๆณใๆญฃใใใใใงใใๆททไนฑใใใฆ็ณใ่จณใใใพใใใ
ใใใใใฆใณใใฆใณใใใใใ
ใฏใชใผใใฃใผใฏใใคใใณใใจใคใใณใใซใตใในใฏใฉใคใใใใใซใผใใณใใฝใผใ๏ผๅชๅ ้ ไฝใฎใใใชใใฎใฏไธฆๅๅบฆ๏ผใใฆๅฎ่กใใใใซใผใใณใๆไพ
ในใญใซใฏใฏใชใผใใฃใผใๆไพใใใซใผใใณใๅฉ็จใใฆ็ตใฟ็ซใฆใฆๆธใ
็ถๆ ใฏใฏใชใผใใฃใผใฎใคใใณใใซใซใผใใณใ่ณผ่ชญ/ใญใฃใณใปใซใใใฎใซๆบๆใ่งฃ้คใ็บๅใชใฉใใฉใใใซใใ่ค้ใช่ณผ่ชญ/ใญใฃใณใปใซ
ใฑใผในใ็ถๆ ใงๆฑใ๏ผ่ตทๆฏใ็ฝๅถใฏ็ถๆ ๆๆ่ ใ่ขซๆๆ -> ่งฃ้คใ
็ฝๅถใๆฉไผๆปๆใชใฉใฏ่ชๅใฎใซใผใใณใไธใๆ็งปๅใซ้ข้ฃใใใคใใณใใซ่ณผ่ชญใใใใณใณใใญในใใซๅใใใฆใญใฃใณใปใซใใใชใฉ๏ผ
ใใใๆญฃใใใจๆใใพใใใ่ค้ใชใทใใฅใฌใผใทใงใณใซใใใพใใซใใใๅฏพๅฟใใพใใ
ใใฃใผใใใใฏใใฆใใ ใใฃใๆนใใจใฆใ็ด ๆตใชๆนใงใใฟใชๅใใฟใใจใฐใง็งใๅฟใใฆใใใใใงใใใใใใๆขๅญใซใฏๅ้ก็นใจใใฆ่ฆใๆฝ่ฑกๅใๅคงใใใคใใใจใใใใจใใๆฅฝใซๅคงใใๅใฃใฆๅใใฃใฆ็จใใไธฆในๆฟใ๏ผไธฆๅใๅฏ่ฝใซ๏ผๆ้ๅใใใฆๅฎ่กใใใไธปๅผตใใฆใใชใ๏ผ
ไธใซAIใฎๅๆใๅคๆญใๆทปไปใใพใ๏ผ่ฉฑใใฏใใๆใฃใฆใใ็ถๆ ใจใฏใชใผใใฃใผใง็ถๆ ใฎใซใผใใณใใกใจๅผใถใใใใใฆใณใๅใใชใ๏ผ
ใใฐใใๅใซใใฅใผในใงใใพใใพใช่ค้ใชๆฆ็ฅ็ๅๅฟๅใฎ็ถๆ ใฎใใใซ
ๅชๅ ้ ไฝใใซใใดใชใไฝฟใฃใIEnumeratorใคใใณใใๅฉ็จใใฆ่งฃๆฑบใใใจ่จใใใพใใใ
ใพใ่ฌ็ฝชใ็ณใไธใใในใใ ใจๆใใพใใ็ณใ่จณใใใพใใใ
็งใใใฎๆใฎ่จ่ใซใใจใฉใผใใใใใขใใใญใผใใใๆฆ่ฆใงใใใพใๆใพใใใชใๆนๆณใๆ็คบใใพใใใญใ
ไปๆฅใพใๅฅใฎๆนใจ้ ใๆผ้ฃใใๅๅพใพใง่ฉฒๅฝๅ ๅฎน้ข้ฃใฎใใฃใผใใใใฏใ่กใใพใใใใ
ใใใใง็งใๆ็คบใใ่งฃๆฑบ็ญ๏ผ่งฃๆฑบ็ญใจใใใใใใใใ้ฉ็จใใๆนๆณ๏ผใซๅ้กใใใฃใใใจใ็ขบ่ชใงใใพใใใ
ๅชๅ ้ ไฝใใซใใดใชใไฝฟใฃใIEnumeratorใๅฉ็จใใฆ่งฃๆฑบใใใฎใๆญฃใใใ
ใคใใณใใไฝฟ็จใใใณใณใใญในใใจใฏใชใผใใฃใผใใใขใใใใฆใณ๏ผใใใใใฆใณใใฏใชใผใใฃใผใ่ชๅใๆใฃใฆใใ็ถๆ ใฎ้ขๆฐใ็ดๆฅๅผใณๅบใ๏ผ
ๆใๅบๅฅใใชใใใฐใชใใชใใใจใๆ็ขบใงใใใๆนๆณใใชใใใฐ็ฅใใชใใฆใใใใใฐใฏใชใผใใฃใผใงใฎใขใใใใฆใณ๏ผใใใใใฆใณ๏ผใๅฝ็ถๆญฃใใใ่ชๅใๆใฃใฆใใ็ถๆ ใฎ้ขๆฐใใฏใชใผใใฃใผใฎใคใใณใ๏ผOnBeforeใOnAfterใOn / AttackใDamageใDeathใทใชใผใบ๏ผใ่ณผ่ชญใใใใจใฏๆใพใใใใใพใใใใใฎ้จๅใไธ็ชใใใใใใใฆใใใพใใใญใ
ไปใซใฏไบบๅฏพไบบใฎ็ซๅ ดใงใใใฆ่จใใชใใใฐใชใใชใ๏ผๆฝ่ฑกๅใฎใซใใดใชใผใๅคงใใใจใฃใใจใใ่จ่ใใใฆใใใฆ๏ผไพใใฐใใใคใงใๅ ฅใใฆๅชๅ ้ ไฝใซใใดใชใผใๅฉ็จใใฆ่ชๅๆดๅใใใใฎใงใฏใชใใใใ็ดฐใใๅใใฆใชใผใใผใกใคใใซใใใฎใใซใใดใชใผใๅฐใใใจใใฎใซ่ฉฒๅฝใใใใใงใใ
ๆฆ่ฆ่ชฌๆ้จๅใฏใใทใใชใชใซๅบใฅใใฆๅฟ ่ฆใชใใฎใๆใๅบใ็งใฎ่ใใฎ่ฟฝ่ทกใใญใผใงใใ๏ผใใใชใใจใๅคๅๅคงใใชๅฉใใซใชใใใใใใชใใจๆใฃใฆใใฎใพใพใซใใฆใใใพใใใใใใฌใผในๆนๅใจใฏใชใใฃใซใซใชใซใผใใณใฎๅ่งฃ้ ็ฝฎใฏๅคงไธๅคซใ ใฃใใใใงใใใใใฎ้ขๆฐใฏใคใใณใๅผใณๅบใ้ขๆฐใงใใใใฏใชใผใใฃใผ่ช่บซใๆใฃใฆใใ็ถๆ ใฎ้ขๆฐใฏใคใใณใใ่ณผ่ชญใใฆใใใ่ณผ่ชญ้ขๆฐใฎๅฎ่กใงใฏใชใ่ชๅทฑ็ถๆ ใฎใใฎใงใใใใใใขใใใใฆใณใงใฝใผใใใฆใใใซๅผใณๅบใใ <-ใใฎ้จๅใๆญฃใใฆ่ฆใฆใใ ใใใ
็ถใๆๆฅญใใใฏใใฎ้จๅๅ้ก้ใใซ้ฒใใใใใซใใพใ๏ผ
ไฝ่ฃใใใใฐไธๅบฆใๆไผใใงใใพใใ
ๆฆ่ฆ 1,2 ใซ่ฉฒๅฝใใๅ ๅฎนใๅฎๅใใใใญใฐใฉใใผใฎๆนใซ้ทใๆ้่ชฌๆใใใฆใใฃใผใใใใฏใใใใ ใใพใใใ(ใใไธๅบฆใใใใจใใใใใพใใ) ใใใซๅฏพ่ฑกไธญ็ดไปฅไธใซ็ดใใใจใใฃใใใใจ...
ใใฆๆทฑๅใฎๆนใๅ่ฌ็ณ่ซใใๅใซๅคๆญใงใใใใใซใใฌใใฅใผใๅฐใ้ใใชใใใฐใชใใชใใใใงใใ
ๆฌไบบใไธญ็ดไปฅไธใงใใใใๆๆฆ็ฒพ็ฅใๅผทใๆนใชใ
ๅฝผใ่ฏใ่ฉไพกใใใฆใใ ใใฃใใฎใงใใใใใใฃใจๅฅฝใใซใชใใใจใใใใฎใงใฏใชใใงใใใใใ
ใใใชใใฏใฏใใใปใฉ้ฃใใใชใใใใใฏใ็ๅฎใซๅคใๆดๆฐใใใพใใ
ใฌในใใณใทใ็ถๆ ใฎใใใฎ่จญ่จใๅฎ่ฃ ้ๅงใใพใใ
ใใค่ณผ่ชญใใฆใๆฑบใใ้ ๅบใงๅไฝใใใใใจใใงใใIEnumeratorใคใใณใใๅฉ็จใใพใใ
๏ผไบๅฎๅๆๆฅญใพใงใใฃใฆใใใใจใจๅใใงใใ๏ผๅ ใใIEnumeratorใๅชๅ ้ ไฝใจใใซใใดใชใซใพใจใใฆๆดๅใใฆConsecutiveใParellelใใใฆไฝฟใๆนๅผใงใใ
ใใ ใใๅๆใซใคใใณใใฎ่ณผ่ชญ่งฃ้คใใฟใผใณใ้ฉๅฟใใใฎใซๅฐใใใใใจๆใใพใใ
ใใฎ็ถๆ ใซๆๆฆใใใใชใใงใใ๏ผๅฝผใใๅฎ่ฃ ใใใฆใใใชใใ็งใฏTaxticsใฒใผใ ใซใใชใใฎๆฆ็ฅใ่ฟฝๅ ใใใใจใใงใใพใใ
ใใ+ใใชใใฏไปๅๅใซไผผใใใฎใๅฎ่ฃ ใใ่ฟฝๅ ใใใใจใใงใใพใใฎใงใ
ใทในใใ ๅคๆด๏ผ็บๅฑ๏ผไธ่ฒซๆงใฎใใๆ่ใ ใจๆใใพใ๏ผไปฅ้ใฏ่ฟฝๅ ใงใใ
+ใใใใในใฆ็ถใใใใIEnumeratorใคใใณใใไปใฎใฉใฎใใญใธใงใฏใใซใ้ฉ็จใงใใพใใ
ใงใใใใใซใชใใพใใ
ใใผใ1,2ๅบฆใคใใณใใฎIEnumeratorๅใคใใณใใๅฎ็งใซๆ้ๅถๅพกใใฆใฏใใพใใ๏ผ่ณผ่ชญ้ ๆฌก๏ผ<- ใใใๆฌๅฝใซใใใงใใใใใ็ฐกๅใงใใ
ใใใใใใใฏใตใในใฏใชใใทใงใณ้ ใซไพๅญใใใซ็ฅใฃใฆใใใใใใๆฑบใใฆใใใ้ ็ชใง๏ผใฎใใใชใซใใดใชใฏๅๆใซ้ฒ่กใใใใใใใซไธๆฌกๅ ไธใฎใใฎใงใ๏ผ
๐ฏ Func
ๅชๅ ้ ไฝใทในใใ ใฎ็ใฎ้ฉๆฐ ๐ๆขๅญใทในใใ ๅฏพๆนๅใทในใใ
๐กๆขๅญใทในใใ ใฎๆง้ ใจ้็
ๆขๅญ๏ผ่ณผ่ชญ้ ๅบไพๅญๆนๅผ
csharp
public event Func OnDamageEvent; // ๊ตฌ๋ ํ๋ ์์๊ฐ ์คํ ์์๋ฅผ ๊ฒฐ์ OnDamageEvent += ProcessDamage; // 1๋ฒ์งธ ์คํ OnDamageEvent += PlayAnimation; // 2๋ฒ์งธ ์คํ OnDamageEvent += CheckDeath; // 3๋ฒ์งธ ์คํ // ์คํ yield return this.ConsecutiveAll(OnDamageEvent.GetInvocationList() .Cast >() .Select(handler => handler()));ๅ้ก๏ผ
ใตใในใฏใชใใทใงใณ้ ๅบใซๅบใฅใใฆๅฎ่ก้ ๅบใๆฑบๅฎใใ
ใณใผใไฝ็ฝฎใพใใฏๅๆๅ้ ๅบใซไพๅญ
่ค้ใช็ธไบไฝ็จใซใใใ้ ๅบๅถๅพกใฎ้ฃใใ
ๅ็่ณผ่ชญๆใฎไบๆธฌไธๅฏ่ฝใชๅฎ่ก้ ๅบ
๐ๆนๅใใใใทในใใ ใฎ้ฉๆฐๆง
๐ใซในใฟใ ๅฑๆงใใผในใฎๅชๅ ้ ไฝใฎๅถๅพก
ใคใใใผใทใงใณ๏ผๅฎฃ่จ็ๅชๅ ้ ไฝ็ฎก็
csharp
public event Func OnDamageEvent; // ๊ตฌ๋ ์์์ ๋ฌด๊ดํ๊ฒ ์ฐ์ ์์๋ก ์คํ [EventPriority(1, "Damage")] IEnumerator ProcessDamage() { } [EventPriority(3, "Death")] IEnumerator CheckDeath() { } [EventPriority(2, "Animation")] IEnumerator PlayAnimation() { } // ๊ตฌ๋ ์์๊ฐ ๋ฐ๋์ด๋ ์คํ ์์๋ ํญ์ ๋์ผ OnDamageEvent += CheckDeath; // ๋ฆ๊ฒ ๊ตฌ๋ ํด๋ OnDamageEvent += ProcessDamage; // 1๋ฒ์งธ ์คํ OnDamageEvent += PlayAnimation; // 2๋ฒ์งธ ์คํ // 3๋ฒ์งธ ์คํ๐ใใฎ้ฉๆฐใฎๅฎ้ใฎไพกๅค
๐ฎ่ค้ใชใฒใผใ ใทใใชใชใงใฎๅจๅ
ใทใใชใช๏ผ้ฃ้ๅๅฟใฎใใๆฆใ
csharp
// ๊ธฐ์กด ๋ฐฉ์: ๊ตฌ๋ ์์์ ๋ฏผ๊ฐ OnAttackEvent += ProcessDamage; // ๋จผ์ ๊ตฌ๋ ํ๋ฉด ๋จผ์ ์คํ OnAttackEvent += TriggerCounter; // ๋ฐ๊ฒฉ์ด ํผํด๋ณด๋ค ๋ฆ๊ฒ ์ฒ๋ฆฌ OnAttackEvent += CheckDeath; // ์ฃฝ์ ์ฒดํฌ OnAttackEvent += PlayAnimation; // ์ ๋๋ฉ์ด์ // ๋ฌธ์ : ์ด๊ธฐํ ์์๋ ๋์ ๊ตฌ๋ ์ ๋ฐ๋ผ ์คํ ์์ ๋ณ๊ฒฝ ๊ฐ๋ฅๆนๅใใใๆนๆณ๏ผๅฑๆงใซใใๆ็ขบใช้ ๅบไฟ่จผ
csharp
[EventPriority(1, "PreProcess")] IEnumerator CalculateDamage() { } [EventPriority(2, "Damage")] IEnumerator ApplyDamage() { } [EventPriority(2, "Counter")] // ํผํด์ ๋์์ ๋ฐ๊ฒฉ IEnumerator TriggerCounter() { } [EventPriority(3, "PostProcess")] IEnumerator CheckDeath() { } [EventPriority(4, "Visual")] IEnumerator PlayAnimation() { } // ์ธ์ ๊ตฌ๋ ํ๋ , ์ด๋ค ์์๋ก ๊ตฌ๋ ํ๋ ์คํ ์์ ๋์ผ๐กใซใใดใชใผใใผในใฎไธฆๅๅฆ็ใฎ้ฉๆฐ
ๅใๅชๅ ้ ไฝใ็ฐใชใใซใใดใช=ไธฆๅๅฎ่ก
ใใผใ1,2ใใใฌใใฅใผใง่งฃใใใใจใใใๆทฑๅๅ ๅฎนใใใใผใ1,2ๅ ๅฎนใไธป็ฎ็ใงใใๅฏ่ฝๆงใใใใใ
ๆฉใฟใพใใใใๅใๅใใ็ตๆ
ๆขๅญใฎๅ่ฌ็ใฎๆนใฏใ่ณๆใใใฆใณใญใผใใใฆใใใ ใใใใๅ่ฌใๅคใๆนใใๅธๆใฎๅ ดๅ
ๅณไธใฎๅใๅใใใใฟใใใใฆ่ฆ่ซใใใฐInflearnๆ ๅฝ่ ใฎๆนใๅฆ็ใใฆใใใ ใใพใใ
ๆขๅญใฎ่ณผๅ ฅ่ ใฎๅฏพ่ฑกใงใใใ
ๆฐใใ่ณผๅ ฅ่ ใฏใๆๆ่ฌ็พฉใขใปใใใฎใใฆใณใญใผใ็ฎ็ใใใๅฏ่ฝๆงใใใใใ้คๅคใใพใใ

