ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2023ǯ01·î13Æü(¶â) 10:43:00ÍúÎò
¤³¤Î¼ê½ç¤Ç¤Ï¤¢¤¯¤Þ¤Ç¤âÆâÉôŪ(¥×¥í¥°¥é¥à¤È¤·¤Æ)¡¢¥¹¥³¥¢¤Î²Ã»»¤ò¹Ô¤¤¤Þ¤¹¡£¥²¡¼¥à²èÌ̤Ëɽ¼¨¤µ¤ì¤ë¤¿¤á¤Î½èÍý¤Ï¼¡°Ê¹ß¤Î¼ê½ç¤ÇºîÀ®¤·¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡°Ê²¼¤ÎÆâÍƤǽçÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤¤Þ¤¹¡£
¼ê½ç£±£³¡¡¡¼¥¹¥³¥¢¤Î²Ã»»½èÍý¡¼
¡ã¿·¤·¤¯³Ø½¬¤¹¤ëÆâÍÆ¡ä
¡¡¡¦TryGetComponent()¥á¥½¥Ã¥É¤Èout¥¡¼¥ï¡¼¥ÉÀë¸À ¡¡¡¦¥á¥ó¥ÐÊÑ¿ô¤ËÍÑ°Õ¤·¤Æ¤¤¤Ê¤¤·¿¤Ø¤Î½èÍý¤ò¼Â¹Ô¤·¤Æ¤¤¤¯ÊýË¡
¡¡Gem ¥¹¥¯¥ê¥×¥È¤Î OnTriggerEnter ¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤¬Ìµ»ö¤ËÆ°ºî¤·¤Þ¤·¤¿¤Î¤Ç¡¢¤³¤Î¥á¥½¥Ã¥ÉÆâ¤Ë½èÍý¤òÄɲ䷤Ƥ¤¤¤Þ¤¹¡£
¡¡À߷פȤ·¤Æ¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¤¤¤Þ¤¹¡£
¡¡¡¦¿·¤·¤¯ ScoreManager ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¡£¤³¤ì¤Ï¥×¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤ÆÍøÍѤ¹¤ë ¡¡¡¡¡¡=>¡¡Ìò³ä¤Ï¡¢ÊõÀФò³ÍÆÀ¤·¤¿ºÝ¤Î¹ç·×ÆÀÅÀ¤ò´ÉÍý¤¹¤ë¤¿¤á
¡¡¤½¤Î¤¿¤á¤Ë¤Ï¡¢°Ê²¼¤Î¤è¤¦¤ÊÆâÍÆ¤Ç ScoreManager ¥¹¥¯¥ê¥×¥È¤òµ½Ò¤·¤Þ¤¹¡£
¡¡¡¦¹ç·×ÆÀÅÀ¤Î´ÉÍýÍѤΠint ·¿¤Î totalPoint ÊÑ¿ô¤òÍÑ°Õ¤¹¤ë ¡¡¡¦ÆÀÅÀ¤Î²Ã»»ÍѤΠAddScore ¥á¥½¥Ã¥É¤ò public ½¤¾þ»Ò¤ÇÍÑ°Õ¤¹¤ë ¡¡¡¡¡¡=>¡¡AddScore ¥á¥½¥Ã¥É¤Ë¤Ï int ·¿¤Î°ú¿ô¤òÍÑ°Õ¤·¡¢¼õ¤±¼è¤Ã¤¿Ãͤò totalPoint ÊÑ¿ô¤ËÂФ·¤Æ²Ã»»½èÍý¤ò¹Ô¤¦»ÅÁÈ¤ß ¡¡¡¡¡¡¡¡¡¡°ú¿ô¤ò int ·¿¤Ë¤·¤Æ¤¤¤ë¤Î¤Ï totalPoint ÊÑ¿ô¤ÈƱ¤¸·¿¤Ë¤¹¤ë¤³¤È¤ÇÍưפ˲û»½èÍý¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á
¡¡¤³¤³¤Þ¤Ç¤¬¡¢¿·¤·¤¯ºîÀ®¤¹¤ë ScoreManager ¥¹¥¯¥ê¥×¥È¤Î½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Â³¤¤¤Æ¡¢ÊõÀÐÍѤΠGem ¥¹¥¯¥ê¥×¥È¤Ë¤Ä¤¤¤Æ¡¢½èÍý¤ò½¤Àµ¤·¤Þ¤¹¡£
¡¡¡¦ÆÀÅÀ¤Î¾ðÊó¤È¤·¤Æ int ·¿¤Î point ÊÑ¿ô¤òÄɲ乤롣SerializeField °À¤Î¤Ä¤¤¤¿ private ½¤¾þ»Ò¤ÇÀë¸À¤¹¤ë¤³¤È¤Ç¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤éÀßÄ꤬¤Ç¤¤ë¤è¤¦¤Ë¤·¤Æ¤ª¤¯ ¡¡¡¦OnTriggerEnter ¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤ò½¤Àµ¤·¤Æ¡¢¥¿¥°¤Ç¤Ï¤Ê¤¯¡¢¥×¥ì¥¤¥ä¡¼¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë ScoreManager ¤Î¾ðÊó¤ò¼èÆÀ¤·¤ÆȽÄꤹ¤ë¾ò·ï¼°¤ËÊѹ¹¤¹¤ë ¡¡¡¡¡¡=>¡¡¼èÆÀ¤·¤¿ ScoreManager ¤Î¾ðÊó¤ò»È¤Ã¤Æ¡¢ScoreManager ¤ËÍÑ°Õ¤·¤¿ AddScore ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢ÆÀÅÀ¤Î²Ã»»½èÍý¤ò¹Ô¤¦ ¡¡¡¡¡¡¡¡¡¡¤³¤Î²Ã»»½èÍý¤ò ScoreManager ¤Î³°Éô¤Î¥¯¥é¥¹¤«¤é¼Â¹Ô¤¹¤ë¤¿¤á¤Ë¡¢AddScore ¥á¥½¥Ã¥É¤Ï public ½¤¾þ»Ò¤Ë¤·¤Æ¤¢¤ë ¡¡¡¦AddScore ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¤Ï int ·¿¤Î°ú¿ô¾ðÊó¤¬É¬Íפˤʤë¤Î¤Ç¡¢ Gem ¥¹¥¯¥ê¥×¥È¤ËÍÑ°Õ¤·¤¿ int ·¿¤Î point ÊÑ¿ô¤ÎÃͤò°ú¿ô¤È¤·¤ÆÅϤ¹ ¡¡¡¡¡¡=>¡¡°ú¿ô¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢Gem ¥¹¥¯¥ê¥×¥È¤Î point ÊÑ¿ô¤ÎÃͤξðÊó¤ò ScoreManager ¦¤ËÆϤ¯¤è¤¦¤Ë¤Ç¤¤ë
¡¡¤³¤Á¤é¤¬ Gem ¥¹¥¯¥ê¥×¥È¤ÎÆâÍƤˤʤê¤Þ¤¹¡£
¡¡ÁÐÊý¤Î½èÍý¤òºî¤ë¤³¤È¤Ë¤è¤ê
¡¡¡¦ScoreManager ¤Ç¤Ï Gem ¥¹¥¯¥ê¥×¥È¦¤«¤é AddScore ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¡¢°ú¿ô¤È¤·¤Æ point ÊÑ¿ô¤ÎÃͤ¬ÆϤ¤¤Æ¤¤¤ë ¡¡¡¡¡¡totalPoint ÊÑ¿ô¤Ë¡¢Gem ¥¹¥¯¥ê¥×¥È¤«¤éÅϤäƤ¤¿ point ÊÑ¿ô¤ÎÃͤò²Ã»»¤·¤Æ¤¤¤¯
¡¡¤³¤Î¤è¤¦¤Ê¥í¥¸¥Ã¥¯¤ò»ý¤Ä½èÍý¤Îή¤ì¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡°ìÏ¢¤Î½èÍý¤Î¥¤¥á¡¼¥¸¤¬Ê¨¤¤Þ¤¹¤Ç¤·¤ç¤¦¤«¡£
¡¡¤³¤Î¼ê½ç¤ò»²¹Í¤Ë¤·¤Ê¤¬¤é¥³¥á¥ó¥È¤Ç½ñ¤¤¤Æ¤ß¤Æ¡¢¥í¥¸¥Ã¥¯²½¤·¤Æ¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡int ·¿¤Î totalPoint ÊÑ¿ô¤òÀë¸À¤·¤Þ¤¹¡£private ½¤¾þ»Ò¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¡£¤³¤ÎÊÑ¿ô¤òÆÀÅÀ¤Î´ÉÍýÍѤËÍøÍѤ·¤Þ¤¹¡£
¡¡¿·¤·¤¯ AddScore ¥á¥½¥Ã¥É¤òºîÀ®¤·¡¢°ú¿ô¤ò int ·¿¤ÇÍÑ°Õ¤·¤Æ¤ª¤¤Þ¤¹¡£¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢¤³¤Î¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë¤Ï int ·¿¤ÎÃͤòÅϤ¹¤³¤È¤¬É¬Íפˤʤê¤Þ¤¹¡£
AddScore ¥á¥½¥Ã¥ÉÆâ¤Ç¤Ï°ú¿ô¤Ç¼õ¤±¼è¤Ã¤¿Ãͤò totalPoint ÊÑ¿ô¤Ë²Ã»»¤·¤Æ¤¤¤¯½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¡¡totalPoint ÊÑ¿ô¤Ï private ½¤¾þ»Ò¤Ç¤¹¤Î¤Ç¡¢½èÍý¤¬¼Â¹Ô¤µ¤ì¤Æ¤â²Ã»»¤µ¤ì¤¿Ãͤ¬¤ï¤«¤ê¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢²Ã»»¸å¤Ë Debug.Log ¥á¥½¥Ã¥É¤òÍÑ°Õ¤·¤Æ¡¢Console ¥Ó¥å¡¼¤Ë totalPoint ÊÑ¿ô¤ÎÃͤòɽ¼¨¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤ì¤Ç¡¢½èÍý¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë³Îǧ¤È¡¢¸½ºß¤Î totalPoint ÊÑ¿ô¤ÎÃͤΡ¢Î¾Êý¤Î³Îǧ¤¬¹Ô¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Debug.Log ¥á¥½¥Ã¥É¤ò͸ú¤Ë³èÍѤ·¤Þ¤·¤ç¤¦¡£
¤¢¤ë¤¤¤Ï¡¢private ½¤¾þ»Ò¤Î totalPoint ÊÑ¿ô¤Ë SerializeField °À¤òÉÕÍ¿¤·¤Æ¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤é³Îǧ¤¬½ÐÍè¤ë¤è¤¦¤Ë¤·¤Æ¤â¤è¤¤¤Ç¤¹¡£
ScoreManager.cs
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Ë¤¢¤ë¥×¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¡¢ScoreManager ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¡¡¥×¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¡¢ScoreManager ¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£
¿·¤·¤¯Àë¸À¤·¤¿ÊÑ¿ô¤Ï private ½¤¾þ»Ò¤Ç¤¢¤ë¤Î¤Çɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£
¥×¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü
¡¡¤¿¤À¤·¡¢private ½¤¾þ»Ò¤ÎÊÑ¿ô¤Ë SerializeField¡¡Â°À¤òÉÕÍ¿¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¸Â¤ê¡¢³ÆÊÑ¿ô¤¬¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
¥×¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü(SerializeField °À¤òÉÕÍ¿¤·¤¿¾ì¹ç)
¡¡¤¤¤º¤ì¤«¤Î¾õÂ֤ˤʤäƤ¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¤³¤ÎÃͤϿ¨¤é¤Ê¤¤¤è¤¦¤Ë 0 ¤Î¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡¡private ½¤¾þ»Ò¤Î int ·¿¤Î point ÊÑ¿ô¤òÀë¸À¤·¡¢¤³¤ÎÃͤò¡ÖÊõÀФλý¤ÄÆÀÅÀ¡×¤È¤¤¤¦¾ðÊó¤È¤·¤ÆÌò³ä¤ò»ý¤¿¤»¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¤½¤ÎÌò³ä¤Ë±è¤Ã¤¿»È¤¤Êý¤ò¥¹¥¯¥ê¥×¥ÈÆâ¤Çµ½Ò¤·¤Æ¤¤¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡private ½¤¾þ»Ò¤Î¤Þ¤Þ¤Ç¤¹¤È¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¤·¤«ÃͤÎÊÔ½¸¤¬½ÐÍè¤Ê¤¤¤¿¤á¡¢ÃͤòÊѤ¨¤Æ¥Ç¥Ð¥Ã¥°¤·¤¿¤¤¾ì¹ç¤Ë¤ÏÉÔÊؤǤ¹¡£
¤³¤¦¤¤¤Ã¤¿¥±¡¼¥¹¤Ç¤Ï SerializeField °À¤òÉÕ¤±¤ÆÊÑ¿ô¤òÀë¸À¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤éǤ°Õ¤ÎÆÀÅÀ¤ÎÀßÄê¤ò²Äǽ¤Ë¤·¤Æ¤ª¤¯¤ÈÊØÍø¤Ç¤¹¡£
¡¡int ·¿¤òÍøÍѤ·¤Æ¤¤¤ë¤Î¤Ï¡¢ÆÀÅÀ¤ò´ÉÍý¤·¤Æ¤¤¤ë ScoreManager ¥¹¥¯¥ê¥×¥È¤Ë¤¢¤ë totalPoint ÊÑ¿ô¤Î·¿¤¬ int ·¿¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡£
Ʊ¤¸·¿Æ±»Î¤Ç¤¢¤ì¤Ð´Êñ¤Ë²Ã»»½èÍý¤¬ºî¤ì¤Þ¤¹¡£
¡¡¿·¤·¤¤¾ðÊó¤òÍÑ°Õ¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤ÎÊÑ¿ô¤¬¤É¤ÎÉôʬ¤ÇÍøÍѤµ¤ì¤ë¤Î¤«¤ò¹Í¤¨¤Æ¡¢É¬ÍפʷÁ¤ÇÀ߷פò¤·¤Þ¤¹¡£
¡¡½ÅÍפÊÊѹ¹ÅÀ¤È¤·¤Æ¡¢OnTriggerEnter ¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤ò½¤Àµ¤·¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¥³¥é¥¤¥À¡¼¤Ë¿¯Æþ¤·¤¿¤é¡¢¤½¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¿¥°¤Ë¤è¤Ã¤ÆȽÄê¤ò¹Ô¤¦½èÍý¤«¤é¡¢
¿¯Æþ¤·¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë»ØÄꤵ¤ì¤¿¥¹¥¯¥ê¥×¥È(¤³¤³¤Ç¤Ï ScoreManager)¤ò¼èÆÀ¤Ç¤¤ë¤«¤òȽÄꤹ¤ë½èÍý¤ËÊѹ¹¤·¤Þ¤¹¡£
¡¡ÆÀÅÀ¤Î¾ðÊó¤ò´ÉÍý¤·¤Æ¤¤¤ë¤Î¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤Ê¤¯¡¢¤½¤³¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë ScoreManager ¤¬´ÉÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢Î㤨¤Ð¥¿¥°¤Ë¤è¤Ã¤Æ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎȽÊ̤¬½ÐÍ褿¤È¤·¤Æ¤â¡¢¤½¤Î¸å¤ËºÆÅÙ¡¢¤½¤Î¥¿¥°¤Ë¤è¤Ã¤ÆȽÊ̤µ¤ì¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ¡¢
»ØÄꤵ¤ì¤¿¥¹¥¯¥ê¥×¥È(ScoreManager)¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¤«¤òȽÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¤Ä¤Þ¤ê¡¢¥¿¥°¤Ë¤è¤ë½èÍý¤Î¾ì¹ç¡¢¤½¤Î¤¢¤È¤Î½èÍý¤Ë¤Ä¤Ê¤²¤Æ¤¤¤¯ºÝ¤Ë¡¢ºÆÅÙ¡¢¥¹¥¯¥ê¥×¥È¤ÎÍ̵¤ÎȽÄê¤Î½èÍý¤ò¹Ô¤¦¤³¤È¤Ë¤Ê¤ë¤¿¤á¡¢
Ʊ¤¸¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ½ÅʣȽÄê¤ò¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¥¿¥°¤ÎȽÄê¸å¤Ë¡¢¤µ¤é¤Ë GetComponent ¥á¥½¥Ã¥É¤Î½èÍý¤¬É¬Íפˤʤ뤿¤á¤Ç¤¹¡£
¡¡¤½¤ì¤Ï̵Â̤ʽèÍý¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤¿¤á¡¢º£²ó¤Ï¥¿¥°¤Î½èÍý¤ò»ß¤á¡¢Âå¤ï¤ê¤Ë¡¢¥¹¥¯¥ê¥×¥È¤ò¼èÆÀ¤Ç¤¤ë¤«¤òȽÄꤷ¡¢
¥¹¥¯¥ê¥×¥È¤ò¼èÆÀ¤Ç¤¤¿¾ì¹ç¤Ë¤Î¤ß¡¢¼¡¤Î½èÍý¤Ø¤È¤Ä¤Ê¤¬¤ë¤è¤¦¤Ê¥í¥¸¥Ã¥¯¤òºî¤Ã¤Æ½èÍý¤òÁȤ߾夲¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ë¤Ï¿·¤·¤¤ TryGetComponent ¥á¥½¥Ã¥É¤ò³èÍѤ·¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤Î¿·¤·¤¤½èÍý¤ËÊѹ¹¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥¹¥¯¥ê¥×¥È¤Î¥¢¥¿¥Ã¥Á¤ÎÍ̵¤Î³Îǧ¤ò¤·¤Ê¤¬¤é¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎȽÄê¤ò¹Ô¤¤¡¢
¤«¤Ä¡¢É¬Íפʥ¹¥¯¥ê¥×¥È¤Î¼èÆÀ¤Î½èÍý¤ò£±²ó¤Î½èÍý¤Ç¹Ô¤¦¤³¤È¤¬¤Ç¤¤ë¤¿¤á¡¢½èÍý¤ÎÀµ³ÎÀ¤ò¹â¤á¸úΨ²½¤â¬¤ì¤Þ¤¹¡£
¡¡·ë²Ì¤È¤·¤Æ¡¢¸½ºßÍÑ°Õ¤·¤Æ¤¤¤ë¥¿¥°¤Ë¤è¤ëȽÄê½èÍý¤ÎÂå¤ï¤ê¤Ë¤â¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¥¿¥°¤ÎȽÄêÉôʬ¤òºï½ü¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡
¡¡ScoreManager ¤¬¼èÆÀ½ÐÍ褿¾ì¹ç¤Ë¤ÏÊÑ¿ô¤ËÂåÆþ¤·¤Æ¡¢ScoreManager ¥¹¥¯¥ê¥×¥È¤ò»²¾È¤·¤¿¤ê¡¢Ì¿Îá¤ò½Ð¤»¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤½¤·¤Æ¡¢ScoreManager ¥¹¥¯¥ê¥×¥ÈÆâ¤Î public ½¤¾þ»Ò¤ÇÀë¸À¤·¤Æ¤¤¤ë AddScore ¥á¥½¥Ã¥É¤ò¼Â¹Ô(¸Æ¤Ó½Ð)¤·¤Þ¤¹¡£
¡¡AddScore ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï int ·¿¤Î°ú¿ô¤òÍÑ°Õ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢º£²óÀë¸À¤òÄɲä·¤¿ int ·¿¤Î point ÊÑ¿ô¤òÅϤ·¤Þ¤¹¡£
¤³¤Î½èÍý¤Ë¤è¤Ã¤Æ¡¢¥¹¥³¥¢¤Î²Ã»»½èÍý¤È¤È¤â¤Ë¡¢¤É¤ÎÃͤò²Ã»»¤¹¤ë¤Î¤«¡¢¤È¤¤¤¦¾ðÊó¤â°ì½ï¤Ë ScoreManager ¦¤ËÆϤ¯¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
Gem.cs
¡¡¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤¬½ªÎ»¤·¤¿¤é¡¢¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡¤Ä¤Å¤±¤Æ¡¢ÊõÀФΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Þ¤¹¡£
¿·¤·¤¯ SerializeField °À¤ò¤Ä¤±¤¿ private ½¤¾þ»Ò¤ÇÀë¸À¤·¤¿ point ÊÑ¿ô¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¡£
Gem ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü(½é´üÃÍ»þ)
¡¡¤³¤Á¤é¤Î point ÊÑ¿ô¤Î½é´üÃÍ¤Ï 0 ¤Ç¤¹¤Î¤Ç¡¢Ç¤°Õ¤ÎÃͤòÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
¤³¤ÎÃͤ¬¥×¥ì¥¤¥ä¡¼¤¬ÊõÀФ˿¯Æþ¤·¤¿ºÝ¤Ë³ÍÆÀ¤Ç¤¤ëÆÀÅÀ¤Ë¤Ê¤ê¤Þ¤¹¡£
Gem ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü(ÃÍÀßÄê»þ)
¡¡Unity2019.2°Ê¹ß¤ËÄɲ䵤줿¥á¥½¥Ã¥É¤Ç¤¹¡£½èÍý·ë²Ì¤È¤·¤Æ bool ·¿¤ÇÌá¤êÃͤòÊÖ¤·¤Æ¤¯¤ì¤Þ¤¹¡£
¤³¤Î¤È¤¤Î½èÍý·ë²Ì¤È¤¤¤¦¤Î¤Ï¡¢»ØÄꤷ¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î·¿¤Î¼èÆÀ¤ò¹Ô¤¤¡¢¤½¤ì¤¬¼èÆÀ¤Ç¤¤ì¤Ð true¡¢¼èÆÀ¤Ç¤¤Ê¤±¤ì¤Ð false ¤¬Ìá¤ê¤Þ¤¹¡£
¡¡¤Þ¤¿out¥¡¼¥ï¡¼¥É¤Ë¤è¤ëÀë¸À¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢true¤Î¾ì¹ç¤Ë¤Ïɬ¤º¡¢¤³¤Îout¤Î¸å¤ËÀë¸À¤·¤¿ÊÑ¿ôÆâ¤Ë·¿¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£
¡¡out¥¡¼¥ï¡¼¥ÉÀë¸À¤ò¹Ô¤¦¤È¡¢out¤òÉÕ¤±¤¿°ú¿ô¤Ç»ØÄꤷ¤¿ÊÑ¿ô¤Ï¥á¥½¥Ã¥ÉÆâ¤Çɬ¤º·ë²Ì¤¬Æþ¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¤â¤Î¤Ç¤¹¡£
¡¡¤³¤Î½èÍý¤ò³èÍѤ¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥¿¥°¤òÍøÍѤ·¤¿ if ʸ¤Ë¤è¤ëɾ²Á½èÍý¤ÎÂåÂؽèÍý¤¬ºîÀ®²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
// col.gameObject(¤Ä¤Þ¤ê¡¢¥×¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È)¤ËÂФ·¤Æ¡¢TryGetComponent ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢ScoreManager ¥¯¥é¥¹¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤¤ë¤«È½Äꤹ¤ë ¡¡if (col.gameObject.TryGetComponent(out ScoreManager scoreManager)) { // ¤³¤ÎÃæ¤Î½èÍý¤Ï¡¢ScoreManager ¥¯¥é¥¹¤¬¼èÆÀ¤Ç¤¤¿¾ì¹ç¤Î¤ß¼Â¹Ô¤µ¤ì¤ë¡£ // ¤½¤Î¾ì¹ç¡¢scoreManager ÊÑ¿ô¤òÍøÍѤ¹¤ë¤³¤È¤Ç ScoreManager ¥¯¥é¥¹¤ò»²¾È¤Ç¤¤ë }
¡¡º£²ó¤Ï¤³¤Î¤è¤¦¤Ê½èÍý¤È¤·¤ÆÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
Collider ¾ðÊ󤫤é gameObject¡Ê¤Ä¤Þ¤ê¥×¥ì¥¤¥ä¡¼¤Ç¤¹¡Ë¤Ø¤È¥¢¥¯¥»¥¹¤·¡¢¤½¤Î gameObject ¤ËÂФ·¤Æ TryGetComponent ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤Þ¤¹¡£
¡¡out ¥¡¼¥ï¡¼¥É¤Î¸å¤Ë¤Ï ScoreManager ·¿¤È scoreManager ¤È¤¤¤¦ÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤ª¤¤Þ¤¹¡£
¡¡¤â¤·¤â¤³¤Î TryGetComponent ¤Î·ë²Ì¤¬ true ¤Ç¤¢¤ë¤Ê¤é¤Ð¡¢out ¤È¤·¤ÆÍÑ°Õ¤·¤¿ scoreManager ÊÑ¿ô¤Ë
ScoreManager ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤¿¾å¤Ç¡¢ifʸÆâ¤Î½èÍý¤ËÆþ¤ê¤Þ¤¹¡£
¤Þ¤¿ if ʸÆâ¤Î´Ö¤Ï¤³¤Î scoreManager ÊÑ¿ô¤¬»ÈÍѤǤ¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£¡ÊscoreManager ÊÑ¿ô¤Î¥¹¥³¡¼¥×¤¬ if ʸ¥Ö¥í¥Ã¥¯Æâ¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡Ë
¡¡TryGetComponent ¥á¥½¥Ã¥É¤Î·ë²Ì¤¬ false ¤Î¾ì¹ç¤Ë¤Ï ScoreManager ¥¹¥¯¥ê¥×¥È¤Î¼èÆÀ¤¬¤Ç¤¤Ê¤«¤Ã¤¿¤¿¤á false ¤¬·ë²Ì¤È¤·¤ÆÌá¤ê¡¢
¤³¤Î if ʸ¤Ï½èÍý¤µ¤ì¤Ê¤¤¤Þ¤Þ¤Ç½ªÎ»¤·¤Þ¤¹¡£
¡¡¤Ê¤ªTryGetComponent¥á¥½¥Ã¥É¤Ë¤ÏÊ£¿ô¤Î½ñ¼°¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Á¤é¤Ï²¼µ¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Component.TryGetComponent
Zenn fuqunaga ÍÍ
TryGetComponent() ¤ÈÈæ¤Ù¤¿¤é GetComponent() ¤ò»È¤¦Íýͳ¤¬¤Ê¤¯¤Ê¤Ã¤¿·ï
¡¡¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢³°Éô¤Î¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¼èÆÀ¤·¡¢ÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤³¤È¤Ç¡¢¤½¤Î¥¹¥¯¥ê¥×¥È¤Ø¤Î»²¾È¤ä¡¢¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
³°Éô¤Î¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤Ï¡¢¥á¥ó¥ÐÊÑ¿ô¤ÇÍÑ°Õ¤·¤Æ¤ª¤¯°Ê³°¤Ë¤â¡¢¥¹¥¯¥ê¥×¥ÈÆâ¤ÇưŪ(¥²¡¼¥à¤¬»Ï¤Þ¤Ã¤Æ¤«¤é¡¢ÆÃÄê¤Î¥¿¥¤¥ß¥ó¥°¤Ç)¼èÆÀ¤·¡¢ÍøÍѤ·¤Æ¤¤¤¯¤³¤È¤â²Äǽ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡³°Éô¤Î¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¼èÆÀ¤·¤¿¾ì¹ç¡¢¤½¤Î¥¹¥¯¥ê¥×¥È¤Î°·¤Ã¤Æ¤¤¤ë public ½¤¾þ»Ò¤Î¾ðÊ󤬰·¤¨¤ë¤Î¤Ç¡¢
public ½¤¾þ»Ò¤ÎÊÑ¿ô¤Î¾ðÊó¤ò»²¾È¤·¤ÆÍøÍѤ·¤¿¤ê¡¢public ½¤¾þ»Ò¤Î¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡if (col.gameObject.TryGetComponent(out ScoreManager scoreManager)) { ¡¡¡¡¡¡// ScoreManager ¥¯¥é¥¹¤¬¼èÆÀ½ÐÍè¤Æ¤¤¤ë¾ì¹ç¡¢scoreManager ÊÑ¿ô¤òÄ̤¸¤Æ ScoreManager ¥¯¥é¥¹¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë public ½¤¾þ»Ò¤Î AddScore ¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹Ì¿Îá¤ò¤¹¤ë ¡¡¡¡// °ú¿ô¤Ë¤Ï point ÊÑ¿ô¤ÎÃͤòÅϤ¹ ¡¡¡¡scoreManager.AddScore(point); }
¡¡if ʸ¤Ë¤ª¤¤¤Æ col.gameObeject ÊÑ¿ô(¿¯Æþ¤·¤Æ¤¤¿¥³¥é¥¤¥À¡¼¤Î¥¢¥¿¥Ã¥Á¤·¤Æ¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È)¤ËÂФ·¤Æ
TryGetComponent ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢°ú¿ô¤Ë¤ª¤¤¤Æ»ØÄꤷ¤¿·¿(ScoreManager ·¿)¤Î¼èÆÀ¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡TryGetComponent ¥á¥½¥Ã¥É¤Î·ë²Ì¡¢ScoreManager ·¿¤¬¼èÆÀ¤Ç¤¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï true ¤¬Ìá¤êÃͤȤ·¤ÆÌá¤ê¡¢if ʸ¤Îɾ²Á¤¬À®Î©¤·¤Þ¤¹¡£
¤«¤Ä¡¢out ¥¡¼¥ï¡¼¥É¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢scoreManager ÊÑ¿ô¤Ë¡¢º£²ó¼èÆÀ¤·¤¿ ScoreManager ·¿¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£
¤½¤·¤Æ¡¢if ʸÆâ¤Ë¤ª¤¤¤Æ¤Î¤ß¡¢scoreManager ÊÑ¿ô¤òÍøÍѤ·¤Æ¡¢ScoreManager ¤ËÂФ·¤ÆÌ¿Îá¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£(scoreManager ÊÑ¿ô¤Î¥¹¥³¡¼¥×¤Ï¡¢if ʸÆâ¤Î¤ß¤Ç¤¹)
¡¡¤³¤Î¤è¤¦¤Ë¡¢GameObject.Find ¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ë¤³¤È¤Ê¤¯¡¢Ì¿Îá¤ò½Ð¤·¤¿¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò OnTriggerEnter ¥á¥½¥Ã¥É¤Î°ú¿ô¤«¤é¼èÆÀ¤·¡¢
²Ã¤¨¤Æ TryGetComponent ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¡¢Ì¿Îᤷ¤¿¤¤ ScoreManager ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤è¤¦¤Ë½èÍý¤ò¤Ä¤Ê¤²¤ë¤³¤È¤Ç
Gem ¥¹¥¯¥ê¥×¥È¤«¤é ScoreManager ¥¹¥¯¥ê¥×¥È¤ËÂФ·¤ÆÌ¿Îá¤ò½Ð¤·¡¢ScoreManager ¥¹¥¯¥ê¥×¥ÈÆâ¤Î public ½¤¾þ»Ò¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë AddScore¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡Unity ¤Ç¤Ï¿§¡¹¤Ê¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ä¡¢¤½¤ì¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ËÂФ·¤ÆÌ¿Îá¤ò½Ð¤¹¤³¤È¤Ç¡¢¥²¡¼¥àÆâ¤ËÆ°¤¤ò¤Ä¤±¤Æ¤¤¤Þ¤¹¡£
¤½¤ì¤ò¼Â¸½¤¹¤ëÊýË¡¤¬¿§¡¹¤ÈÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢°ì¤«¤é¤¹¤Ù¤Æ¤Î½èÍý¤ò¼«ºî¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢Unity ¤Îµ¡Ç½¤ò³Ð¤¨¤Æ¡¢¤½¤ì¤ò³èÍѤ·¤Æ¤¤¤¯¤³¤È¤Ç
½èÍý¤Î¥í¥¸¥Ã¥¯¤ò¹½ÃÛ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¥×¥í¥°¥é¥à¤Ï°Åµ¤Ç¤Ï¤Ê¤¯¡¢¤É¤¦¤·¤Æ¤½¤Î½èÍý¤¬Æ°¤¤¤Æ¤¤¤ë¤Î¤«¡¢¤È¤¤¤¦Éôʬ¤ò¤·¤Ã¤«¤ê¤ÈÍý²ò¤·¤Æ¤¤¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¤½¤Î»ÅÁȤߤä¥í¥¸¥Ã¥¯¤¬Íý²ò¤Ç¤¤Æ¤¯¤ë¤³¤È¤Ç¡¢¼«Ê¬¤Ç½èÍý¤òºî¤Ã¤Æ¤¤¤¯ÎϤòÍܤ¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡½¤Àµ¤¬´°Î»¤·¤Þ¤·¤¿¤Î¤Ç¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÊõÀФ˥ץ쥤¥ä¡¼¤ò¿¯Æþ¤µ¤»¤Æ¤ß¤Þ¤¹¡£
Debug.Log ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ¡¢Console ¥Ó¥å¡¼¤Ë totalPoint ÊÑ¿ô¤ÎÃͤ¬¹¹¿·¤µ¤ì¤Æɽ¼¨¤µ¤ì¤ì¤Ð¡¢¥¹¥³¥¢¤Î²Ã»»½èÍý¤ÎÀ©¸æÀ®¸ù¤Ç¤¹¡£
Console ¥Ó¥å¡¼²èÁü
¡ã¼Â¹ÔÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡=>¡¡¼¡¤Ï¡¡¼ê½ç£±£´¡¡¡¼CanvasÆâ¤ËUIÉôÉʤòºîÀ®¤¹¤ë(¥¹¥³¥¢É½¼¨) ¡¼¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