Copyright ⓒ 2015 Unity Technologies Korea All rights reserved. All contents cannot be copied without permission
실전비법 개정판
본 교재의 저작권은 유니티테크놀로지스코리아가 소유하고 있으며,
유니티 러닝센터 수강생만 교재를 볼 수 있습니다. 정당한 권리 없이 저작물을 복제, 전송할 경우
그로 인하여 발생하는 손해를 배상하여야 함을 유념하시기 바랍니다.
본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.
 DataSource: ScriptableObject의 배열
LINQ
 LINQ의 사용
o필터링
Where
o정렬
OrderBy, OrderByDescending
ThenBy, ThenByDescending
본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.
weaponD
ata
armorData
skillData
ItemFactory
LINQ
Scrollview
Items
LINQ
본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.
 ItemData 클래스 - 베이스 클래스
 weaponData - 무기 타입의 아이템
 armorData - 방어구 타입의 아이템
 skillData - 기술 타입의 아이템
 각 아이템 데이터들은 ScriptableObject 형태로 로컬 파일에 저장
 실행시 serialization을 통해 메모리에 객체 배열로 생성
LINQ - ItemData 클래스
본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.
LINQ - Inventory 클래스
int[] items = {
1000, 1001, 1002, 1003, 2002, 2003,
2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015,
2016, 2017, 2018, 4014, 4015, 4016,
4017, 4018, 4019, 4020, 4021, 4022,
4023, 4024, 4025, 4026, 4027, 4028, 4029,
4030, 4031, 4032, 4033, 4034, 4035, 4036
};
 인벤토리 아이템: 정수형, 아이템 테이블의 ID 값을 저장
본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.
LINQ - InventoryFactory 클래스
 인벤토리의 아이템들에 해당하는 아이템들의 리스트를 얻어 오기 위해
사용하는 클래스
 ScritableObject의 배열에서 원하는 아이템들을 포함하는 리스트를
