Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
¡¡¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤Ë SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÊ£¿ôÀ¸À®¤·¡¢CharaData ¥¯¥é¥¹¤Î¾ðÊó¤Ë´ð¤Å¤¤¤Æ¡¢°Û¤Ê¤ëÆâÍƤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¿¶¤ëÉñ¤ï¤»¤Þ¤¹¡£
À¸À®»þ¤Ë¤ÏºÇ½é¤ËÀ¸À®¤µ¤ì¤¿ SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò½é´üÃͤȤ·¤Æ¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤ËÀßÄꤷ¤Þ¤¹¡£
SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¿¥Ã¥×(¥¯¥ê¥Ã¥¯)¤¹¤ë¤È¡¢ÁªÂò¤·¤¿ SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Ë´ÉÍý¤·¤Æ¤¤¤ë CharaData ¥¯¥é¥¹¤Î¾ðÊó¤ò
¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤Îɽ¼¨¤ËÈ¿±Ç¤¹¤ëÀ©¸æ¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¤³¤Î¼ê½ç¤¬´°À®¤·¤¿¤é¡¢¼¡¤Î¼ê½ç¤Ç¡¢ÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤ò¥¿¥¤¥ë¥Þ¥Ã¥×¤ËÇÛÃÖ¤¹¤ë½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
''¡ã¼ÂÁõÆ°²è¡ä''
&ref(https://image01.seesaawiki.jp/i/o/i-school-memo/EcMIeEi5Vy.gif, 50%)
&video(https://image02.seesaawiki.jp/i/o/i-school-memo/miON0lb1yi.webm){600, 350}
¡¡°Ê²¼¤ÎÆâÍƤǼÂÁõ¤ò¿Ê¤á¤Æ¤¤¤¤Þ¤¹¡£
=|PERL|
||=
----
¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
=|PERL|
¡¡¡¦¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Ë¤è¤ë¥¯¥é¥¹¤ÎºîÀ®
¡¡¡¦¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î³èÍÑÊýË¡¡
¡¡¡¦for ʸ¤È Grid Layout Group ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤¿¥¤¥ó¥¹¥¿¥ó¥·¥¨¥¤¥È½èÍý¤Î¼ÂÁõÎã
||=
----
*£³£·¡¥DataBaseManager ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤǤ¤ë¾õÂ֤ˤ¹¤ë
**£±¡¥Àß·×
¡¡¤³¤Î¼ê½ç¤Ç¤Ï¡¢ÇÛÃÖ¤¹¤ë¥¥ã¥é¤òÁªÂò¤¹¤ë¥Ü¥¿¥ó¤Î¼«Æ°À¸À®¤Ë²Ã¤¨¤Æ¡¢''¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤ·¤Æ£±¤Ä¤Î¥×¥ì¥Õ¥¡¥Ö¤«¤é°Û¤Ê¤ë¥¥ã¥é¤ÎÇÛÃÖÍѤΥܥ¿¥ó¤òºî¤ê½Ð¤¹ÊýË¡''¤ò³Ø½¬¤·¤Æ¤¤¤¤Þ¤¹¡£
----
¡¡CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¨¥Í¥ß¡¼¤Î¥Ç¡¼¥¿¤òÅÐÏ¿¤·¤Þ¤·¤¿¡£
¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥¹¥¯¥ê¥×¥ÈÆâ¤ËƱ̾¤Î·¿Ì¾¤ÇÊÑ¿ô¤òºîÀ®¤¹¤ë¤³¤È¤ÇÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
''¡ã¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤǤ¤ë¾õÂ֤ˤ¹¤ë¡ä''
=|PERL|
public CharaDataSO charaDataSO;
||=
¡¡¾åµ¤Î¤è¤¦¤ËÊÑ¿ô¤È¤·¤ÆÀë¸À¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ÊÑ¿ô¤òÍøÍѤ·¤Æ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò¥²¡¼¥àÆâ¤ËÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡Àë¸À¤ÎÊýË¡¤Ï¾¤ÎÊÑ¿ô¤ÈÊѤï¤ê¤Þ¤»¤ó¡£¤Þ¤¿¡¢public ½¤¾þ»Ò¤Ë¤·¤ÆÀë¸À¤·¤Æ¤ª¤¯¤³¤È¤Ë¤è¤ê¡¢
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤êÅÐÏ¿¤¬½ÐÍè¤ë¾¡¢³°Éô¤Î¥¹¥¯¥ê¥×¥È¤«¤é¤â»²¾È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£¤³¤ì¤â¾¤ÎÊÑ¿ô¤ÈƱ¤¸¤Ç¤¹¡£
----
**£²¡¥DataBaseManager ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë
¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ïº£¸å¤âÁý¤¨¤Æ¤¤¤¯²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢ÆÃÄê¤Î¥¯¥é¥¹¤ËÀ찤ǴÉÍý¤ò¤µ¤»¤ë¤³¤È¤Ë¤è¤ê¡¢
¤¹¤Ù¤Æ¤Î½èÍý¤ò¤½¤Î¥¯¥é¥¹·Ðͳ¤Ç»²¾È¤¹¤ëÀ߷פˤ·¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¤Î¥¯¥é¥¹¤È¤·¤Æ DataBaseManager ¥¯¥é¥¹¤ò¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤È¤·¤ÆºîÀ®¤·¤Æ¤ª¤¤Þ¤¹¡£
DataBaseManager.cs
[+] <= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹
=|BOX|
using UnityEngine;
public class DataBaseManager : MonoBehaviour
{
public static DataBaseManager instance;
public CharaDataSO charaDataSO;
void Awake() {
if (instance == null) {
instance = this;
DontDestroyOnLoad(gameObject);
} else {
Destroy(gameObject);
}
}
}
||=
[END]
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
----
**£³¡¥¡ã¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Ë¤è¤ë¥¯¥é¥¹¤ÎºîÀ®¡ä
¡¡''¥·¥ó¥°¥ë¥È¥ó''¤È¤Ï¡¢¿ô¿¤¯¤¢¤ë''¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó''¤Î£±¤Ä¤Ç¤¹¡£
''¤½¤Î¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬É¬¤º£±¤Ä¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë''¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î¤³¤È¤ò¸À¤¤¤Þ¤¹¡£
¡¡DataBaseManager ¥¯¥é¥¹¤Ç¤Ï¡¢¤³¤Î¥·¥ó¥°¥ë¥È¥ó¤òºÎÍѤ·¤Æ¤¤¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢¥²¡¼¥àÃæ¤òÄ̤¸¤Æ¡¢¤³¤Î ''DataBaseManager ¥¯¥é¥¹¤¬£±¤Ä¤·¤«Â¸ºß¤Ç¤¤Ê¤¤''¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¼ÂÁõÎã¤ÏÊ£¿ô¤¢¤ê¤Þ¤¹¤¬¡¢°ìÈÖÆɤߤ䤹¤¤Êý¼°¤Çµ½Ò¤·¤Æ¤¤¤Þ¤¹¡£
----
''¡ã¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î¥¯¥é¥¹¤ÎºîÀ®ÊýË¡¡ä''
=|PERL|
public static DataBaseManager instance;¡¡¡¡// ¥¯¥é¥¹Ì¾¤ÈƱ̾¤Î·¿¤ò static ¤ÇÀë¸À¤¹¤ë
private void Awake() {
if (instance == null) {
instance = this;
DontDestroyOnLoad(gameObject);
} else {
Destroy(gameObject);
}
}
||=
----
¡¡¥Ý¥¤¥ó¥È¤Ï¡¢''¼«Ê¬¼«¿È¤Î DataBaseManager ·¿¤ò static ½¤¾þ»ÒÉÕ¤¤Î instance ÊÑ¿ô¤È¤·¤ÆÀë¸À¤·¤Æ¤¤¤ë''¤³¤È¤Ç¤¹¡£
¤³¤Î ''instance ÊÑ¿ô¤¬ DataBaseManager ¥¯¥é¥¹¼«¿È¤¬ÂåÆþ¤µ¤ì¤¿¾ðÊó¤È¤·¤ÆÍøÍѤ¹¤ë''¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Awake ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¡¢instance ÊÑ¿ô¤¬ null (¶õ¤Ã¤Ý) ¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢DataBaseManager ¥¯¥é¥¹(this)¤òÂåÆþ¤·¤Þ¤¹¡£
¼¡¤Î DontDestroyOnLoad ¥á¥½¥Ã¥É¤Ï Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ç¡¢°ú¿ô¤Ë»ØÄꤵ¤ì¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï''¥·¡¼¥óÁ«°Ü¤ò¤·¤Æ¤âÇ˲õ¤µ¤ì¤Æ¤Ê¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È''¤Ë¤Ê¤ê¤Þ¤¹¡£
¤³¤Î DontDestroyOnLoad ¥á¥½¥Ã¥É¤Ï¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Ë¤¹¤ëºÝ¤Ë''°ì½ï¤ËÍѤ¤¤é¤ì¤ë¤³¤È¤¬Â¿¤¤''¤Ç¤¹(¤³¤Î DontDestroyOnLoad ¥á¥½¥Ã¥Éµ¡Ç½¼«ÂΤϥ·¥ó¥°¥ë¥È¥ó¤Ø¤Î´ØÏ¢¤Ï¤¢¤ê¤Þ¤»¤ó)¡£
¡¡¤½¤·¤Æ instance ÊÑ¿ô¤¬ null ¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢¤Ä¤Þ¤ê¡¢£²¤ÄÌܰʹߤÎÊ£¿ô¤Î DataBaseManager ¥¯¥é¥¹¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤Î DataBaseManager ¥¯¥é¥¹¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò Destroy ¤·¤Þ¤¹¡£
¤³¤Î¼ê½ç¤Ë¤è¤ê¡¢''DataBaseManager ¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¾ï¤Ë¥Ò¥¨¥é¥ë¥¡¼¾å¤Ë£±¤Ä¤·¤«Â¸ºß¤·¤Ê¤¤¾õÂÖ¤òºî¤ê½Ð¤·¤Æ¤¤¤Þ¤¹''¡£
¡¡¤³¤Î¥·¥ó¥°¥ë¥È¥ó¤Ë¤è¤Ã¤Æ''¥¤¥ó¥¹¥¿¥ó¥¹¤¬£±¤Ä¤«À¸À®¤µ¤ì¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Þ¤¹''¤Î¤Ç¡¢
µÕÀâŪ¤Ë¹Í¤¨¤ë¤È¡¢¤³¤Î ''DataBaseManager ¥¯¥é¥¹¤Ø¤Î»²¾È¤Ï¡¢¤¤¤º¤ì¤Î¥¯¥é¥¹¤«¤é¤Ç¤¢¤Ã¤Æ¤âÊÑ¿ô¤ò²ð¤µ¤º¤Ë»²¾È¤ò¹Ô¤¨¤ë''¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
----
¡¡Î㤨¤Ð¡¢NonPlayerCharacter ¤È¤¤¤¦¥¯¥é¥¹¤¬¤¢¤ê¡¢¤½¤Î NonPlayerCharacter ¥¯¥é¥¹¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬£µ¤Ä¤¢¤Ã¤¿¾ì¹ç¡¢
¡Ö''¤É¤Î''¡×NonPlayerCharacter ¥¯¥é¥¹¤Ç¤¢¤ë¤«¤ò³ÎÄê¤Ç¤¤Ê¤¤¤È¡¢ÂоݤȤʤë NonPlayerCharacter ¥¯¥é¥¹¤Ø¤Ï»²¾È¤Ç¤¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢NonPlayerCharacter ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¡¢¤½¤ÎÊÑ¿ô¤Ø»²¾È¤·¤¿¤¤ NonPlayerCharacter ¥¯¥é¥¹¤òÂåÆþ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢
¤Ï¤¸¤á¤Æ NonPlayerCharacter ¥¯¥é¥¹¤Î¾ðÊó¤ò°·¤¦¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤¬¾ðÊó¤ò°·¤¦ºÝ¤Î´ðËÜŪ¤Ê½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤Ç¤¹¤¬¥·¥ó¥°¥ë¥È¥ó¤Ç¤¢¤ë DataBaseManager ¥¯¥é¥¹¤Î¾ì¹ç¤Ë¤Ï¡¢¤³¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¾ï¤Ë£±¤Ä¤·¤«¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¡Ö''¤É¤Î''¡×¤È¤¤¤¦»ØÄê¤ÎÉôʬ¤¬''ÉÔÍ×''¤Ë¤Ê¤ê¤Þ¤¹¡£¤è¤Ã¤Æ¥¯¥é¥¹¤ÎÆÃÄ꤬¤Ç¤¤Æ¤¤¤ë¤¿¤á¡¢''ÊÑ¿ô¤Ø¤ÎÂåÆþ¤¬ÉÔÍ×''¤Ë¤Ê¤ê¤Þ¤¹¡£
DataBaseManager ¤È¤¤¤¦»ØÄê¤Ï¤¹¤Ê¤ï¤Á¡¢¼«Æ°Åª¤Ë¤¿¤À£±¤Ä¤Î DataBaseManager ¥¯¥é¥¹¤Î»²¾È¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤¿¤á¤Ç¤¹¡£
¡¡¤³¤Îµ¡Ç½¤òÍøÍѤ·¤Æ DataBaseManager ¥¯¥é¥¹¤òºîÀ®¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤â»²¾È¤·¤ä¤¹¤¤À߷פˤ·¤Æ¤ª¤¤Þ¤¹¡£
----
**£´¡¥DataBaseManager ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢DataBaseManager ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤ÆÀßÄê¤ò¹Ô¤¦
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Î¶õ¤¤¤Æ¤¤¤ë¾ì½ê¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¡¢Create Empty ¤òÁªÂò¤·¤Þ¤¹¡£
¿·¤·¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ºîÀ®¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢Ì¾Á°¤ò DataBaseManager ¤ËÊѹ¹¤·¤Þ¤¹¡£
¡¡¤³¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡¢Àè¤Û¤ÉºîÀ®¤·¤¿ DataBaseManager ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Æ¤¯¤À¤µ¤¤¡£
''¥Ò¥¨¥é¥ë¥¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/hma7IOtpeN.png, 35%)
¡¡¥¢¥µ¥¤¥ó¾ðÊó¤¬É½¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Datas ¥Õ¥©¥ë¥ÀÆâ¤Ë¤¢¤ë CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È(¥¹¥¯¥ê¥×¥È¤Ç¤Ï¤Ê¤¤¥¢¥»¥Ã¥È¤ÎÊý)¤ò
¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤Ç¥²¡¼¥àÆâ¤Ç¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò»²¾È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
''¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/MejBviDTcD.png, 35%)
¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
----
*£³£¸¡¥PlacementCharaSelectPopUp ¥¹¥¯¥ê¥×¥È¤È CharaGenerator ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢DataBaseManager ¥¹¥¯¥ê¥×¥È¤«¤é¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤òÍøÍѤ·¤Æ SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀßÄꤹ¤ë
**£±¡¥Àß·×
¡¡DataBaseManager ¥¹¥¯¥ê¥×¥È¤Ë¥¥ã¥éÍѤΥǡ¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤ë CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÅÐÏ¿¤·¤Þ¤·¤¿¡£
¤³¤ì¤Ç¤³¤Î¾ðÊó¤ò¥²¡¼¥àÆâ¤Ë±¿ÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¤Î¤Ç¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤¢¤ë¥¥ã¥é¤Î¾ðÊ󷲤òÍøÍѤ·¤Æ¡¢¥¥ã¥é¤Î¥Ü¥¿¥ó¤ÎÀßÄê¤ò¹Ô¤¦½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¡¡¤³¤ì¤é¤Î¼ÂÁõ¤¬´°À®¤·¤¿¤é¡¢Á°²ó¤Î¼ê½ç¤Ç SelectCharaDetail ¥¹¥¯¥ê¥×¥ÈÆâ¤Ë¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤¢¤ë½èÍý¤Î¥³¥á¥ó¥È¥¢¥¦¥È¤ò²ò½ü¤·¤Þ¤¹¡£
----
**£²¡¥PlacementCharaSelectPopUp ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë
¡¡¥¥ã¥é¤Î¥Ü¥¿¥ó¤ò²¡¤¹¤¿¤Ó¤Ë¡¢¤½¤Î¥Ü¥¿¥ó¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë SelectCharaDetail ¥¯¥é¥¹Æâ¤Ç´ÉÍý¤·¤Æ¤¤¤ë CharaData ¥¯¥é¥¹¤Î¾ðÊó¤ò¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤ËÈ¿±Ç¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Þ¤¹¡£
À©¸æ¤¹¤ëµ¡Ç½¤¬Â¿¤¤¤¿¤á¡¢Â¿¤¯¤ÎÊÑ¿ô¤òÄɲ乤뤳¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ÊÑ¿ô̾¤È¥¢¥µ¥¤¥ó¤¹¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î̾¾Î¤òƱ¤¸¤Ë¤·¤Æ¤ª¤¯¤Èʬ¤«¤ê¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
PlacementCharaSelectPopUp.cs
[+]
=|BOX|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class PlacementCharaSelectPopUp : MonoBehaviour
{
[SerializeField]
private Button btnClosePopUp;
[SerializeField]
private Button btnChooseChara;
[SerializeField]
private CanvasGroup canvasGroup;
private CharaGenerator charaGenerator;
////* ¿·¤·¤¤ÊÑ¿ô¤ÎÀë¸À¤ò£±£°¤³Äɲà *////
¡¡¡¡// À©¸æ¤ò¹Ô¤¤¤¿¤¤³Æ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤ò¥¢¥µ¥¤¥ó¤¹¤ë¤¿¤á¤ÎÊÑ¿ô·²¤òÄɲ乤ë
[SerializeField]
private Image imgPickupChara;
[SerializeField]
private Text txtPickupCharaName;
[SerializeField]
private Text txtPickupCharaAttackPower;
[SerializeField]
private Text txtPickupCharaAttackRangeType;
[SerializeField]
private Text txtPickupCharaCost;
[SerializeField]
private Text txtPickupCharaMAxAttackCount;
[SerializeField]
private SelectCharaDetail selectCharaDetailPrefab;¡¡¡¡¡¡¡¡//¡¡¥¥ã¥é¤Î¥Ü¥¿¥óÍѤΥץì¥Õ¥¡¥Ö¤ò¥¢¥µ¥¤¥ó¤¹¤ë
[SerializeField]
private Transform selectCharaDetailTran;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡¥¥ã¥é¤Î¥Ü¥¿¥ó¤òÀ¸À®¤¹¤ë°ÌÃÖ¤ò¥¢¥µ¥¤¥ó¤¹¤ë
[SerializeField]
private List<SelectCharaDetail> selectCharaDetailsList = new List<SelectCharaDetail>();¡¡¡¡//¡¡À¸À®¤·¤¿¥¥ã¥é¤Î¥Ü¥¿¥ó¤ò´ÉÍý¤¹¤ë
private CharaData chooseCharaData;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡¸½ºßÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤Î¾ðÊó¤ò´ÉÍý¤¹¤ë
////* ¤³¤³¤Þ¤Ç *////
/// <summary>
/// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÀßÄê
/// </summary>
/// <param name="charaGenerator"></param>
/// <param name="haveCharaDataList"></param>
public void SetUpPlacementCharaSelectPopUp(CharaGenerator charaGenerator, List<CharaData> haveCharaDataList) { // <= ¡ù¡¡Âè2°ú¿ô¤òÄɲä·¤Þ¤¹
this.charaGenerator = charaGenerator;
// TODO ¾¤ËÀßÄê¹àÌܤ¬¤¢¤Ã¤¿¤éÄɲ乤ë
¡¡¡¡¡¡¡¡// °ìÅÙ¸«¤¨¤Ê¤¤¾õÂ֤ˤ¹¤ë
canvasGroup.alpha = 0;
// ³Æ¥Ü¥¿¥ó¤ÎÁàºî¤ò²¡¤»¤Ê¤¤¾õÂ֤ˤ¹¤ë
SwithcActivateButtons(false);
////* TODO ¤ò¼ÂÁõ¤¹¤ë *////
// ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥¥ã¥éʬ(°ú¿ô¤Ç¼õ¤±¼è¤Ã¤¿¾ðÊó)¤òÍøÍѤ·¤Æ
for (int i = 0; i < haveCharaDataList.Count; i++) {
¡¡¡¡¡¡¡¡¡¡¡¡// ¥Ü¥¿¥ó¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®
SelectCharaDetail selectCharaDetail = Instantiate(selectCharaDetailPrefab, selectCharaDetailTran, false);
¡¡¡¡¡¡¡¡¡¡¡¡// ¥Ü¥¿¥ó¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê(CharaData ¤òÀßÄꤹ¤ë)
selectCharaDetail.SetUpSelectCharaDetail(this, haveCharaDataList[i]);
¡¡¡¡¡¡¡¡¡¡¡¡// List ¤ËÄɲÃ
selectCharaDetailsList.Add(selectCharaDetail);
// ºÇ½é¤ËÀ¸À®¤·¤¿¥Ü¥¿¥ó¤Î¾ì¹ç
if (i == 0) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤È¤·¤Æ½é´üÃͤËÀßÄê
SetSelectCharaDetail(haveCharaDataList[i]);
}
}
////* ¤³¤³¤Þ¤Ç *////¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡// ³Æ¥Ü¥¿¥ó¤Ë¥á¥½¥Ã¥É¤òÅÐÏ¿
btnChooseChara.onClick.AddListener(OnClickSubmitChooseChara);
btnClosePopUp.onClick.AddListener(OnClickClosePopUp);
¡¡¡¡¡¡¡¡// ³Æ¥Ü¥¿¥ó¤ò²¡¤»¤ë¾õÂ֤ˤ¹¤ë
SwithcActivateButtons(true);
}
/// <summary>
/// ³Æ¥Ü¥¿¥ó¤Î¥¢¥¯¥Æ¥£¥Ö¾õÂÖ¤ÎÀÚ¤êÂؤ¨
/// </summary>
/// <param name="isSwitch"></param>
public void SwithcActivateButtons(bool isSwitch) {
btnChooseChara.interactable = isSwitch;
btnClosePopUp.interactable = isSwitch;
}
/// <summary>
/// ¥Ý¥Ã¥×¥¢¥Ã¥×¤Îɽ¼¨
/// </summary>
public void ShowPopUp() {
// TODO ³Æ¥¥ã¥é¤Î¥Ü¥¿¥ó¤ÎÀ©¸æ
¡¡¡¡¡¡¡¡// ¥Ý¥Ã¥×¥¢¥Ã¥×¤Îɽ¼¨
canvasGroup.DOFade(1.0f, 0.5f);
}
¡¡¡¡/// <summary>
/// ÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤òÇÛÃÖ¤¹¤ë¥Ü¥¿¥ó¤ò²¡¤·¤¿ºÝ¤Î½èÍý
/// </summary>
private void OnClickSubmitChooseChara() {
// TODO ¥³¥¹¥È¤Î»Ùʧ¤¤¤¬²Äǽ¤«ºÇ½ª³Îǧ
// TODO ÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤ÎÀ¸À®
// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÈóɽ¼¨
HidePopUp();
}
/// <summary>
/// ÇÛÃÖ¤ò»ß¤á¤ë¥Ü¥¿¥ó¤ò²¡¤·¤¿ºÝ¤Î½èÍý
/// </summary>
private void OnClickClosePopUp() {
// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÈóɽ¼¨
HidePopUp();
}
/// <summary>
/// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÈóɽ¼¨
/// </summary>
private void HidePopUp() {
// TODO ³Æ¥¥ã¥é¤Î¥Ü¥¿¥ó¤ÎÀ©¸æ
// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÈóɽ¼¨
canvasGroup.DOFade(0, 0.5f).OnComplete(() => charaGenerator.InactivatePlacementCharaSelectPopUp());
}
////* ¥á¥½¥Ã¥É¤ò£±¤ÄÄɲà *////¡¡¡¡¡¡
/// <summary>
/// ÁªÂò¤µ¤ì¤¿ SelectCharaDetail ¤Î¾ðÊó¤ò¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤Î¥Ô¥Ã¥¯¥¢¥Ã¥×¤Ëɽ¼¨¤¹¤ë
/// </summary>
/// <param name="charaData"></param>
public void SetSelectCharaDetail(CharaData charaData) {
chooseCharaData = charaData;
// ³ÆÃͤÎÀßÄê
imgPickupChara.sprite = charaData.charaSprite;
txtPickupCharaName.text = charaData.charaName;
txtPickupCharaAttackPower.text = charaData.attackPower.ToString();
txtPickupCharaAttackRangeType.text = charaData.attackRange.ToString();
txtPickupCharaCost.text = charaData.cost.ToString();
txtPickupCharaMAxAttackCount.text = charaData.maxAttackCount.ToString();
}
////* ¤³¤³¤Þ¤Ç *////¡¡¡¡¡¡
}
||=
[END]
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡Â³¤¤¤Æ¤Ï PlacementCharaSelectPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¤¤¿¤¤¤Î¤Ç¤¹¤¬¡¢
º£²ó¿·¤·¤¯ PlacementCharaSelectPopUp ¥¹¥¯¥ê¥×¥È¤Î SetUpPlacementCharaSelectPopUp ¥á¥½¥Ã¥É¤Î°ú¿ô¤òÄɲ䷤Ƥ¤¤ë¤¿¤á¡¢
¤½¤Î¸Æ¤Ó½Ð¤·Ì¿Î᤬½ñ¤¤¤Æ¤¢¤ë CharaGenerator ¥¹¥¯¥ê¥×¥È¦¤Ë¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢Àè¤Ë CharaGenerator ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤«¤é¡¢³ÆÊÑ¿ô¤Ë¥¢¥µ¥¤¥ó¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£
----
**£³¡¥CharaGenerator ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë
¡¡¥¥ã¥é¤òÀ¸À®¤¹¤ë¤¿¤á¤Î¾ðÊó¤ò List ¤ËÆþ¤ì¤Æ´ÉÍý¤ò¹Ô¤¦¤è¤¦¤Ë¡¢ÊÑ¿ô¤ÎÄɲäò¹Ô¤¤¤Þ¤¹¡£
¤³¤Á¤é¤Î List ¤Ë¤Ï¡¢DataBaseManager ¥¯¥é¥¹¤Ë¤¢¤ë CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¡¢¼ÂºÝ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë CharaData ¤ò¼è¤ê¹þ¤ß¡¢ÍøÍѤǤ¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤Î½èÍý¤â¥á¥½¥Ã¥É¤È¤·¤Æ½àÈ÷¤·¤Æ¤ª¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£½èÍýñ°Ì¤Ç¤Þ¤È¤á¤Æ¤¤¤¯¤³¤È¤ò³Ð¤¨¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¡¡TODO ¤Î½èÍý¤Î¼ÂÁõ¤ò¹Ô¤¤¤Ê¤¬¤é¡¢CharaData ¤òÈ¿±Ç¤·¤ÆÇÛÃÖÍѤΥ¥ã¥é¤Î¥Ç¡¼¥¿¤ò¥Ý¥Ã¥×¥¢¥Ã¥×¤Ø¤È°ú¿ô¤òÍøÍѤ·¤Æ¾ðÊó¤òÅϤ¹¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤Î½èÍý¤Ë¤è¤ê¡¢¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤Ç¥Ü¥¿¥óÍѤΥǡ¼¥¿¤Î¾ðÊó¤¬ÆϤ¯¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢³Æ¥Ü¥¿¥ó¤Î¾ðÊó¤Ë CharaData ¤ò£±¤Ä¤º¤ÄÈ¿±Ç¤µ¤»¤Æ¥Ü¥¿¥ó¤òÀ¸À®¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡½èÍý¤ÎÁ´ÂΤÎή¤ì¤òÇÄ°®¤·¤Ê¤¬¤é¼ÂÁõ¤ò¹Ô¤Ã¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
PlacementSelectCharaPopUp ¥¹¥¯¥ê¥×¥È¤È¤Î·Ò¤¬¤ê¤ò¤·¤Ã¤«¤ê¤ÈÍý²ò¤·¤Æ¤ª¤¯¤³¤È¤¬É¬Íפˤʤê¤Þ¤¹¡£
¡¡
CharaGenerator.cs
[+] <= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹¡£
=|BOX|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps;
public class CharaGenerator : MonoBehaviour
{
[SerializeField]
private GameObject charaPrefab;
[SerializeField]
private Grid grid; ¡¡¡¡¡¡¡¡// Base ¦¤Î Grid ¤ò»ØÄꤹ¤ë
[SerializeField]
private Tilemap tilemaps;¡¡¡¡¡¡// Walk ¦¤Î Tilemap ¤ò»ØÄꤹ¤ë
[SerializeField]
private PlacementCharaSelectPopUp placementCharaSelectPopUpPrefab;¡¡¡¡¡¡//¡¡PlacementCharaSelectPopUp ¥×¥ì¥Õ¥¡¥Ö¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥µ¥¤¥óÍÑ
[SerializeField]
private Transform canvasTran;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¡¡PlacementCharaSelectPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®°ÌÃÖ¤ÎÅÐÏ¿ÍÑ
////* ¿·¤·¤¤ÊÑ¿ô¤ÎÀë¸À¤ò£±¤ÄÄɲà *////
[SerializeField, Header("¥¥ã¥é¤Î¥Ç¡¼¥¿¥ê¥¹¥È")]
private List<CharaData> charaDatasList = new List<CharaData>();
////* ¤³¤³¤Þ¤Ç *////
private PlacementCharaSelectPopUp placementCharaSelectPopUp;¡¡¡¡¡¡¡¡¡¡¡¡//¡¡À¸À®¤µ¤ì¤¿ PlacementCharaSelectPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÂåÆþ¤¹¤ë¤¿¤á¤ÎÊÑ¿ô
private GameManager gameManager;
private Vector3Int gridPos;
void Update()
{
// TODO ÇÛÃ֤Ǥ¤ëºÇÂ祥ã¥é¿ô¤Ë㤷¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÇÛÃ֤Ǥ¤Ê¤¤
// ²èÌ̤ò¥¿¥Ã¥×(¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯)¤·¡¢¤«¤Ä¡¢ÇÛÃÖ¥¥ã¥é¥Ý¥Ã¥×¥¢¥Ã¥×¤¬Èóɽ¼¨¾õÂ֤ʤé
if (Input.GetMouseButtonDown(0) && !placementCharaSelectPopUp.gameObject.activeSelf) {
// ¥¿¥Ã¥×(¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯)¤Î°ÌÃÖ¤ò¼èÆÀ¤·¤Æ¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹¤·¡¢¤½¤ì¤ò¤µ¤é¤Ë¥¿¥¤¥ë¤Î¥»¥ëºÂɸ¤ËÊÑ´¹
gridPos = grid.WorldToCell(Camera.main.ScreenToWorldPoint(Input.mousePosition));
// ¥¿¥Ã¥×¤·¤¿°ÌÃ֤Υ¿¥¤¥ë¤Î¥³¥é¥¤¥À¡¼¤Î¾ðÊó¤ò³Îǧ¤·¡¢¤½¤ì¤¬ None ¤Ç¤¢¤ë¤Ê¤é
if (tilemaps.GetColliderType(gridPos) == Tile.ColliderType.None) {
// ÇÛÃÖ¥¥ã¥éÁªÂòÍѥݥåץ¢¥Ã¥×¤Îɽ¼¨
ActivatePlacementCharaSelectPopUp();
}
}
}
/// <summary>
/// ¥¥ã¥éÀ¸À®
/// </summary>
/// <param name="gridPos"></param>
private void CreateChara(Vector3Int gridPos) {
¡¡¡¡¡¡¡¡// ¥¿¥Ã¥×¤·¤¿°ÌÃ֤˥¥ã¥é¤òÀ¸À®¤·¤ÆÇÛÃÖ
GameObject chara = Instantiate(charaPrefab, gridPos, Quaternion.identity);
// ¥¥ã¥é¤Î°ÌÃÖ¤¬¥¿¥¤¥ë¤Îº¸²¼¤ò 0,0 ¤È¤·¤ÆÀ¸À®¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¥¿¥¤¥ë¤ÎÃæ±û¤Ë¤¯¤ë¤è¤¦¤Ë°ÌÃÖ¤òÄ´À°
chara.transform.position = new Vector2(chara.transform.position.x + 0.5f, chara.transform.position.y + 0.5f);
}
/// <summary>
/// ÀßÄê
/// </summary>
/// <param name="gameManager"></param>
/// <returns></returns>
public IEnumerator SetUpCharaGenerator(GameManager gameManager) {
this.gameManager = gameManager;
¡¡¡¡¡¡¡¡// TODO ¥¹¥Æ¡¼¥¸¤Î¥Ç¡¼¥¿¤ò¼èÆÀ
////* TODO ¤Î½èÍý¤ò¼ÂÁõ *////
// ¥¥ã¥é¤Î¥Ç¡¼¥¿¤ò¥ê¥¹¥È²½
CreateHaveCharaDatasList();
////* ¤³¤³¤Þ¤Ç *////
¡¡¡¡¡¡¡¡// ¥¥ã¥éÇÛÃÖÍѤΥݥåץ¢¥Ã¥×¤ÎÀ¸À®
yield return StartCoroutine(CreatePlacementCharaSelectPopUp());
}
/// <summary>
/// ÇÛÃÖ¥¥ã¥éÁªÂòÍѥݥåץ¢¥Ã¥×À¸À®
/// </summary>
/// <returns></returns>
private IEnumerator CreatePlacementCharaSelectPopUp() {
¡¡¡¡¡¡¡¡// ¥Ý¥Ã¥×¥¢¥Ã¥×¤òÀ¸À®
placementCharaSelectPopUp = Instantiate(placementCharaSelectPopUpPrefab, canvasTran, false);
////* TODO ¤Î½èÍý¤ò¼ÂÁõ *////
// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÀßÄê¡£¥¥ã¥éÀßÄêÍѤξðÊó¤âÅϤ¹
placementCharaSelectPopUp.SetUpPlacementCharaSelectPopUp(this, charaDatasList);¡¡¡¡//¡¡<=¡¡¡ù¡¡Âè2°ú¿ô¤òÄɲä·¤Þ¤¹
////* ¤³¤³¤Þ¤Ç *////
¡¡¡¡¡¡¡¡// ¥Ý¥Ã¥×¥¢¥Ã¥×¤òÈóɽ¼¨¤Ë¤¹¤ë
placementCharaSelectPopUp.gameObject.SetActive(false);
yield return null;
}
/// <summary>
/// ÇÛÃÖ¥¥ã¥éÁªÂòÍѤΥݥåץ¢¥Ã¥×¤Îɽ¼¨
/// </summary>
public void ActivatePlacementCharaSelectPopUp() {
// TODO ¥²¡¼¥à¤Î¿Ê¹Ô¾õÂÖ¤ò¥²¡¼¥àÄä»ß¤ËÊѹ¹
// TODO ¤¹¤Ù¤Æ¤ÎŨ¤Î°ÜÆ°¤ò°ì»þÄä»ß
// ÇÛÃÖ¥¥ã¥éÁªÂòÍѤΥݥåץ¢¥Ã¥×¤Îɽ¼¨
placementCharaSelectPopUp.gameObject.SetActive(true);
placementCharaSelectPopUp.ShowPopUp();
}
/// <summary>
/// ÇÛÃÖ¥¥ã¥éÁªÂòÍѤΥݥåץ¢¥Ã¥×¤ÎÈóɽ¼¨
/// </summary>
public void InactivatePlacementCharaSelectPopUp() {
¡¡¡¡¡¡¡¡// ÇÛÃÖ¥¥ã¥éÁªÂòÍѤΥݥåץ¢¥Ã¥×¤ÎÈóɽ¼¨
placementCharaSelectPopUp.gameObject.SetActive(false);
// TODO ¥²¡¼¥à¥ª¡¼¥Ð¡¼¤ä¥²¡¼¥à¥¯¥ê¥¢¤Ç¤Ï¤Ê¤¤¾ì¹ç
¡¡¡¡¡¡¡¡// TODO ¥²¡¼¥à¤Î¿Ê¹Ô¾õÂÖ¤ò¥×¥ì¥¤Ãæ¤ËÊѹ¹¤·¤Æ¡¢¥²¡¼¥àºÆ³«
¡¡¡¡¡¡¡¡// TODO ¤¹¤Ù¤Æ¤ÎŨ¤Î°ÜÆ°¤òºÆ³«
// TODO ¥«¥ì¥ó¥·¡¼¤Î²Ã»»½èÍý¤òºÆ³«
}
////* ¥á¥½¥Ã¥É¤ò£±¤ÄÄɲà *////
/// <summary>
/// ¥¥ã¥é¤Î¥Ç¡¼¥¿¤ò¥ê¥¹¥È²½
/// </summary>
private void CreateHaveCharaDatasList() {
¡¡¡¡¡¡¡¡// CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î CharaData ¤ò£±¤Ä¤º¤Ä¥ê¥¹¥È¤ËÄɲÃ
// TODO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤Ê¤¯¡¢¼ÂºÝ¤Ë¥×¥ì¥¤¥ä¡¼¤¬½ê»ý¤·¤Æ¤¤¤ë¥¥ã¥é¤ÎÈÖ¹æ¤ò¸µ¤Ë¥¥ã¥é¤Î¥Ç¡¼¥¿¤Î¥ê¥¹¥È¤òºîÀ®
for (int i = 0; i < DataBaseManager.instance.charaDataSO.charaDatasList.Count; i++) {
charaDatasList.Add(DataBaseManager.instance.charaDataSO.charaDatasList[i]);
}
}
////* ¤³¤³¤Þ¤Ç *////
}
||=
[END]
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é˺¤ì¤º¤Ë¥»¡¼¥Ö¤ò¤·¤Þ¤¹¡£
----
**£´¡¥CharaGenerator ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î³Îǧ¤ò¹Ô¤¦
¡¡¿·¤·¤¯Äɲä·¤¿ CharaDatasList ÊÑ¿ô¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£
Size ¤Ï 0 ¤Î¤Þ¤Þ¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¡£¥²¡¼¥à¤ò¼Â¹Ô¤·¤¿ºÝ¤Ë CreateHaveCharaDatasList() ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ
¤³¤Á¤é¤Ë CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î CharaData ¤¬½çÈÖ¤ËÅÐÏ¿¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
''¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/FbQ_wS0THX.png, 35%)
----
**£µ¡¥PlacementCharaSelectPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¦
¡¡¿·¤·¤¯Àë¸À¤·¤¿ÊÑ¿ô¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢´Ö°ã¤¨¤Ê¤¤¤è¤¦¤Ë¥¢¥µ¥¤¥ó¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î̾¾Î¤ÈÊÑ¿ô̾¤òƱ°ì¤Ë¤·¤Æ¤ª¤¯¤³¤È¤Ë¤è¤ê¡¢¥¢¥µ¥¤¥óÀè¤òʬ¤«¤ê¤ä¤¹¤¯¤Ç¤¡¢¤«¤Ä¡¢¥¢¥µ¥¤¥ó´Ö°ã¤¨¤òËɻߤ¹¤ë¤³¤È¤ËÌòΩ¤Á¤Þ¤¹¡£
¤½¤¦¤¤¤Ã¤¿Éôʬ¤â¹Í¤¨¤Ê¤¬¤é̾¾Î¤Ë¤Ä¤¤¤Æ¤Ï½àÈ÷¤·¤Æ¤¯¤À¤µ¤¤¡£
''¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/NqYPgjGJrf.png, 35%)
----
**£¶¡¥¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë
¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¤¿ºÝ¤Ë¡¢¤É¤Î½èÍý¤¬¡¢¤É¤Î¤è¤¦¤ËÆ°¤¤¤Æ¤¤¤ë¤³¤È¤Ç¡¢¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤Ë
ÇÛÃÖÍѤΥ¥ã¥é¤Î¥Ü¥¿¥ó¤¬Ê¤ó¤ÇÀ¸À®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«¤òʬ¤«¤Ã¤¿¾å¤Ç³Îǧ¤·¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£
¡¡CharaGenerator ¥¯¥é¥¹¤Î List ¤Ë¤Ï¡¢DataBaseManager ¥¯¥é¥¹¤Î CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¡¢
ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë CharaData ¤Î List ¤¬ºîÀ®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤³¤Î¾ðÊó¤ò¥Ý¥Ã¥×¥¢¥Ã¥×¤ËÅϤ¹¤³¤È¤Ë¤è¤ê¡¢¥Ý¥Ã¥×¥¢¥Ã¥×¤¬É½¼¨¤µ¤ì¤¿ºÝ¤Ë¡¢Æ±¤¸¥¥ã¥é¤Î¥Ü¥¿¥ó¤Ç¤¢¤ê¤Ê¤¬¤é¤â
°Û¤Ê¤ë²èÁü¤ä¾ðÊó¤ò»ý¤Ä¥Ü¥¿¥ó¤¬ List ¤Î¿ôʬ¤À¤±À¸À®¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ê¤Þ¤¹¡£
¡¡PlacementSelectCharaPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î Content ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ
SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Ê£¿ôÀ¸À®¤µ¤ì¤Æ¥Ü¥¿¥ó¤È¤·¤Æɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤â¥Ò¥¨¥é¥ë¥¡¼¤«¤é³Îǧ¤ò¤·¤Æ¤ª¤¯¤³¤È¤Ç
¥¹¥¯¥ê¥×¥È¤Î½èÍý¤òÍý²ò¤¹¤ë½õ¤±¤Ë¤Ê¤ê¤Þ¤¹¡£
''CharaGenerator ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/VXy9XkDoMC.png, 35%)
''¡ã¼ÂÁõÆ°²è¡ä''
&video(https://image02.seesaawiki.jp/i/o/i-school-memo/miON0lb1yi.webm){600, 350}
----
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡¼¡¤Ï¡¡''%%%[[¼ê½ç£²£²¡¡¡Ý¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤ÇÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤ÎÀ¸À®½èÍý¤Î¼ÂÁõ¡Ý>£²£Ä¥¿¥ï¡¼¥Ç¥£¥Õ¥§¥ó¥¹¡¡¼ê½ç£²£²]]%%%''¡¡¤Ç¤¹¡£
À¸À®»þ¤Ë¤ÏºÇ½é¤ËÀ¸À®¤µ¤ì¤¿ SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò½é´üÃͤȤ·¤Æ¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤ËÀßÄꤷ¤Þ¤¹¡£
SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¿¥Ã¥×(¥¯¥ê¥Ã¥¯)¤¹¤ë¤È¡¢ÁªÂò¤·¤¿ SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Ë´ÉÍý¤·¤Æ¤¤¤ë CharaData ¥¯¥é¥¹¤Î¾ðÊó¤ò
¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤Îɽ¼¨¤ËÈ¿±Ç¤¹¤ëÀ©¸æ¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¤³¤Î¼ê½ç¤¬´°À®¤·¤¿¤é¡¢¼¡¤Î¼ê½ç¤Ç¡¢ÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤ò¥¿¥¤¥ë¥Þ¥Ã¥×¤ËÇÛÃÖ¤¹¤ë½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
''¡ã¼ÂÁõÆ°²è¡ä''
&ref(https://image01.seesaawiki.jp/i/o/i-school-memo/EcMIeEi5Vy.gif, 50%)
&video(https://image02.seesaawiki.jp/i/o/i-school-memo/miON0lb1yi.webm){600, 350}
¡¡°Ê²¼¤ÎÆâÍƤǼÂÁõ¤ò¿Ê¤á¤Æ¤¤¤¤Þ¤¹¡£
=|PERL|
||=
----
¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
=|PERL|
¡¡¡¦¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Ë¤è¤ë¥¯¥é¥¹¤ÎºîÀ®
¡¡¡¦¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î³èÍÑÊýË¡¡
¡¡¡¦for ʸ¤È Grid Layout Group ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤¿¥¤¥ó¥¹¥¿¥ó¥·¥¨¥¤¥È½èÍý¤Î¼ÂÁõÎã
||=
----
*£³£·¡¥DataBaseManager ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤǤ¤ë¾õÂ֤ˤ¹¤ë
**£±¡¥Àß·×
¡¡¤³¤Î¼ê½ç¤Ç¤Ï¡¢ÇÛÃÖ¤¹¤ë¥¥ã¥é¤òÁªÂò¤¹¤ë¥Ü¥¿¥ó¤Î¼«Æ°À¸À®¤Ë²Ã¤¨¤Æ¡¢''¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤ·¤Æ£±¤Ä¤Î¥×¥ì¥Õ¥¡¥Ö¤«¤é°Û¤Ê¤ë¥¥ã¥é¤ÎÇÛÃÖÍѤΥܥ¿¥ó¤òºî¤ê½Ð¤¹ÊýË¡''¤ò³Ø½¬¤·¤Æ¤¤¤¤Þ¤¹¡£
----
¡¡CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¨¥Í¥ß¡¼¤Î¥Ç¡¼¥¿¤òÅÐÏ¿¤·¤Þ¤·¤¿¡£
¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¡¢¥¹¥¯¥ê¥×¥ÈÆâ¤ËƱ̾¤Î·¿Ì¾¤ÇÊÑ¿ô¤òºîÀ®¤¹¤ë¤³¤È¤ÇÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
''¡ã¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤǤ¤ë¾õÂ֤ˤ¹¤ë¡ä''
=|PERL|
public CharaDataSO charaDataSO;
||=
¡¡¾åµ¤Î¤è¤¦¤ËÊÑ¿ô¤È¤·¤ÆÀë¸À¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ÊÑ¿ô¤òÍøÍѤ·¤Æ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò¥²¡¼¥àÆâ¤ËÍøÍѤ¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡Àë¸À¤ÎÊýË¡¤Ï¾¤ÎÊÑ¿ô¤ÈÊѤï¤ê¤Þ¤»¤ó¡£¤Þ¤¿¡¢public ½¤¾þ»Ò¤Ë¤·¤ÆÀë¸À¤·¤Æ¤ª¤¯¤³¤È¤Ë¤è¤ê¡¢
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤êÅÐÏ¿¤¬½ÐÍè¤ë¾¡¢³°Éô¤Î¥¹¥¯¥ê¥×¥È¤«¤é¤â»²¾È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£¤³¤ì¤â¾¤ÎÊÑ¿ô¤ÈƱ¤¸¤Ç¤¹¡£
----
**£²¡¥DataBaseManager ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë
¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ïº£¸å¤âÁý¤¨¤Æ¤¤¤¯²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢ÆÃÄê¤Î¥¯¥é¥¹¤ËÀ찤ǴÉÍý¤ò¤µ¤»¤ë¤³¤È¤Ë¤è¤ê¡¢
¤¹¤Ù¤Æ¤Î½èÍý¤ò¤½¤Î¥¯¥é¥¹·Ðͳ¤Ç»²¾È¤¹¤ëÀ߷פˤ·¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¤Î¥¯¥é¥¹¤È¤·¤Æ DataBaseManager ¥¯¥é¥¹¤ò¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤È¤·¤ÆºîÀ®¤·¤Æ¤ª¤¤Þ¤¹¡£
DataBaseManager.cs
[+] <= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹
=|BOX|
using UnityEngine;
public class DataBaseManager : MonoBehaviour
{
public static DataBaseManager instance;
public CharaDataSO charaDataSO;
void Awake() {
if (instance == null) {
instance = this;
DontDestroyOnLoad(gameObject);
} else {
Destroy(gameObject);
}
}
}
||=
[END]
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
----
**£³¡¥¡ã¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Ë¤è¤ë¥¯¥é¥¹¤ÎºîÀ®¡ä
¡¡''¥·¥ó¥°¥ë¥È¥ó''¤È¤Ï¡¢¿ô¿¤¯¤¢¤ë''¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó''¤Î£±¤Ä¤Ç¤¹¡£
''¤½¤Î¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬É¬¤º£±¤Ä¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë''¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î¤³¤È¤ò¸À¤¤¤Þ¤¹¡£
¡¡DataBaseManager ¥¯¥é¥¹¤Ç¤Ï¡¢¤³¤Î¥·¥ó¥°¥ë¥È¥ó¤òºÎÍѤ·¤Æ¤¤¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢¥²¡¼¥àÃæ¤òÄ̤¸¤Æ¡¢¤³¤Î ''DataBaseManager ¥¯¥é¥¹¤¬£±¤Ä¤·¤«Â¸ºß¤Ç¤¤Ê¤¤''¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¼ÂÁõÎã¤ÏÊ£¿ô¤¢¤ê¤Þ¤¹¤¬¡¢°ìÈÖÆɤߤ䤹¤¤Êý¼°¤Çµ½Ò¤·¤Æ¤¤¤Þ¤¹¡£
----
''¡ã¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î¥¯¥é¥¹¤ÎºîÀ®ÊýË¡¡ä''
=|PERL|
public static DataBaseManager instance;¡¡¡¡// ¥¯¥é¥¹Ì¾¤ÈƱ̾¤Î·¿¤ò static ¤ÇÀë¸À¤¹¤ë
private void Awake() {
if (instance == null) {
instance = this;
DontDestroyOnLoad(gameObject);
} else {
Destroy(gameObject);
}
}
||=
----
¡¡¥Ý¥¤¥ó¥È¤Ï¡¢''¼«Ê¬¼«¿È¤Î DataBaseManager ·¿¤ò static ½¤¾þ»ÒÉÕ¤¤Î instance ÊÑ¿ô¤È¤·¤ÆÀë¸À¤·¤Æ¤¤¤ë''¤³¤È¤Ç¤¹¡£
¤³¤Î ''instance ÊÑ¿ô¤¬ DataBaseManager ¥¯¥é¥¹¼«¿È¤¬ÂåÆþ¤µ¤ì¤¿¾ðÊó¤È¤·¤ÆÍøÍѤ¹¤ë''¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Awake ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¡¢instance ÊÑ¿ô¤¬ null (¶õ¤Ã¤Ý) ¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢DataBaseManager ¥¯¥é¥¹(this)¤òÂåÆþ¤·¤Þ¤¹¡£
¼¡¤Î DontDestroyOnLoad ¥á¥½¥Ã¥É¤Ï Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ç¡¢°ú¿ô¤Ë»ØÄꤵ¤ì¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï''¥·¡¼¥óÁ«°Ü¤ò¤·¤Æ¤âÇ˲õ¤µ¤ì¤Æ¤Ê¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È''¤Ë¤Ê¤ê¤Þ¤¹¡£
¤³¤Î DontDestroyOnLoad ¥á¥½¥Ã¥É¤Ï¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Ë¤¹¤ëºÝ¤Ë''°ì½ï¤ËÍѤ¤¤é¤ì¤ë¤³¤È¤¬Â¿¤¤''¤Ç¤¹(¤³¤Î DontDestroyOnLoad ¥á¥½¥Ã¥Éµ¡Ç½¼«ÂΤϥ·¥ó¥°¥ë¥È¥ó¤Ø¤Î´ØÏ¢¤Ï¤¢¤ê¤Þ¤»¤ó)¡£
¡¡¤½¤·¤Æ instance ÊÑ¿ô¤¬ null ¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢¤Ä¤Þ¤ê¡¢£²¤ÄÌܰʹߤÎÊ£¿ô¤Î DataBaseManager ¥¯¥é¥¹¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤Î DataBaseManager ¥¯¥é¥¹¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò Destroy ¤·¤Þ¤¹¡£
¤³¤Î¼ê½ç¤Ë¤è¤ê¡¢''DataBaseManager ¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¾ï¤Ë¥Ò¥¨¥é¥ë¥¡¼¾å¤Ë£±¤Ä¤·¤«Â¸ºß¤·¤Ê¤¤¾õÂÖ¤òºî¤ê½Ð¤·¤Æ¤¤¤Þ¤¹''¡£
¡¡¤³¤Î¥·¥ó¥°¥ë¥È¥ó¤Ë¤è¤Ã¤Æ''¥¤¥ó¥¹¥¿¥ó¥¹¤¬£±¤Ä¤«À¸À®¤µ¤ì¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Þ¤¹''¤Î¤Ç¡¢
µÕÀâŪ¤Ë¹Í¤¨¤ë¤È¡¢¤³¤Î ''DataBaseManager ¥¯¥é¥¹¤Ø¤Î»²¾È¤Ï¡¢¤¤¤º¤ì¤Î¥¯¥é¥¹¤«¤é¤Ç¤¢¤Ã¤Æ¤âÊÑ¿ô¤ò²ð¤µ¤º¤Ë»²¾È¤ò¹Ô¤¨¤ë''¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
----
¡¡Î㤨¤Ð¡¢NonPlayerCharacter ¤È¤¤¤¦¥¯¥é¥¹¤¬¤¢¤ê¡¢¤½¤Î NonPlayerCharacter ¥¯¥é¥¹¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬£µ¤Ä¤¢¤Ã¤¿¾ì¹ç¡¢
¡Ö''¤É¤Î''¡×NonPlayerCharacter ¥¯¥é¥¹¤Ç¤¢¤ë¤«¤ò³ÎÄê¤Ç¤¤Ê¤¤¤È¡¢ÂоݤȤʤë NonPlayerCharacter ¥¯¥é¥¹¤Ø¤Ï»²¾È¤Ç¤¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢NonPlayerCharacter ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¡¢¤½¤ÎÊÑ¿ô¤Ø»²¾È¤·¤¿¤¤ NonPlayerCharacter ¥¯¥é¥¹¤òÂåÆþ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢
¤Ï¤¸¤á¤Æ NonPlayerCharacter ¥¯¥é¥¹¤Î¾ðÊó¤ò°·¤¦¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤¬¾ðÊó¤ò°·¤¦ºÝ¤Î´ðËÜŪ¤Ê½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤Ç¤¹¤¬¥·¥ó¥°¥ë¥È¥ó¤Ç¤¢¤ë DataBaseManager ¥¯¥é¥¹¤Î¾ì¹ç¤Ë¤Ï¡¢¤³¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¾ï¤Ë£±¤Ä¤·¤«¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¡Ö''¤É¤Î''¡×¤È¤¤¤¦»ØÄê¤ÎÉôʬ¤¬''ÉÔÍ×''¤Ë¤Ê¤ê¤Þ¤¹¡£¤è¤Ã¤Æ¥¯¥é¥¹¤ÎÆÃÄ꤬¤Ç¤¤Æ¤¤¤ë¤¿¤á¡¢''ÊÑ¿ô¤Ø¤ÎÂåÆþ¤¬ÉÔÍ×''¤Ë¤Ê¤ê¤Þ¤¹¡£
DataBaseManager ¤È¤¤¤¦»ØÄê¤Ï¤¹¤Ê¤ï¤Á¡¢¼«Æ°Åª¤Ë¤¿¤À£±¤Ä¤Î DataBaseManager ¥¯¥é¥¹¤Î»²¾È¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤¿¤á¤Ç¤¹¡£
¡¡¤³¤Îµ¡Ç½¤òÍøÍѤ·¤Æ DataBaseManager ¥¯¥é¥¹¤òºîÀ®¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤â»²¾È¤·¤ä¤¹¤¤À߷פˤ·¤Æ¤ª¤¤Þ¤¹¡£
----
**£´¡¥DataBaseManager ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢DataBaseManager ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤ÆÀßÄê¤ò¹Ô¤¦
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Î¶õ¤¤¤Æ¤¤¤ë¾ì½ê¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¡¢Create Empty ¤òÁªÂò¤·¤Þ¤¹¡£
¿·¤·¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ºîÀ®¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢Ì¾Á°¤ò DataBaseManager ¤ËÊѹ¹¤·¤Þ¤¹¡£
¡¡¤³¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡¢Àè¤Û¤ÉºîÀ®¤·¤¿ DataBaseManager ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Æ¤¯¤À¤µ¤¤¡£
''¥Ò¥¨¥é¥ë¥¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/hma7IOtpeN.png, 35%)
¡¡¥¢¥µ¥¤¥ó¾ðÊó¤¬É½¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Datas ¥Õ¥©¥ë¥ÀÆâ¤Ë¤¢¤ë CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È(¥¹¥¯¥ê¥×¥È¤Ç¤Ï¤Ê¤¤¥¢¥»¥Ã¥È¤ÎÊý)¤ò
¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤Ç¥²¡¼¥àÆâ¤Ç¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò»²¾È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
''¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/MejBviDTcD.png, 35%)
¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
----
*£³£¸¡¥PlacementCharaSelectPopUp ¥¹¥¯¥ê¥×¥È¤È CharaGenerator ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢DataBaseManager ¥¹¥¯¥ê¥×¥È¤«¤é¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤òÍøÍѤ·¤Æ SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀßÄꤹ¤ë
**£±¡¥Àß·×
¡¡DataBaseManager ¥¹¥¯¥ê¥×¥È¤Ë¥¥ã¥éÍѤΥǡ¼¥¿¥Ù¡¼¥¹¤Ç¤¢¤ë CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÅÐÏ¿¤·¤Þ¤·¤¿¡£
¤³¤ì¤Ç¤³¤Î¾ðÊó¤ò¥²¡¼¥àÆâ¤Ë±¿ÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¤Î¤Ç¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤¢¤ë¥¥ã¥é¤Î¾ðÊ󷲤òÍøÍѤ·¤Æ¡¢¥¥ã¥é¤Î¥Ü¥¿¥ó¤ÎÀßÄê¤ò¹Ô¤¦½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¡¡¤³¤ì¤é¤Î¼ÂÁõ¤¬´°À®¤·¤¿¤é¡¢Á°²ó¤Î¼ê½ç¤Ç SelectCharaDetail ¥¹¥¯¥ê¥×¥ÈÆâ¤Ë¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤¢¤ë½èÍý¤Î¥³¥á¥ó¥È¥¢¥¦¥È¤ò²ò½ü¤·¤Þ¤¹¡£
----
**£²¡¥PlacementCharaSelectPopUp ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë
¡¡¥¥ã¥é¤Î¥Ü¥¿¥ó¤ò²¡¤¹¤¿¤Ó¤Ë¡¢¤½¤Î¥Ü¥¿¥ó¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë SelectCharaDetail ¥¯¥é¥¹Æâ¤Ç´ÉÍý¤·¤Æ¤¤¤ë CharaData ¥¯¥é¥¹¤Î¾ðÊó¤ò¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤ËÈ¿±Ç¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Þ¤¹¡£
À©¸æ¤¹¤ëµ¡Ç½¤¬Â¿¤¤¤¿¤á¡¢Â¿¤¯¤ÎÊÑ¿ô¤òÄɲ乤뤳¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ÊÑ¿ô̾¤È¥¢¥µ¥¤¥ó¤¹¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î̾¾Î¤òƱ¤¸¤Ë¤·¤Æ¤ª¤¯¤Èʬ¤«¤ê¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
PlacementCharaSelectPopUp.cs
[+]
=|BOX|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class PlacementCharaSelectPopUp : MonoBehaviour
{
[SerializeField]
private Button btnClosePopUp;
[SerializeField]
private Button btnChooseChara;
[SerializeField]
private CanvasGroup canvasGroup;
private CharaGenerator charaGenerator;
////* ¿·¤·¤¤ÊÑ¿ô¤ÎÀë¸À¤ò£±£°¤³Äɲà *////
¡¡¡¡// À©¸æ¤ò¹Ô¤¤¤¿¤¤³Æ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤ò¥¢¥µ¥¤¥ó¤¹¤ë¤¿¤á¤ÎÊÑ¿ô·²¤òÄɲ乤ë
[SerializeField]
private Image imgPickupChara;
[SerializeField]
private Text txtPickupCharaName;
[SerializeField]
private Text txtPickupCharaAttackPower;
[SerializeField]
private Text txtPickupCharaAttackRangeType;
[SerializeField]
private Text txtPickupCharaCost;
[SerializeField]
private Text txtPickupCharaMAxAttackCount;
[SerializeField]
private SelectCharaDetail selectCharaDetailPrefab;¡¡¡¡¡¡¡¡//¡¡¥¥ã¥é¤Î¥Ü¥¿¥óÍѤΥץì¥Õ¥¡¥Ö¤ò¥¢¥µ¥¤¥ó¤¹¤ë
[SerializeField]
private Transform selectCharaDetailTran;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡¥¥ã¥é¤Î¥Ü¥¿¥ó¤òÀ¸À®¤¹¤ë°ÌÃÖ¤ò¥¢¥µ¥¤¥ó¤¹¤ë
[SerializeField]
private List<SelectCharaDetail> selectCharaDetailsList = new List<SelectCharaDetail>();¡¡¡¡//¡¡À¸À®¤·¤¿¥¥ã¥é¤Î¥Ü¥¿¥ó¤ò´ÉÍý¤¹¤ë
private CharaData chooseCharaData;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¡¡¸½ºßÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤Î¾ðÊó¤ò´ÉÍý¤¹¤ë
////* ¤³¤³¤Þ¤Ç *////
/// <summary>
/// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÀßÄê
/// </summary>
/// <param name="charaGenerator"></param>
/// <param name="haveCharaDataList"></param>
public void SetUpPlacementCharaSelectPopUp(CharaGenerator charaGenerator, List<CharaData> haveCharaDataList) { // <= ¡ù¡¡Âè2°ú¿ô¤òÄɲä·¤Þ¤¹
this.charaGenerator = charaGenerator;
// TODO ¾¤ËÀßÄê¹àÌܤ¬¤¢¤Ã¤¿¤éÄɲ乤ë
¡¡¡¡¡¡¡¡// °ìÅÙ¸«¤¨¤Ê¤¤¾õÂ֤ˤ¹¤ë
canvasGroup.alpha = 0;
// ³Æ¥Ü¥¿¥ó¤ÎÁàºî¤ò²¡¤»¤Ê¤¤¾õÂ֤ˤ¹¤ë
SwithcActivateButtons(false);
////* TODO ¤ò¼ÂÁõ¤¹¤ë *////
// ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥¥ã¥éʬ(°ú¿ô¤Ç¼õ¤±¼è¤Ã¤¿¾ðÊó)¤òÍøÍѤ·¤Æ
for (int i = 0; i < haveCharaDataList.Count; i++) {
¡¡¡¡¡¡¡¡¡¡¡¡// ¥Ü¥¿¥ó¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®
SelectCharaDetail selectCharaDetail = Instantiate(selectCharaDetailPrefab, selectCharaDetailTran, false);
¡¡¡¡¡¡¡¡¡¡¡¡// ¥Ü¥¿¥ó¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê(CharaData ¤òÀßÄꤹ¤ë)
selectCharaDetail.SetUpSelectCharaDetail(this, haveCharaDataList[i]);
¡¡¡¡¡¡¡¡¡¡¡¡// List ¤ËÄɲÃ
selectCharaDetailsList.Add(selectCharaDetail);
// ºÇ½é¤ËÀ¸À®¤·¤¿¥Ü¥¿¥ó¤Î¾ì¹ç
if (i == 0) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤È¤·¤Æ½é´üÃͤËÀßÄê
SetSelectCharaDetail(haveCharaDataList[i]);
}
}
////* ¤³¤³¤Þ¤Ç *////¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡// ³Æ¥Ü¥¿¥ó¤Ë¥á¥½¥Ã¥É¤òÅÐÏ¿
btnChooseChara.onClick.AddListener(OnClickSubmitChooseChara);
btnClosePopUp.onClick.AddListener(OnClickClosePopUp);
¡¡¡¡¡¡¡¡// ³Æ¥Ü¥¿¥ó¤ò²¡¤»¤ë¾õÂ֤ˤ¹¤ë
SwithcActivateButtons(true);
}
/// <summary>
/// ³Æ¥Ü¥¿¥ó¤Î¥¢¥¯¥Æ¥£¥Ö¾õÂÖ¤ÎÀÚ¤êÂؤ¨
/// </summary>
/// <param name="isSwitch"></param>
public void SwithcActivateButtons(bool isSwitch) {
btnChooseChara.interactable = isSwitch;
btnClosePopUp.interactable = isSwitch;
}
/// <summary>
/// ¥Ý¥Ã¥×¥¢¥Ã¥×¤Îɽ¼¨
/// </summary>
public void ShowPopUp() {
// TODO ³Æ¥¥ã¥é¤Î¥Ü¥¿¥ó¤ÎÀ©¸æ
¡¡¡¡¡¡¡¡// ¥Ý¥Ã¥×¥¢¥Ã¥×¤Îɽ¼¨
canvasGroup.DOFade(1.0f, 0.5f);
}
¡¡¡¡/// <summary>
/// ÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤òÇÛÃÖ¤¹¤ë¥Ü¥¿¥ó¤ò²¡¤·¤¿ºÝ¤Î½èÍý
/// </summary>
private void OnClickSubmitChooseChara() {
// TODO ¥³¥¹¥È¤Î»Ùʧ¤¤¤¬²Äǽ¤«ºÇ½ª³Îǧ
// TODO ÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤ÎÀ¸À®
// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÈóɽ¼¨
HidePopUp();
}
/// <summary>
/// ÇÛÃÖ¤ò»ß¤á¤ë¥Ü¥¿¥ó¤ò²¡¤·¤¿ºÝ¤Î½èÍý
/// </summary>
private void OnClickClosePopUp() {
// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÈóɽ¼¨
HidePopUp();
}
/// <summary>
/// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÈóɽ¼¨
/// </summary>
private void HidePopUp() {
// TODO ³Æ¥¥ã¥é¤Î¥Ü¥¿¥ó¤ÎÀ©¸æ
// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÈóɽ¼¨
canvasGroup.DOFade(0, 0.5f).OnComplete(() => charaGenerator.InactivatePlacementCharaSelectPopUp());
}
////* ¥á¥½¥Ã¥É¤ò£±¤ÄÄɲà *////¡¡¡¡¡¡
/// <summary>
/// ÁªÂò¤µ¤ì¤¿ SelectCharaDetail ¤Î¾ðÊó¤ò¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤Î¥Ô¥Ã¥¯¥¢¥Ã¥×¤Ëɽ¼¨¤¹¤ë
/// </summary>
/// <param name="charaData"></param>
public void SetSelectCharaDetail(CharaData charaData) {
chooseCharaData = charaData;
// ³ÆÃͤÎÀßÄê
imgPickupChara.sprite = charaData.charaSprite;
txtPickupCharaName.text = charaData.charaName;
txtPickupCharaAttackPower.text = charaData.attackPower.ToString();
txtPickupCharaAttackRangeType.text = charaData.attackRange.ToString();
txtPickupCharaCost.text = charaData.cost.ToString();
txtPickupCharaMAxAttackCount.text = charaData.maxAttackCount.ToString();
}
////* ¤³¤³¤Þ¤Ç *////¡¡¡¡¡¡
}
||=
[END]
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡Â³¤¤¤Æ¤Ï PlacementCharaSelectPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¤¤¿¤¤¤Î¤Ç¤¹¤¬¡¢
º£²ó¿·¤·¤¯ PlacementCharaSelectPopUp ¥¹¥¯¥ê¥×¥È¤Î SetUpPlacementCharaSelectPopUp ¥á¥½¥Ã¥É¤Î°ú¿ô¤òÄɲ䷤Ƥ¤¤ë¤¿¤á¡¢
¤½¤Î¸Æ¤Ó½Ð¤·Ì¿Î᤬½ñ¤¤¤Æ¤¢¤ë CharaGenerator ¥¹¥¯¥ê¥×¥È¦¤Ë¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢Àè¤Ë CharaGenerator ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤«¤é¡¢³ÆÊÑ¿ô¤Ë¥¢¥µ¥¤¥ó¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£
----
**£³¡¥CharaGenerator ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë
¡¡¥¥ã¥é¤òÀ¸À®¤¹¤ë¤¿¤á¤Î¾ðÊó¤ò List ¤ËÆþ¤ì¤Æ´ÉÍý¤ò¹Ô¤¦¤è¤¦¤Ë¡¢ÊÑ¿ô¤ÎÄɲäò¹Ô¤¤¤Þ¤¹¡£
¤³¤Á¤é¤Î List ¤Ë¤Ï¡¢DataBaseManager ¥¯¥é¥¹¤Ë¤¢¤ë CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¡¢¼ÂºÝ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë CharaData ¤ò¼è¤ê¹þ¤ß¡¢ÍøÍѤǤ¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤Î½èÍý¤â¥á¥½¥Ã¥É¤È¤·¤Æ½àÈ÷¤·¤Æ¤ª¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£½èÍýñ°Ì¤Ç¤Þ¤È¤á¤Æ¤¤¤¯¤³¤È¤ò³Ð¤¨¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¡¡TODO ¤Î½èÍý¤Î¼ÂÁõ¤ò¹Ô¤¤¤Ê¤¬¤é¡¢CharaData ¤òÈ¿±Ç¤·¤ÆÇÛÃÖÍѤΥ¥ã¥é¤Î¥Ç¡¼¥¿¤ò¥Ý¥Ã¥×¥¢¥Ã¥×¤Ø¤È°ú¿ô¤òÍøÍѤ·¤Æ¾ðÊó¤òÅϤ¹¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤Î½èÍý¤Ë¤è¤ê¡¢¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤Ç¥Ü¥¿¥óÍѤΥǡ¼¥¿¤Î¾ðÊó¤¬ÆϤ¯¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢³Æ¥Ü¥¿¥ó¤Î¾ðÊó¤Ë CharaData ¤ò£±¤Ä¤º¤ÄÈ¿±Ç¤µ¤»¤Æ¥Ü¥¿¥ó¤òÀ¸À®¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡½èÍý¤ÎÁ´ÂΤÎή¤ì¤òÇÄ°®¤·¤Ê¤¬¤é¼ÂÁõ¤ò¹Ô¤Ã¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
PlacementSelectCharaPopUp ¥¹¥¯¥ê¥×¥È¤È¤Î·Ò¤¬¤ê¤ò¤·¤Ã¤«¤ê¤ÈÍý²ò¤·¤Æ¤ª¤¯¤³¤È¤¬É¬Íפˤʤê¤Þ¤¹¡£
¡¡
CharaGenerator.cs
[+] <= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹¡£
=|BOX|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps;
public class CharaGenerator : MonoBehaviour
{
[SerializeField]
private GameObject charaPrefab;
[SerializeField]
private Grid grid; ¡¡¡¡¡¡¡¡// Base ¦¤Î Grid ¤ò»ØÄꤹ¤ë
[SerializeField]
private Tilemap tilemaps;¡¡¡¡¡¡// Walk ¦¤Î Tilemap ¤ò»ØÄꤹ¤ë
[SerializeField]
private PlacementCharaSelectPopUp placementCharaSelectPopUpPrefab;¡¡¡¡¡¡//¡¡PlacementCharaSelectPopUp ¥×¥ì¥Õ¥¡¥Ö¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥¢¥µ¥¤¥óÍÑ
[SerializeField]
private Transform canvasTran;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¡¡PlacementCharaSelectPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®°ÌÃÖ¤ÎÅÐÏ¿ÍÑ
////* ¿·¤·¤¤ÊÑ¿ô¤ÎÀë¸À¤ò£±¤ÄÄɲà *////
[SerializeField, Header("¥¥ã¥é¤Î¥Ç¡¼¥¿¥ê¥¹¥È")]
private List<CharaData> charaDatasList = new List<CharaData>();
////* ¤³¤³¤Þ¤Ç *////
private PlacementCharaSelectPopUp placementCharaSelectPopUp;¡¡¡¡¡¡¡¡¡¡¡¡//¡¡À¸À®¤µ¤ì¤¿ PlacementCharaSelectPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÂåÆþ¤¹¤ë¤¿¤á¤ÎÊÑ¿ô
private GameManager gameManager;
private Vector3Int gridPos;
void Update()
{
// TODO ÇÛÃ֤Ǥ¤ëºÇÂ祥ã¥é¿ô¤Ë㤷¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÇÛÃ֤Ǥ¤Ê¤¤
// ²èÌ̤ò¥¿¥Ã¥×(¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯)¤·¡¢¤«¤Ä¡¢ÇÛÃÖ¥¥ã¥é¥Ý¥Ã¥×¥¢¥Ã¥×¤¬Èóɽ¼¨¾õÂ֤ʤé
if (Input.GetMouseButtonDown(0) && !placementCharaSelectPopUp.gameObject.activeSelf) {
// ¥¿¥Ã¥×(¥Þ¥¦¥¹¥¯¥ê¥Ã¥¯)¤Î°ÌÃÖ¤ò¼èÆÀ¤·¤Æ¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹¤·¡¢¤½¤ì¤ò¤µ¤é¤Ë¥¿¥¤¥ë¤Î¥»¥ëºÂɸ¤ËÊÑ´¹
gridPos = grid.WorldToCell(Camera.main.ScreenToWorldPoint(Input.mousePosition));
// ¥¿¥Ã¥×¤·¤¿°ÌÃ֤Υ¿¥¤¥ë¤Î¥³¥é¥¤¥À¡¼¤Î¾ðÊó¤ò³Îǧ¤·¡¢¤½¤ì¤¬ None ¤Ç¤¢¤ë¤Ê¤é
if (tilemaps.GetColliderType(gridPos) == Tile.ColliderType.None) {
// ÇÛÃÖ¥¥ã¥éÁªÂòÍѥݥåץ¢¥Ã¥×¤Îɽ¼¨
ActivatePlacementCharaSelectPopUp();
}
}
}
/// <summary>
/// ¥¥ã¥éÀ¸À®
/// </summary>
/// <param name="gridPos"></param>
private void CreateChara(Vector3Int gridPos) {
¡¡¡¡¡¡¡¡// ¥¿¥Ã¥×¤·¤¿°ÌÃ֤˥¥ã¥é¤òÀ¸À®¤·¤ÆÇÛÃÖ
GameObject chara = Instantiate(charaPrefab, gridPos, Quaternion.identity);
// ¥¥ã¥é¤Î°ÌÃÖ¤¬¥¿¥¤¥ë¤Îº¸²¼¤ò 0,0 ¤È¤·¤ÆÀ¸À®¤·¤Æ¤¤¤ë¤Î¤Ç¡¢¥¿¥¤¥ë¤ÎÃæ±û¤Ë¤¯¤ë¤è¤¦¤Ë°ÌÃÖ¤òÄ´À°
chara.transform.position = new Vector2(chara.transform.position.x + 0.5f, chara.transform.position.y + 0.5f);
}
/// <summary>
/// ÀßÄê
/// </summary>
/// <param name="gameManager"></param>
/// <returns></returns>
public IEnumerator SetUpCharaGenerator(GameManager gameManager) {
this.gameManager = gameManager;
¡¡¡¡¡¡¡¡// TODO ¥¹¥Æ¡¼¥¸¤Î¥Ç¡¼¥¿¤ò¼èÆÀ
////* TODO ¤Î½èÍý¤ò¼ÂÁõ *////
// ¥¥ã¥é¤Î¥Ç¡¼¥¿¤ò¥ê¥¹¥È²½
CreateHaveCharaDatasList();
////* ¤³¤³¤Þ¤Ç *////
¡¡¡¡¡¡¡¡// ¥¥ã¥éÇÛÃÖÍѤΥݥåץ¢¥Ã¥×¤ÎÀ¸À®
yield return StartCoroutine(CreatePlacementCharaSelectPopUp());
}
/// <summary>
/// ÇÛÃÖ¥¥ã¥éÁªÂòÍѥݥåץ¢¥Ã¥×À¸À®
/// </summary>
/// <returns></returns>
private IEnumerator CreatePlacementCharaSelectPopUp() {
¡¡¡¡¡¡¡¡// ¥Ý¥Ã¥×¥¢¥Ã¥×¤òÀ¸À®
placementCharaSelectPopUp = Instantiate(placementCharaSelectPopUpPrefab, canvasTran, false);
////* TODO ¤Î½èÍý¤ò¼ÂÁõ *////
// ¥Ý¥Ã¥×¥¢¥Ã¥×¤ÎÀßÄê¡£¥¥ã¥éÀßÄêÍѤξðÊó¤âÅϤ¹
placementCharaSelectPopUp.SetUpPlacementCharaSelectPopUp(this, charaDatasList);¡¡¡¡//¡¡<=¡¡¡ù¡¡Âè2°ú¿ô¤òÄɲä·¤Þ¤¹
////* ¤³¤³¤Þ¤Ç *////
¡¡¡¡¡¡¡¡// ¥Ý¥Ã¥×¥¢¥Ã¥×¤òÈóɽ¼¨¤Ë¤¹¤ë
placementCharaSelectPopUp.gameObject.SetActive(false);
yield return null;
}
/// <summary>
/// ÇÛÃÖ¥¥ã¥éÁªÂòÍѤΥݥåץ¢¥Ã¥×¤Îɽ¼¨
/// </summary>
public void ActivatePlacementCharaSelectPopUp() {
// TODO ¥²¡¼¥à¤Î¿Ê¹Ô¾õÂÖ¤ò¥²¡¼¥àÄä»ß¤ËÊѹ¹
// TODO ¤¹¤Ù¤Æ¤ÎŨ¤Î°ÜÆ°¤ò°ì»þÄä»ß
// ÇÛÃÖ¥¥ã¥éÁªÂòÍѤΥݥåץ¢¥Ã¥×¤Îɽ¼¨
placementCharaSelectPopUp.gameObject.SetActive(true);
placementCharaSelectPopUp.ShowPopUp();
}
/// <summary>
/// ÇÛÃÖ¥¥ã¥éÁªÂòÍѤΥݥåץ¢¥Ã¥×¤ÎÈóɽ¼¨
/// </summary>
public void InactivatePlacementCharaSelectPopUp() {
¡¡¡¡¡¡¡¡// ÇÛÃÖ¥¥ã¥éÁªÂòÍѤΥݥåץ¢¥Ã¥×¤ÎÈóɽ¼¨
placementCharaSelectPopUp.gameObject.SetActive(false);
// TODO ¥²¡¼¥à¥ª¡¼¥Ð¡¼¤ä¥²¡¼¥à¥¯¥ê¥¢¤Ç¤Ï¤Ê¤¤¾ì¹ç
¡¡¡¡¡¡¡¡// TODO ¥²¡¼¥à¤Î¿Ê¹Ô¾õÂÖ¤ò¥×¥ì¥¤Ãæ¤ËÊѹ¹¤·¤Æ¡¢¥²¡¼¥àºÆ³«
¡¡¡¡¡¡¡¡// TODO ¤¹¤Ù¤Æ¤ÎŨ¤Î°ÜÆ°¤òºÆ³«
// TODO ¥«¥ì¥ó¥·¡¼¤Î²Ã»»½èÍý¤òºÆ³«
}
////* ¥á¥½¥Ã¥É¤ò£±¤ÄÄɲà *////
/// <summary>
/// ¥¥ã¥é¤Î¥Ç¡¼¥¿¤ò¥ê¥¹¥È²½
/// </summary>
private void CreateHaveCharaDatasList() {
¡¡¡¡¡¡¡¡// CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î CharaData ¤ò£±¤Ä¤º¤Ä¥ê¥¹¥È¤ËÄɲÃ
// TODO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤Ê¤¯¡¢¼ÂºÝ¤Ë¥×¥ì¥¤¥ä¡¼¤¬½ê»ý¤·¤Æ¤¤¤ë¥¥ã¥é¤ÎÈÖ¹æ¤ò¸µ¤Ë¥¥ã¥é¤Î¥Ç¡¼¥¿¤Î¥ê¥¹¥È¤òºîÀ®
for (int i = 0; i < DataBaseManager.instance.charaDataSO.charaDatasList.Count; i++) {
charaDatasList.Add(DataBaseManager.instance.charaDataSO.charaDatasList[i]);
}
}
////* ¤³¤³¤Þ¤Ç *////
}
||=
[END]
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é˺¤ì¤º¤Ë¥»¡¼¥Ö¤ò¤·¤Þ¤¹¡£
----
**£´¡¥CharaGenerator ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î³Îǧ¤ò¹Ô¤¦
¡¡¿·¤·¤¯Äɲä·¤¿ CharaDatasList ÊÑ¿ô¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£
Size ¤Ï 0 ¤Î¤Þ¤Þ¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¡£¥²¡¼¥à¤ò¼Â¹Ô¤·¤¿ºÝ¤Ë CreateHaveCharaDatasList() ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ
¤³¤Á¤é¤Ë CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î CharaData ¤¬½çÈÖ¤ËÅÐÏ¿¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
''¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/FbQ_wS0THX.png, 35%)
----
**£µ¡¥PlacementCharaSelectPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¦
¡¡¿·¤·¤¯Àë¸À¤·¤¿ÊÑ¿ô¤¬¤¿¤¯¤µ¤ó¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢´Ö°ã¤¨¤Ê¤¤¤è¤¦¤Ë¥¢¥µ¥¤¥ó¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î̾¾Î¤ÈÊÑ¿ô̾¤òƱ°ì¤Ë¤·¤Æ¤ª¤¯¤³¤È¤Ë¤è¤ê¡¢¥¢¥µ¥¤¥óÀè¤òʬ¤«¤ê¤ä¤¹¤¯¤Ç¤¡¢¤«¤Ä¡¢¥¢¥µ¥¤¥ó´Ö°ã¤¨¤òËɻߤ¹¤ë¤³¤È¤ËÌòΩ¤Á¤Þ¤¹¡£
¤½¤¦¤¤¤Ã¤¿Éôʬ¤â¹Í¤¨¤Ê¤¬¤é̾¾Î¤Ë¤Ä¤¤¤Æ¤Ï½àÈ÷¤·¤Æ¤¯¤À¤µ¤¤¡£
''¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/NqYPgjGJrf.png, 35%)
----
**£¶¡¥¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë
¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¤¿ºÝ¤Ë¡¢¤É¤Î½èÍý¤¬¡¢¤É¤Î¤è¤¦¤ËÆ°¤¤¤Æ¤¤¤ë¤³¤È¤Ç¡¢¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤Ë
ÇÛÃÖÍѤΥ¥ã¥é¤Î¥Ü¥¿¥ó¤¬Ê¤ó¤ÇÀ¸À®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤Î¤«¤òʬ¤«¤Ã¤¿¾å¤Ç³Îǧ¤·¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£
¡¡CharaGenerator ¥¯¥é¥¹¤Î List ¤Ë¤Ï¡¢DataBaseManager ¥¯¥é¥¹¤Î CharaDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò»²¾È¤·¤Æ¡¢
ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë CharaData ¤Î List ¤¬ºîÀ®¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤³¤Î¾ðÊó¤ò¥Ý¥Ã¥×¥¢¥Ã¥×¤ËÅϤ¹¤³¤È¤Ë¤è¤ê¡¢¥Ý¥Ã¥×¥¢¥Ã¥×¤¬É½¼¨¤µ¤ì¤¿ºÝ¤Ë¡¢Æ±¤¸¥¥ã¥é¤Î¥Ü¥¿¥ó¤Ç¤¢¤ê¤Ê¤¬¤é¤â
°Û¤Ê¤ë²èÁü¤ä¾ðÊó¤ò»ý¤Ä¥Ü¥¿¥ó¤¬ List ¤Î¿ôʬ¤À¤±À¸À®¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ê¤Þ¤¹¡£
¡¡PlacementSelectCharaPopUp ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î Content ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ
SelectCharaDetail ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Ê£¿ôÀ¸À®¤µ¤ì¤Æ¥Ü¥¿¥ó¤È¤·¤Æɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤â¥Ò¥¨¥é¥ë¥¡¼¤«¤é³Îǧ¤ò¤·¤Æ¤ª¤¯¤³¤È¤Ç
¥¹¥¯¥ê¥×¥È¤Î½èÍý¤òÍý²ò¤¹¤ë½õ¤±¤Ë¤Ê¤ê¤Þ¤¹¡£
''CharaGenerator ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü''
&ref(https://image02.seesaawiki.jp/i/o/i-school-memo/VXy9XkDoMC.png, 35%)
''¡ã¼ÂÁõÆ°²è¡ä''
&video(https://image02.seesaawiki.jp/i/o/i-school-memo/miON0lb1yi.webm){600, 350}
----
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡¼¡¤Ï¡¡''%%%[[¼ê½ç£²£²¡¡¡Ý¥Ý¥Ã¥×¥¢¥Ã¥×Æâ¤ÇÁªÂò¤·¤Æ¤¤¤ë¥¥ã¥é¤ÎÀ¸À®½èÍý¤Î¼ÂÁõ¡Ý>£²£Ä¥¿¥ï¡¼¥Ç¥£¥Õ¥§¥ó¥¹¡¡¼ê½ç£²£²]]%%%''¡¡¤Ç¤¹¡£