π§ ν΄λμ€μ λͺ©μ
CharacterStat
ν΄λμ€λ μ΄λ¦ κ·Έλλ‘ μΊλ¦ν°μ μ€ν―, μ¦ λ₯λ ₯μΉ μ λ°μ λ΄λΉνλ ν΄λμ€μ
λλ€.
곡격λ ₯, λ°©μ΄λ ₯, 체λ ₯, λ§λ ₯, μ΄λμλ, 곡격μλ, μμ± μ νλ ₯κΉμ§ λ€μν κ°μ κ΄λ¦¬νκ³ μμΌλ©°, μ΄λ¬ν μ€ν―μ μ₯λΉλ λ²ν, νΉμ μ€ν¬λ¦½ν°λΈ μ€λΈμ νΈ κΈ°λ°μ ν μ΄λΈ λ°μ΄ν°λ₯Ό ν΅ν΄ μ€μκ°μΌλ‘ λ³λλ μ μμ΅λλ€.
π§ κΈ°λ³Έ ꡬμ±
CharacterStat
ν΄λμ€λ MonoBehaviour
λ₯Ό μμλ°μ Unity μ»΄ν¬λνΈλ‘ μλνλ©°, λ΄λΆμ μΌλ‘λ λ€μκ³Ό κ°μ λ©€λ²λ€μ ν¬ν¨νκ³ μμ΅λλ€.
κΈ°λ³Έ μ€ν― (Base Values)
BaseAtk
, BaseHp
, BaseMoveSpeed
λ±, ν
μ΄λΈμμ λ°μμ€λ κ³ μ κ°λ€μ΄λ©°, μΊλ¦ν°μ κΈ°λ³Έ λ₯λ ₯μΉλ₯Ό μλ―Έν©λλ€.
μ΅μ’ μ€ν― (Total Values)
BehaviorSubject<long>
νμ
μ λ³μλ‘, Reactive λ°©μμΌλ‘ UIλ λ€λ₯Έ μμ€ν
κ³Ό μ°λλ©λλ€.
μ΄ Reactive μ²λ¦¬λ₯Ό μν΄ R3 ν¨ν€μ§λ₯Ό μ¬μ©νμμΌλ©°, μμΈν μ€λͺ
μ λ§ν¬λ₯Ό μ°Έκ³ λΆνλ립λλ€.
μλ₯Ό λ€μ΄, TotalHp
κ° λ°λλ©΄ 체λ ₯ UIκ° μλμΌλ‘ μ
λ°μ΄νΈλλλ‘ κ΅¬μ±λμ΄ μμ΅λλ€.
λ²ν λ° μμ΄ν ν¨κ³Ό μ²λ¦¬
μ₯λΉλ₯Ό μ₯μ°©νκ±°λ νΉμ λ²νλ₯Ό λ°μ λ, λ₯λ ₯μΉμ μ§μ μ μΈ μν₯μ μ£Όκ² λλλ°μ.
μ΄ ν΄λμ€λ νλ«(Flat) 보λμ€μ νΌμΌνΈ(%) 보λμ€λ₯Ό ꡬλΆνμ¬ μ μ₯νκ³ κ³μ°ν©λλ€.
π ν΅μ¬ λ©μλ
λ€μμ μμ£Ό μ¬μ©λλ μ£Όμ λ©μλμ λλ€:
SetBaseInfos()
β ν μ΄λΈμμ λ°μ κΈ°λ³Έ μ€ν―μ μ€μ ν©λλ€.
UpdateStatCache()
β μ₯μ°© μ€μΈ μμ΄ν μ 보λ₯Ό κΈ°λ°μΌλ‘ μ€ν―μ λ€μ κ³μ°ν©λλ€.
RecalculateStats()
β νμ¬μ λͺ¨λ 보λμ€λ₯Ό μ μ©ν μ΅μ’ μ€ν―μ κ³μ°ν©λλ€.
ApplyStatModifiers()
/ RemoveStatModifiers()
β νΉμ λ²νλ λλ²νμ λ°λ₯Έ λ₯λ ₯μΉ λ³κ²½μ μ μ©νκ±°λ μ κ±°ν©λλ€.
GetCurrentMoveSpeed()
β μ΄λμλλ₯Ό float
κ°μΌλ‘ λ°ννμ¬ μΊλ¦ν° 컨νΈλ‘€λ¬ λ±μμ νμ©ν μ μκ² ν©λλ€.
μ΄μ²λΌ CharacterStat
ν΄λμ€λ μΊλ¦ν° λ₯λ ₯μΉμ κΈ°λ°μ΄ λλ ν΅μ¬ μ»΄ν¬λνΈμ΄λ©°, κ²μ λ°Έλ°μ±, UI μ
λ°μ΄νΈ, μ ν¬ μμ€ν
λ± λ€μν κΈ°λ₯κ³Ό λ°μ νκ² μ°κ΄λμ΄ μμ΅λλ€.