아이템 ID를 사용해서 얻어 온다.
본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.
LINQ - InventoryFactory 클래스
public List<ItemData> GetItems(int[] ids)
{
if (ids == null || ids.Length <= 0)
return null;
List<ItemData> items = new List<ItemData>();
var weaponIDs = ids.Where(x => x >= 1000 && x < 2000).ToList();
var armorIDs = ids.Where(x => x >= 2000 && x < 3000).ToList();
var skillIDs = ids.Where(x => x >= 4000 && x < 5000).ToList();
 아이템 ID로 타입에 따른 필터링
본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.
LINQ - InventoryFactory 클래스
var weaponResult = from w in weapons.dataArray
from n in weaponIDs
where w.ID == n
select w;
List<weaponData> wList = weaponResult.ToList();
foreach (weaponData w in wList)
{
items.Add(w);
}
 전체 무기 테이블에서 인벤토리에 저장된 아이템ID의 데이터만 필터링
본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.
LINQ - InventoryFactory 클래스
var weaponResult = from w in weapons.dataArray
from n in weaponIDs
where w.ID == n
orderby w.Price descending
select w;
List<weaponData> wList = weaponResult.ToList();
foreach (weaponData w in wList)
{
items.Add(w);
}
 만약 정렬이 필요하다면?
본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.
LINQ - UIInventory 클래스
itemList.Clear();
List<ItemData> items = ItemFactory.Instance.GetItems(inventory.GetWeapons());
foreach (ItemData i in items)
{
ItemInfo item = new ItemInfo();
item.sprName = (i as weaponData).Icon;
itemList.Add(item);
}
 리스트뷰 설정 및 리스트뷰 아이템 생성

More Related Content

PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PDF
A4.애니메이션
PDF
P4.맵 에디터 제작하기(2)
PDF
SVVR아카데미 3월 교육과정 소개
PDF
SVVR아카데미 4월과정 소개_0317
PDF
SVVR아카데미 7월과정 소개_0620
PDF
P5.적(enemy) 구현하기
Storytelling For The Web: Integrate Storytelling in your Design Process
2024 Trend Updates: What Really Works In SEO & Content Marketing
A4.애니메이션
P4.맵 에디터 제작하기(2)
SVVR아카데미 3월 교육과정 소개
SVVR아카데미 4월과정 소개_0317
SVVR아카데미 7월과정 소개_0620
P5.적(enemy) 구현하기
Ad

S2.linq

  • 1. Copyright ⓒ 2015 Unity Technologies Korea All rights reserved. All contents cannot be copied without permission 실전비법 개정판 본 교재의 저작권은 유니티테크놀로지스코리아가 소유하고 있으며, 유니티 러닝센터 수강생만 교재를 볼 수 있습니다. 정당한 권리 없이 저작물을 복제, 전송할 경우 그로 인하여 발생하는 손해를 배상하여야 함을 유념하시기 바랍니다.
  • 2. 본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.  DataSource: ScriptableObject의 배열 LINQ  LINQ의 사용 o필터링 Where o정렬 OrderBy, OrderByDescending ThenBy, ThenByDescending
  • 3. 본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다. weaponD ata armorData skillData ItemFactory LINQ Scrollview Items LINQ
  • 4. 본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다.  ItemData 클래스 - 베이스 클래스  weaponData - 무기 타입의 아이템  armorData - 방어구 타입의 아이템  skillData - 기술 타입의 아이템  각 아이템 데이터들은 ScriptableObject 형태로 로컬 파일에 저장  실행시 serialization을 통해 메모리에 객체 배열로 생성 LINQ - ItemData 클래스
  • 5. 본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다. LINQ - Inventory 클래스 int[] items = { 1000, 1001, 1002, 1003, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036 };  인벤토리 아이템: 정수형, 아이템 테이블의 ID 값을 저장
  • 6. 본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다. LINQ - InventoryFactory 클래스  인벤토리의 아이템들에 해당하는 아이템들의 리스트를 얻어 오기 위해 사용하는 클래스  ScritableObject의 배열에서 원하는 아이템들을 포함하는 리스트를 아이템 ID를 사용해서 얻어 온다.
  • 7. 본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다. LINQ - InventoryFactory 클래스 public List<ItemData> GetItems(int[] ids) { if (ids == null || ids.Length <= 0) return null; List<ItemData> items = new List<ItemData>(); var weaponIDs = ids.Where(x => x >= 1000 && x < 2000).ToList(); var armorIDs = ids.Where(x => x >= 2000 && x < 3000).ToList(); var skillIDs = ids.Where(x => x >= 4000 && x < 5000).ToList();  아이템 ID로 타입에 따른 필터링
  • 8. 본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다. LINQ - InventoryFactory 클래스 var weaponResult = from w in weapons.dataArray from n in weaponIDs where w.ID == n select w; List<weaponData> wList = weaponResult.ToList(); foreach (weaponData w in wList) { items.Add(w); }  전체 무기 테이블에서 인벤토리에 저장된 아이템ID의 데이터만 필터링
  • 9. 본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다. LINQ - InventoryFactory 클래스 var weaponResult = from w in weapons.dataArray from n in weaponIDs where w.ID == n orderby w.Price descending select w; List<weaponData> wList = weaponResult.ToList(); foreach (weaponData w in wList) { items.Add(w); }  만약 정렬이 필요하다면?
  • 10. 본 자료는 유니티 러닝센터 수강생을 위한 수업 교재로, 저작권은 유니티테크놀로지스코리아가 소유하고 있습니다. LINQ - UIInventory 클래스 itemList.Clear(); List<ItemData> items = ItemFactory.Instance.GetItems(inventory.GetWeapons()); foreach (ItemData i in items) { ItemInfo item = new ItemInfo(); item.sprName = (i as weaponData).Icon; itemList.Add(item); }  리스트뷰 설정 및 리스트뷰 아이템 생성