void Test02() { items.Add(new C14_Item() { ItemType = C14_ItemType.Weapon, ItemRarity = C14_ItemRarity.Epic, name = "에픽 무기" }); items.Add(new C14_Item() { ItemType = C14_ItemType.Armor, ItemRarity = C14_ItemRarity.Unique, name = "유니크 방어구" }); items.Add(new C14_Item() { ItemType = C14_ItemType.Accessory, ItemRarity = C14_ItemRarity.Legendary, name = "레전더리 악세서리" }); C14_Item item = FindItem2((C14_Item i) => { return(i.ItemRarity == C14_ItemRarity.Legendary); }); Debug.Log($"레전더리 아이템 : {item.name}"); MyFunction <C14_Item, int> selector = (C14_Item i) => //여러 줄일 경우 중괄호를 펼쳐서 함수처럼 적을 수도 있다. { return((int)i.ItemType); //아이템 타입의 enum 값을 정수로 반환한다. }; //selector를 선언하는 명령문이므로, 중괄호 끝에 세미콜론을 빼먹지 말 것. Debug.Log($"무기 : { FindItem3(selector, 0).name}"); Debug.Log($"방어구 : { FindItem3(selector, 1).name}"); Debug.Log($"악세서리 : { FindItem3(selector, 2).name}"); // 각각을 탐색하는 함수를 일일이 만들 필요가 없어진다. items.Clear(); //테스트 실행 시마다 리스트를 추가하지 않도록 리스트를 비워준다. }
bool IsWeapon(C14_Item item) { return(item.ItemType == C14_ItemType.Weapon); }
bool IsUnique(C14_Item item) { return(item.ItemRarity == C14_ItemRarity.Unique); }