public class HealthModifier
{
ย ย public int Magnitude { get; set; }
ย ย public ModifierOperationType ModifierType { get; set; }
ย ย public object Source { get; set; }
ย ย public bool IsCriticalHit { get; set; }
ย ย public GameObject Instigator { get; set; }
}
// ๊ฐ์ฒด ์ด๊ธฐ์ ์ฌ์ฉ
var healthModifier = new HealthModifier
{
ย ย Magnitude = -finalDamage,
ย ย ModifierType = ModifierOperationType.Additive,
ย ย Source = rawDamage.GetSource(),
ย ย IsCriticalHit = rawDamage.GetIsCriticalHit(),
ย ย Instigator = rawDamage.GetInstigator()
};
---
์ด๋ ๊ฒ ํ๋ ํ๋กํผํฐ๋ฅผ ๊ฒํฐ ์ธํฐ ์ฐ๋ฉด ๊ฐ์ฒด ์ด๊ธฐ์๋ฅผ ์ธ ์ ์์.
๊ทผ๋ฐ ๊ฒํฐ ์ธํฐ๋ก ์บก์ํํ๋ฉด
public class HealthModifier
{
ย ย private int magnitude;
ย ย private ModifierOperationType type;
ย ย private object source;
ย ย private bool isCriticalHit;
ย ย private GameObject instigator;
ย ย public void SetMagnitude(int value) { magnitude = value; }
ย ย public void SetModifierType(ModifierOperationType value) { type = value; }
ย ย public void SetSource(object value) { source = value; }
ย ย public void SetIsCriticalHit(bool value) { isCriticalHit = value; }
ย ย public void SetInstigator(GameObject value) { instigator = value; }
}
// ๊ฐ์ฒด ์ด๊ธฐ์ ์ฌ์ฉ ๋ถ๊ฐ, ๋ฐ๋ผ์ ์๋์ ๊ฐ์ด ์ด๊ธฐํ
var healthModifier = new HealthModifier();
healthModifier.SetMagnitude(-finalDamage);
healthModifier.SetModifierType(ModifierOperationType.Additive);
healthModifier.SetSource(rawDamage.GetSource());
healthModifier.SetIsCriticalHit(rawDamage.GetIsCriticalHit());
healthModifier.SetInstigator(rawDamage.GetInstigator());
-
์ด๋ ๊ฒ ๋๋ค
C#์ด ์ด๋ฐ๊ฑฐ๋ณด๋ฉด ์ฐธ ์ธ๊ฐ ํธ์์ ์ธ ๊ธฐ๋ฅ์ด ๋ง๋จ ์๊ฐ์ด ๋ ๋ค.
๋ค๋ง ๋์ ๊ฒฝ์ฐ ๊ฒํฐ ์ธํฐ๋ ๋ฉ์๋ ๋ฐฉ์์ ์ ํธํด์ ๊ทธ๋ฐ๊ฐ C#์ ํธํ์ ์ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ด ํธํ๋จ ๊ฑฐ ๋ง๊ณ ๋ ๋ชจ๋ฅด๊ฒ ๋ค
HealthModifier ์ ์ธ์ ๊ทธ๋ฅ public ๋ฉค๋ฒ๋ก ์ ์ธํ๊ณ ์ฌ์ฉํ๋ฉด ์๋๋ ์ด์ ๊ฐ ์์??
https://gdl.space/gonebunuli.cpp
๋๊ฐ์ ๊ฑ ์ด๋ ๊ฒ ์ธ๋ฏ.
์ค ์ด๊ฒ๋ ๊ด์ฐฎ๋ค
private ๋ฉค๋ฒ๋ ์ ๋ฐ ์์ ์ธ๋๋ฐ ์ข ๋ถํ!
๊ทธ์น๋ง ๋น๋ ํจํด์ด ๊ฐ์ง๋๋๊ฑธ - dc App