이게 무슨말인가 이해가 안가서 챗지피티쟝에게 물어봤는데...이거 말한거 맞음?? 설마 뭔가 대단한게 더있는것인가?!
이것만해도 어마무시하게 도움이 되긴하는데 글쓴이의 의도를 100%이해 못한것 같아서 질문함
public interface IDamageable
{ void TakeDamage(int amount); } public class Enemy : MonoBehaviour, IDamageable { public void TakeDamage(int amount) { Debug.Log($"Enemy took {amount} damage!"); } } public class Player : MonoBehaviour, IDamageable { public void TakeDamage(int amount) { Debug.Log($"Player took {amount} damage!"); } } public class DamageManager : MonoBehaviour { public void ApplyDamage<T>(GameObject target, int damage) where T : class { if (target.TryGetComponent<T>(out var component)) { if (component is IDamageable damageable) { damageable.TakeDamage(damage); } else { Debug.Log($"Component found but does not implement IDamageable."); } } else { Debug.Log($"Target does not have a component of type {typeof(T).Name}."); } } } public class GameManager : MonoBehaviour { public DamageManager damageManager; void Start() { GameObject enemy = new GameObject("Enemy"); enemy.AddComponent<Enemy>(); GameObject player = new GameObject("Player"); player.AddComponent<Player>(); damageManager.ApplyDamage<Enemy>(enemy, 50); damageManager.ApplyDamage<Player>(player, 30); }}
지피티쨩 제네릭까지 쓰까서 만들어줬네... 근데 저 얘긴 아니고 GetComp~~ <IDamageable> 된다는 거였음
하....이걸몰라서 스파게티 제조기로 허송세월한 시간을 생각하니 급 술이 땡기는 ㅠㅠ 그렇지 않아도 언제 날잡아서 고수님들 어떻게 처리하는지 장문의 질문을 올리려고 생각하고 있었는데 단 2줄로 해결해주시네요. 감사합니다. 대박나셔요!!
ㄹㅇ 은근 get component << 이새끼 잠재력있음 재밌는거같음