//character.currentHp는 property
public enum StatType { damage, currentHp }
tween = DOTween.To( () => character.currentHp, x => character.currentHp = x, character.currentHp + value, duration).SetLoops(loopCount, LoopType.Incremental);
///////////////////////////
var property = character.GetType().GetProperty(statType.ToString());
tween = DOTween.To( () => property, x => property = x, property + value, duration).SetLoops(loopCount, LoopType.Incremental);
위의 코드를 아래처럼 변경해서 사용하려고 하는데 문법을 잘 모르겠네요..
의도는 두트윈의 getter, setter, endValue 부분에서 프로퍼티 리플렉션을 사용하려는 건데 혹시 어떻게 해야할까요
---------------------------------------------------------------
해결했습니다
var propertyInfo = character.GetType().GetProperty(statType.ToString());
var statValue = (float)propertyInfo.GetValue(character);
tween = DOTween
.To( () => statValue,
x => propertyInfo.SetValue(character, x),
statValue+value,
duration)
// .From(statValue+value)
.SetLoops(loopCount, LoopType.Incremental)
.OnComplete(() =>
{
if(!statType.Equals(StatType.currentHp))
propertyInfo.SetValue(character, statValue);
});
흠.. 두트윈의 To기능이 어떤거라고 생각하시나요?