λΉμ£ΌμΌμ€νλμ€ λ·λ·νλ μμν¬ λλ λ·λ·μ½μ΄ νκ²½μμ RPGκ²μ λ‘μ§μ μ§€ λ
// λͺ¨λ λ°©λ€μ λΆλͺ¨ ν΄λμ€
public abstract class Field /* μ λν°μ κ°λ©΄Β : MonoBehaviour λ₯Ό μμμν¨λ€ λ©λͺ¨*/
{
public virtual bool Locked { get; set; }Β = false;
}
λΌλ ν΄λμ€λ₯Ό λ§λ€μ΄ λκ³
public abstract class Building : Field
{
}
λΌλ μμ ν΄λμ€λ₯Ό μμ±νκ³
public class MyBuilding : Building
{
public override bool Locked { get; set; } = true;
}
λΌλ μμ ν΄λμ€λ₯Ό μμ±νλ λ°©μμΌλ‘ μμ ꡬ쑰λ₯Ό 곡λΆνμ
κ·Έλ¦¬κ³ μ΄ ν΄λμ€ λμΉλ₯Ό μ λν°λ‘ κ·Έλλ‘ λ€κ³ μμ κ²μμ€λΈμ νΈμ μ»΄ν¬λνΈλ‘ μ¨λ¨ΉμΌλ €κ³ μλν¨
using TestGame;
public class MyBuilding : Field.Building.MyBuilding
κ²°κ³Ό :
The same field name is serialized multiple times in the class or its parent class. This is not supported: Base(MyBuilding) <IsLocked>k__BackingField
μ μ λΌ γ
μ±λ΄λ μ΄κ² μλλ μ΄μ κ° λκ°μ?
"μ§λ ¬ν μμ€ν μ΄ λ¬λΌμ κ·Έλμ. μμκ°μ²΄ μμ± μμ [SerializeField]λ₯Ό λΆμ΄μΈμ"
...μ§?λ ¬νλ μΈμ΄λΈ λ‘λν λ μ°λκ±° μλ?
μλ¬΄νΌ λͺ»μμλ€μλλ° μν€λλλ‘ ν¨
κ²°κ³Ό :
The same field name is serialized multiple times in the class or its parent class. This is not supported: Base(MyBuilding) <IsLocked>k__BackingField
μ λ μλΌ γ
μ±λ΄λ μλλλ°μ?
"μλλ©΄ μ‘°λΆλͺ¨μ virtual isLockedμ { get; set; }μ΄ μμ΄μ κ·Έλμ. μ΄κ±΄ μ§λ ¬ν λͺ»ν΄μ. setter μ§μ°μΈμ"
κ·ΈλΌ μ λ‘μ§μ λͺ»μ°λλ°μ... μλꡬνμμ± λ€ λ²λ¦¬κ³ private μ§μλ³μλ‘ λ§λ λ€μ GetIsLocked() SetIsLocked() λ©μλλ₯Ό μΌμΌμ΄ μμ±νλΌλ λ§μμ΄μ κ°μ?
"μ"
μ
λκ° κ΅μ₯ν μ¬κΈ°λΆνΈν¨
ν΄λΉ λκΈμ μμ λμμ΅λλ€.
μ κΉ κ°λΌμνκ³ μλ‘μ΄ ν΄λμ€λ₯Ό λ§λ€μ΄μ λ΄κ° μ΄ν΄ν λ°©μμ μμκ΅¬μ‘°λ‘ λͺ¨λΈμ λ§λ€μ΄μ λ€μ ν΄λ³΄λκΉ μ΄λ²μ λ¬Έμ κ° μμ κΈ°μ‘΄μ μμ±ν μ½λμ μ΄λκ°μ λ·λ·μμλ μΌλ¨ μλμ νμ§λ§ λͺ¨λ ΈλΉν€μ΄λΉμ΄μμ νΌλμ μΌμΌν€λ λ΄κ° λͺ¨λ₯΄λ λκ°κ° λ μλ λͺ¨μμ κΈ°μ‘΄μ μ°λ μ½λλμΉ λ²λ¦¬κ³ μλ‘ μ°κΈ°λ‘ ν¨
λΉ ν΄λμ€μ νλνλ μλ‘ λ³΅λΆνλ©΄μ μ΄λμ λ¬Έμ κ° μκΈ°λμ§λ₯Ό νμ ν΄λ³΄λ μκ°μ κ±°μ³μΌ λ κ±° κ°μλ° μ¬νΌ λ·λ· μ½μμ°½ νκ²½μμ μ μλνλκ² μ λν° λͺ¨λ ΈλΉν€μ΄λΉμ΄ μλμμ μ μλλμ§ μ§μμ΄ μκ³ λκ° λ¬Έμ μΈμ§ λͺ¨λ₯΄λ κ·Έλ₯ μ κΉ μ§μ¦μ΄ λ¬μ
μ΄ μλλ€ λ€μ보λκΉ μλλ€
μ»΄νμΌμ΄ λκ³ μνλ κ°μ΄ μΆλ ₯λλλΌλ λΉ¨κ°κ²½κ³ κ° λ¨λ©΄ μ΄κ±΄ λκ° λ¬Έμ κ° μλ€λκ±΄λ° μ΄μ κ±Έμλ§ λ¨κ³μΈ μμ λΌμ κ·Έλ₯ μμ΄ λ΅λ΅νλ€
μΈν°νμ΄μ€ μ¬μ©μ μ΄λ°
μ μΈκ³ μμ²λ§ μ λν° κ°λ°μλ€μ΄ μμꡬ쑰λ virtual, override μ°λ©΄ λΉ¨κ°λΆ λ¨λ λΌμ§κ°μ μμ§μ λ°₯μ€λ‘ μ°κ³ μλ건 μλκ±° μλ λ΄κ° λͺ¨λ₯΄λ λΆλΆμ λν΄ κ³΅λΆλ₯Ό νκ³ μΆμκ±°μ
κ·Έλ¬λκΉ κ·Έκ² μΈν°νμ΄μ€ μλκ° μΆμ΄μ
λ΄κ° μ΄λ³΄μλΌ μ΄ν΄κ° λΈλ¦΄μλ μλλ° κ·Έλ§μ μ¦ ν΄λμ€ μμμ μμ°κ³ μ λΆ μΈν°νμ΄μ€ μμλ§ ν΄μ ꡬννλ€λκ±°μ?
λͺ¨λ κ²½μ°λ₯Ό κ·Έλ κ² νμ§ μμ§λ§ λλΆλΆ μΈν°νμ΄μ€κ° κΉλνκ³ μ½λμ€λ³΅μ΄ λ¬Έμ λΌλ©΄ μ»΄νΌλνΈν¨ν΄μΌλ‘ μ²λ¦¬ (MonoBehavior μμμνκ³ λ©€λ²λ‘ μ§μ μμ±) μμμ λ¨μ μ΄ λ§μμ μ λ§ν΄μ μ¬μ©μνλ νΈ
κ·Έλ ꡬλ μ§μμ΄ λμλ€