¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¡¢Content ¤Î¥µ¥¤¥º¤¬³Æ ElementPlace Æâ¤ËÀ¸À®¤µ¤ì¤¿¥×¥ì¥Ï¥Ö¤Î¿ô¤Ë±þ¤¸¤ÆÊѹ¹¤È¤Ê¤ê¡¢
¤«¤Ä¡¢ScrollView ¤Î VerticalLayoutGroup Æâ¤Î°ÌÃÖ¤¬¼«Æ°¤Ç¹¹¿·¤µ¤ì¤Æ¡¢¼êÆ°¤ÇÀßÄꤷ¤¿¾ì¹ç¤ÈƱ¤¸µóÆ°¤Ë¤Ê¤Ã¤Æ¤¤¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£
¡¡½èÍý¤Î¥Ý¥¤¥ó¥È¤Ï UpdragePop Æâ¤Î°Ê²¼¤ÎÉôʬ¤Ç¤¹¡£
¤¦¤Þ¤¯¤¤¤«¤Ê¤¤¾ì¹ç¤Î½èÍý¤âÊ»¤»¤Æ½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤É¤Á¤é¤â»î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
/// <summary>
/// ½é´üÀßÄê
/// </summary>
public override void SetUp()
{
base.SetUp();
txtPurpleGemCount.text = GameData.instance.PurpleGemCount.ToString();
txtGoldGemCount.text = GameData.instance.GoldGemCount.ToString();
txtDiamondGemCount.text = GameData.instance.DiamondGemCount.ToString();
txtRubyGemCount.text = GameData.instance.RubyGemCount.ToString();
// ³Æ¥¸¥§¥à¤Î¹ØÆɽèÍý
GameData.instance.PurpleGemCount
.Subscribe(value => txtPurpleGemCount.text = Mathf.Clamp(value, 0, int.MaxValue).ToString())
.AddTo(this);
GameData.instance.GoldGemCount
.Subscribe(value => txtGoldGemCount.text = Mathf.Clamp(value, 0, int.MaxValue).ToString())
.AddTo(this);
GameData.instance.DiamondGemCount
.Subscribe(value => txtDiamondGemCount.text = Mathf.Clamp(value, 0, int.MaxValue).ToString())
.AddTo(this);
GameData.instance.RubyGemCount
.Subscribe(value => txtRubyGemCount.text = Mathf.Clamp(value, 0, int.MaxValue).ToString())
.AddTo(this);
// ¥²¡¼¥à¼Â¹ÔÃæ¤Ë¥¹¥¯¥ê¥×¥È¤«¤éLayoutGroupÆâ¤Ë»Ò¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¤ÆScrollViewÆâ¤Î¥µ¥¤¥º¤¬²ÄÊѤ¹¤ë¤ÈÀµ¤·¤¯É½¼¨¤µ¤ì¤Ê¤¤¤Î¤Ç¡¢°Ê²¼¤Î1¡¢2¡¢3¤Ç½¤Àµ (¤³¤ì¤ÏCanvas¤Î²èÌÌɽ¼¨¹¹¿·¤Î¥¿¥¤¥ß¥ó¥°¤ÈLayoutGroupÆâ¤Î¥µ¥¤¥ºÊѹ¹¤Î¥¿¥¤¥ß¥ó¥°¤¬¤º¤ì¤Æ¤¤¤ë¤¿¤á¤ËÀ¸¤¸¤ë)
//Canvas.ForceUpdateCanvases(); // 1.CanvasÆâ¤Îɽ¼¨¹¹¿·
// ¥¢¥Ã¥×¥°¥ì¡¼¥ÉÍ×ÁǤÎÀ¸À®¡£¼ïÎऴ¤È¤ËŬÀڤʾì½ê¤ËÀ¸À®¤¹¤ë
foreach (var data in upgradeDataSO.upgradeDataList)
{
Canvas.ForceUpdateCanvases(); // 1
switch (data.gemType)
{
case GemType.Purple:
var purpleElement = Instantiate(upgradeElementPrefab, purpleElementTran);
purpleElement.SetUp(data);
break;
case GemType.Gold:
var goldElement = Instantiate(upgradeElementPrefab, goldElementTran);
goldElement.SetUp(data);
break;
case GemType.Diamond:
var diamondElement = Instantiate(upgradeElementPrefab, diamondElementTran);
diamondElement.SetUp(data);
break;
case GemType.Ruby:
var rubyElement = Instantiate(upgradeElementPrefab, rubyElementTran);
rubyElement.SetUp(data);
break;
default:
Debug.Log("³ºÅö¤Î¥¢¥Ã¥×¥°¥ì¡¼¥ÉÍ×ÁǤ¬¸«¤Ä¤«¤ê¤Þ¤»¤ó");
break;
}
verticalLayoutGroup.CalculateLayoutInputVertical(); // 2
verticalLayoutGroup.SetLayoutVertical(); // 3
}
// 2.LayoutGroupÆâ¤ÎÆþÎÏÃͤòºÆ·×»»
//verticalLayoutGroup.CalculateLayoutInputVertical();
// 3.¥ì¥¤¥¢¥¦¥ÈºÆÀßÄê(ɽ¼¨¹¹¿·)
//verticalLayoutGroup.SetLayoutVertical();
}
¡¡¡¤Þ¤ººÇ½é¤Ë Canvas.ForceUpdateCanvases()¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢¥¥ã¥ó¥Ð¥¹¤È¤½¤Î»ÒÍ×ÁǤ¬¹¹¿·¤µ¤ì¤Þ¤¹¡£
Ä̾ï Canvas Æâ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Îɽ¼¨¹¹¿·¤Ï 1¥Õ¥ì¡¼¥à¤Þ¤¿¤°É¬Íפ¬¤¢¤ê¤Þ¤¹¤¬¡¢¤³¤Î¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¨ºÂ¤Ë¹¹¿·¤µ¤ì¤Þ¤¹¡£
¡¡¢verticalLayoutGroup.CalculateLayoutInputVertical()¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢¿âľÊý¸þ¤Î¥ì¥¤¥¢¥¦¥È¤ÎÆþÎϤ¬ºÆ·×»»¤µ¤ì¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢VerticalLayoutGroup Æâ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥¤¥º¤È¡¢¤½¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤Î¥µ¥¤¥º¤¬ºÆ·×»»¤µ¤ì¤Þ¤¹¡£
¡¡£ºÇ¸å¤Ë verticalLayoutGroup.SetLayoutVertical()¤¬¸Æ¤Ó½Ð¤µ¤ì¡¢¿âľÊý¸þ¤Î¥ì¥¤¥¢¥¦¥È¤¬ºÆÀßÄꤵ¤ì¡¢UIÍ×ÁǤ¬ÉÁ²è¤µ¤ì¤ë¹¹¿·¤¬¹Ô¤ï¤ì¤Þ¤¹¡£
¡¡°Ê¾å¤Î½èÍý¤ÎÆâÍƤˤè¤ê¡¢¤³¤Î½ç½ø¤Ç½èÍý¤ò¹Ô¤¦¤³¤È¤Ç¡¢UIÍ×ÁǤΥµ¥¤¥ºÊѹ¹¤¬Àµ¾ï¤Ë²èÌ̤ËÈ¿±Ç¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡ÆÃ¤Ë LayoutGroup ÍøÍÑ»þ¤Î ScrollView ¤Î¥µ¥¤¥ºÆ°Åª¤Ê¹¹¿·¤Ë¤ª¤¤¤Æ¤Ï¡¢¡¢£¤Î½èÍý¤È¡¢¤½¤Î¼Â¹Ô¤¹¤ë½çÈ֤Ⱦì½ê¤¬½ÅÍפǤ¹¡£
ScrollView ¤Ë¤Ï»Ò¥ª¥Ö¥¸¥§¥¯¥È¤¬¤¢¤ë¤¿¤á¡¢¤³¤Î½èÍý¤òŬÀڤʽçÈ֤Ǽ¹Ԥ¹¤ë¤³¤È¤Ë¤è¤ê¡¢LayoutGroup Æâ¤Î³Æ¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¤òưŪ¤Ë¼«Æ°Ä´À°¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£