Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

¡¡Debug.Log ¥á¥½¥Ã¥É¤ò³èÍѤ·¤Æ¡¢Ãµº÷¥¤¥Ù¥ó¥È¤Î¼ÂÁõ¤Î½àÈ÷¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡Ãµº÷¥¤¥Ù¥ó¥È¤Ï²ñÏÃ¥¤¥Ù¥ó¥È¤Î±þÍѤǼÂÁõ½ÐÍè¤Þ¤¹¡£
²ñÏÃ¥¤¥Ù¥ó¥ÈÍѤιÔÆ°¥Ü¥¿¥ó¤ò²¡¤·¤¿ºÝ¤Ë¡¢¤½¤ì¤¬ NPC ¤Ç¤¢¤ì¤Ð²ñÏÃ¥¤¥Ù¥ó¥ÈÍѤβñÏÃ¥¦¥¤¥ó¥É¥¦¤ò³«¤­¡¢
õº÷¥¤¥Ù¥ó¥ÈÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È(ÊõÈ¢¤Ê¤É)¤Ç¤¢¤ì¤Ð¡¢Ãµº÷¥¤¥Ù¥ó¥ÈÍѤβñÏÃ¥¦¥¤¥ó¥É¥¦¤ò³«¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡¤³¤ÎÊýË¡¤Ç¼ÂÁõ¤ò¹Ô¤¦¤³¤È¤Ç£±¤Ä¤Î¥Ü¥¿¥ó¤ò²ñÏá¦Ãµº÷¤ÎξÊý¤Ë³èÍѤ¹¤ëÀ©¸æ½èÍý¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£


¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¼ê½ç£²£´¡¡¡¼Ãµº÷¥¤¥Ù¥ó¥È¤Î¼ÂÁõ½àÈ÷¡¼
£´£²¡¥Ãµº÷ÍѤÎÊõÈ¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®¤È TreasureBox ¥¹¥¯¥ê¥×¥È¤ÎºîÀ®¤ò¤·¡¢ÀßÄê¤ò¹Ô¤¦
£´£³¡¥¥×¥ì¥¤¥ä¡¼¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤ËÊõÈ¢¤¬¤¢¤ë¾ì¹ç¤Ë¡¢Ãµº÷¥¤¥Ù¥ó¥È¤¬È¯À¸¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë



¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£

¡¡¡¦¥×¥í¥Ñ¥Æ¥£
¡¡¡¦LayerMask ¤Ë¤è¤ë½èÍý¤Î¼«Æ°Ê¬´ôÀ©¸æ
¡¡¡¦½èÍý¤òÆɤ߲ò¤¤¤Æ¥³¥á¥ó¥È¤ò½ñ¤¯



£´£²¡¥Ãµº÷ÍѤÎÊõÈ¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®¤È TreasureBox ¥¹¥¯¥ê¥×¥È¤ÎºîÀ®¤ò¤·¡¢ÀßÄê¤ò¹Ô¤¦

£±¡¥Àß·×

¡¡
¡¡¥×¥ì¥¤¥ä¡¼¥­¥ã¥é¤¬¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤Ëõº÷ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È(ÃÏÅÀ´Þ¤à)¤¬Â¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢
Î㤨¤Ð¡¢ÊõÈ¢¤Ç¤¢¤ì¤Ð¡¢¤½¤ì¤òÄ´¤Ù¤ë¤³¤È¤Ë¤è¤ëõº÷ÍѤΥ¤¥Ù¥ó¥È¤òȯÀ¸¤µ¤»¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡½èÍý¤Î¼ÂÁõÊýË¡¤Ï¡¢NPC ¤È¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ÈƱ¤¸¤Ç¤¹¤Î¤Ç¡¢ÂоÝʪ¤òÄ´¤Ù¤ë¤È²ñÏÃ¥¦¥¤¥ó¥É¥¦¤¬É½¼¨¤µ¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢NPC ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë DialogCanvas ¤ò¤½¤Î¤Þ¤ÞÍøÍѤ·¤ÆºîÀ®¤·¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡
¡¡ºÇ½é¤Ë DialogCanvas ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥×¥ì¥Õ¥¡¥Ö¤Ë¤·¡¢¤½¤Î¸å¡¢NPC ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÊ£À½¤·¤Æ¡¢
õº÷ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Æ¤¤¤­¤Þ¤¹¡£


£²¡¥NPC ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤«¤éõº÷ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë


¡¡Ãµº÷ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®ÊýË¡¤Ï¤¤¤¯¤Ä¤«¤¢¤ê¤Þ¤¹¡£
º£²ó¤Ï¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë NPC ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò³èÍѤ·¤Æ¡¢ÊõÈ¢¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë NPC ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë¡¢DialogCanvas ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤Æ¡¢
Prefabs ¥Õ¥©¥ë¥À¤Ø¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥×¥ì¥Õ¥¡¥Ö¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£


Prefabs ¥Õ¥©¥ë¥À²èÁü




¡¡¤Ä¤Å¤¤¤Æ¡¢¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë NPC ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤Æ±¦¥¯¥ê¥Ã¥¯¤·¤Æ¥á¥Ë¥å¡¼¤òɽ¼¨¤·¡¢Duplicate ¤òÁªÂò¤·¤Þ¤¹¡£
NPC ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Ê£À½¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢Ì¾Á°¤ò TreasureBox ¤ËÊѹ¹¤·¤Þ¤¹¡£

¥Ò¥¨¥é¥ë¥­¡¼²èÁü



¡¡DialogCanvas ¤¬¥×¥ì¥Õ¥¡¥Ö¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Ê£À½¤µ¤ì¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î DialogCanvas ¤â¥×¥ì¥Õ¥¡¥Ö¾õÂ֤ΤϤº¤Ç¤¹¡£
¤³¤Î¤è¤¦¤Ë¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¥×¥ì¥Õ¥¡¥Ö¤Î DialogCanvas ¤ËÊѹ¹¤ò²Ã¤¨¤ë¤È¡¢NPC ÍѤΠDialogCanvas ¤Èº£²óÊ£À½¤·¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î DialogCanvas ¤ÎξÊý¤¬°ì½ï¤ËÊѹ¹¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£


£³¡¥TreasureBox ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ò¹Ô¤¦


¡¡TresureBox ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÏÊ£À½¤·¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÈƱ¤¸°ÌÃ֤ˤ¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤Ï°ÌÃÖ¤òÊѹ¹¤·¤Æ¸«¤¨¤ë¾õÂ֤ˤ·¤Æ¤¯¤À¤µ¤¤¡£

¡¡ºÇ½é¤Ë¡¢TreasureBox ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤è¤ê¡¢ÉÔÍפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤ÎRemove(ºï½ü)¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡Animator ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È NonPlayerCharacter ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò Remove(ºï½ü)¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡Â³¤¤¤Æ¡¢SpriteRenderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î Sprite ¤ËǤ°Õ¤Î²èÁü¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£
²èÁü¤Ë¤Ä¤¤¤Æ¤Ï¥À¥¦¥ó¥í¡¼¥É¤·¤¿¤â¤Î¤ò¥¤¥ó¥Ý¡¼¥È¤·¤ÆÍøÍѤ·¤Þ¤·¤ç¤¦¡£
Ê£¿ô¤Î²èÁü¤¬£±Ëç¤Î²èÁü¤È¤·¤ÆÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢Sprite Editor ¤Îµ¡Ç½¤ò³èÍѤ·¤Æʬ³ä¤·¤Æ¤«¤éÍøÍѤ·¤Æ¤¯¤À¤µ¤¤¡£

¡¡£³¤ÄÌܤˡ¢NPC ¤ÈƱ¤¸¤è¤¦¤Ë¡¢ÀìÍѤΥ쥤¥ä¡¼¤òºîÀ®¤·¤ÆÅÐÏ¿¤·¤Þ¤¹¡£ÅÐÏ¿ÊýË¡¤Ï¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Î Layer ¤ÎÉôʬ¤ò¥¯¥ê¥Ã¥¯¤·¤Æ Add Layer ¤òÁªÂò¤·¤Þ¤¹¡£
¥ì¥¤¥ä¡¼Ì¾¤Ë TreasureBox ¤ÈÅÐÏ¿¤·¤Æ¤«¤é¡¢ºÆÅÙ TreasureBox ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤Æ¡¢¥ì¥¤¥ä¡¼¤òÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



Scene¥Ó¥å¡¼²èÁü



¡¡ÀßÄꤷ¤¿²èÁü¤Î¥µ¥¤¥º¤È²èÌ̤Υ¿¥¤¥ë¤Î¥µ¥¤¥º¤¬¹ç¤ï¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢²èÁü¥Õ¥¡¥¤¥ë¤òÁªÂò¤·¤Æ¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤òɽ¼¨¤·¡¢
Pixels Per Unit ¤ÎÃͤòÄ´À°¤·¤Æ¤¯¤À¤µ¤¤¡£¥¿¥¤¥ë¤Î²èÁü¥Õ¥¡¥¤¥ë¤Î Pixels Per Unit ¤Ï 32 ¤ËÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
32 ¤è¤ê¤â¾®¤µ¤¤ÃͤòÀßÄꤹ¤ë¤È¡¢²èÁü¤¬¥¿¥¤¥ë¤Î²èÁü¤è¤ê¤âÂ礭¤¯¤Ê¤ê¤Þ¤¹¤·¡¢32¤è¤ê¤âÂ礭¤¤ÃͤËÀßÄꤹ¤ì¤Ð¡¢²èÁü¤Ï¾®¤µ¤¯¤Ê¤ê¤Þ¤¹¡£


»²¹Í
¥¿¥¤¥ëÍѤβèÁü¤È Pixels Per Unit



¥¿¥¤¥ë¤è¤ê¤âÊõÈ¢¤Î²èÁü¤¬Â礭¤«¤Ã¤¿¾ì¹ç¤Î Pixels Per Unit ¤ÎÀßÄê



¡¡ºÇ¸å¤Ë¥³¥é¥¤¥À¡¼¤Î¥µ¥¤¥º¤ò³Îǧ¤·¤Þ¤¹¡£
Scene¥Ó¥å¡¼¤Ë¤Æ³Îǧ¤·¤Ê¤¬¤é¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î·Á¾õ¤ÈƱ¤¸°Ì¤Ë¤Ê¤ë¤è¤¦¤Ë¥µ¥¤¥º¤òÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü(»²¹ÍÃͤǤ¹¡£²èÁü¤Ë¹ç¤ï¤»¤Þ¤·¤ç¤¦)



Scene¥Ó¥å¡¼²èÁü¡¡

¡¡

¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
»Ò¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë DialogCanvas ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀßÄê¤ÏÉÔÍפǤ¹¤¬¡¢Ç°¤Î¤¿¤á¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤é¥¢¥µ¥¤¥ó¤¬³°¤ì¤Æ¤¤¤Ê¤¤¤«³Îǧ¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



¡¡¼¡¤Ë¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¡¢¤½¤Î¸å¡¢TresureBox ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£


£´¡¥TreasureBox ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢TreasureBox ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤ÆÀßÄê¤ò¹Ô¤¦


¡¡¥³¥á¥ó¥È¤Ï¥«¥Ã¥È¤·¤Æ¤¢¤ê¤Þ¤¹¤¬¡¢½èÍý¤ÎÂç¶Ú¤Ï NonPlayerCharacter ¥¯¥é¥¹¤ÈƱ¤¸¤Ç¤¹¡£
¸«Ä¾¤·¤ò¤·¤Ä¤Ä¡¢¤³¤Á¤é¤Î½èÍý¤ò½ñ¤¤¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£¤Þ¤¿¡¢½èÍý¤ò½ñ¤¯Á°¤Ë¡¢NonPlayerCharacter ¥¯¥é¥¹¤Î¥³¥á¥ó¥È¤ò¸µ¤Ë¤·¤Æ½èÍý¤Î¼ÂÁõ¤ËÄ©À路¤Æ¤ß¤Æ¤â¤¤¤¤¤Ç¤·¤ç¤¦¡£


TreasureBox.cs

<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£



¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë TreasureBox ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë TreasureBox ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Æ¤¯¤À¤µ¤¤¡£
¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤·¤¿¤é¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤é¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Þ¤¹¡£

¡¡»öÁ°¤Ë¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤êÀßÄꤷ¤Æ¤ª¤¯¾ðÊó¤È¤·¤Æ¡¢dialogController ÊÑ¿ô¤¬É½¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
TreasureBox ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤Î DialogCanvas ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£
¤³¤ì¤Ç»Ò¥ª¥Ö¥¸¥§¥¯¥È¤È¤Î¤Ä¤Ê¤¬¤ê¤¬½ÐÍè¤Þ¤·¤¿¡£

¡¡EventData ¤ÎÆâÍÆ¤Ï NPC ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÈƱ¤¸¤è¤¦¤Ë¥²¡¼¥à¼Â¹Ô»þ¤Ë¼«Æ°Åª¤Ë¥Ç¡¼¥¿¤òÆɤ߹þ¤à¤è¤¦¤Ë¤·¤Þ¤¹¤Î¤Ç¡¢½é´üÃͤΤޤޤǹ½¤¤¤Þ¤»¤ó¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü

¡¡

£´£³¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Æ¡¢¥×¥ì¥¤¥ä¡¼¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤ËÊõÈ¢¤¬¤¢¤ë¾ì¹ç¤Ë¡¢Ãµº÷¥¤¥Ù¥ó¥È¤¬È¯À¸¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë

£±¡¥Àß·×


¡¡¥×¥ì¥¤¥ä¡¼¥­¥ã¥é¤Î¹ÔÆ°ÍѤΥܥ¿¥ó¤Ï£±¤Ä¤Ë¤·¤Æ¤ª¤­¤¿¤¤¤Î¤Ç¡¢¥Ü¥¿¥ó¤ò²¡¤·¤Æ Ray ¤òȯ¼Í¤·¤¿¤µ¤¤¤Ë¡¢Ray ¤ÈÀÜ¿¨¤·¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î Layer ¤ÎÃͤˤè¤Ã¤Æ
½èÍý¤ò¼«Æ°Åª¤Ëʬ´ô¤¹¤ë¤è¤¦¤ÊÀ©¸æ¤ò¹Í¤¨¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¸½ºß¤Ï Ray ¤¬ NPC ¤È¤¤¤¦¥ì¥¤¥ä¡¼¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËÀÜ¿¨¤·¤¿¾ì¹ç¤Ë¡¢¤½¤Î³Îǧ¤ò¹Ô¤Ã¤¿¾å¤Ç¡¢²ñÏÃ¥¤¥Ù¥ó¥È¤òȯÀ¸¤µ¤»¤Æ¤¤¤Þ¤¹¡£
¤³¤Á¤é¤Î½èÍý¤ò±þÍѤ·¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£

¡¡Ray ¤¬È½Äꤹ¤ëÂоݤȤʤë¥ì¥¤¥ä¡¼¤ÏÊ£¿ô»ØÄ꤬¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢NPC ¥ì¥¤¥ä¡¼¤À¤±¤Ç¤Ï¤Ê¤¯¡¢TreasureBox ¥ì¥¤¥ä¡¼¤Ë¤âÈ¿±þ¤¹¤¦¤è¤¦¤Ë¤·¡¢
¤µ¤é¤Ë¤½¤ì¤ò¡Ö¤É¤Î¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë¤Î¤«¡×¤òÆÃÄꤹ¤ë¤³¤È¤¬½ÐÍè¤ì¤Ð¡¢£±¤Ä¤Î¥Ü¥¿¥ó¤Ç°Û¤Ê¤ëÀ©¸æ½èÍý¤ò¼«Æ°Åª¤ËȽÊ̽ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡º£²ó¤Ï¡Ö¤É¤Î¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¢¤ë¤Î¤«¡×¤òÆÃÄꤹ¤ëÊýË¡¤È¤·¤Æ¡¢¤½¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹(¥³¥ó¥Ý¡¼¥Í¥ó¥È)¤«¤éȽÊ̤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¼ïÎà¤ÎÆÃÄê¤Ë¹ç¤ï¤»¤Æ¡¢É¬ÍפʾðÊó(¥¯¥é¥¹)¤ò¼èÆÀ¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢È½Ê̡ܼèÆÀ¤Î½èÍý¤ò£±²ó¤Ç¹Ô¤¦¤è¤¦¤Ë¤·¤Æ¤¤¤ë¼ÂÁõÊýË¡¤Ç¤¹¡£

¡¡¤³¤ì¤Ï°ìÎã¤Ç¤¢¤ë¤Î¤Ç¡¢Ä¾Àܥ쥤¥ä¡¼¼«ÂΤÎȽÊ̤ò¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤â¹½¤¤¤Þ¤»¤ó¡£¤¿¤À¤·¤½¤Î¾ì¹ç¤Ï¡¢¡Ö¥ì¥¤¥ä¡¼¤ÎȽÄê¸å¡×¤Ë¡¢ÂоݤȤʤ륳¥ó¥Ý¡¼¥Í¥ó¥È¤Î¼èÆÀ½èÍý¤¬ÊÌÅÓɬÍפˤʤê¤Þ¤¹¡£


£²¡¥PlayerController ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë


¡¡Á°²ó¤Î±þÍѲÝÂê¤Ç¤¢¤Ã¤¿¡¢¥¤¥ó¥Ù¥ó¥È¥ê¥¦¥¤¥ó¥É¥¦É½¼¨Ãæ¤Î¥­¥ã¥é¤ÎÀ©¸æ½èÍý¤â°ì½ï¤Ëµ­½Ò¤·¤Æ¤¢¤ê¤Þ¤¹¡£

¡¡ºÇ¸å¤ËÉü½¬¤ò¹Ô¤¦¤¿¤á¡¢¿·¤·¤¯Äɲ䷤Ƥ¤¤ë½èÍý¤Ë¤Ä¤¤¤Æ¤Ï¥³¥á¥ó¥È¤ò¥«¥Ã¥È¤·¤Æ¤¢¤ê¤Þ¤¹¡£
¤Þ¤º¤Ï¼«Ê¬¤Ç½èÍý¤ò½ñ¤­¤Ê¤¬¤é¡¢¤É¤Î¤è¤¦¤Ê½èÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤Î¤«¤òÍý²ò¤·¤Ê¤¬¤é½ñ¤­¿Ê¤á¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡¡¤½¤Î¸å¡¢¥³¥á¥ó¥È¤ò¤Ä¤±¤Ê¤¬¤é¡¢Éü½¬¤ò¹Ô¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£¥³¥á¥ó¥È¤Î»²¹ÍÎã¤ÏºÇ¸å¤Ë¤¢¤ê¤Þ¤¹¡£


PlayerController.cs

¡¡<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£


¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¤·¤Þ¤¹¡£


£³¡¥¡ã¥×¥í¥Ñ¥Æ¥£¡ä


¡¡¥×¥í¥Ñ¥Æ¥£¤È¤Ï¡¢¥¯¥é¥¹³°Éô¤«¤é¸«¤ë¤È¥á¥ó¥Ð¡¼ÊÑ¿ô¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¤¡¢ ¥¯¥é¥¹ÆâÉô¤«¤é¸«¤ë¤È¥á¥½¥Ã¥É¤Î¤è¤¦¤Ë¿¶¤ëÉñ¤¦µ¡Ç½¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢¼ÂÁõ¾õÂÖ(private½¤¾þ»Ò¤Î¤Þ¤Þ)¤òÊѹ¹¤¹¤ë¤³¤È¤Ê¤¯¡¢³°Éô¥¯¥é¥¹¤Ø¤Î»²¾È¡¦Êѹ¹¤ò¹Ô¤¨¤ëµ¡Ç½¤Ç¤¢¤ë¤¿¤á¡¢°·¤¤¤ò³Ð¤¨¤Æ¤ª¤¯¤ÈÈó¾ï¤ËÊØÍø¤Ç¤¹¡£

¡¡¤³¤ÎÆÃÀ­¤è¤ê¡¢¥×¥í¥Ñ¥Æ¥£¤òºîÀ®¤¹¤ë¾ì¹ç¡¢Â¿¤¯¤Ï private ½¤¾þ»Ò¤ÎÊÑ¿ô¤Î¾ðÊó¤ò°·¤¦¤¿¤á¤ËºîÀ®¤·¤Þ¤¹¡£
º£²ó¤Î¾ì¹ç¤Ï¡¢PlayerController ¥¯¥é¥¹¤Î isTalking ÊÑ¿ô¤ËÂФ·¤Æ¤Î¥×¥í¥Ñ¥Æ¥£¤òºîÀ®¤·¤Þ¤¹¡£

¡ã¥×¥í¥Ñ¥Æ¥£¤ÎºîÀ®¡ä
    private bool isTalking;


    /// <summary>
    /// isTalking ÊÑ¿ô¤Î¥×¥í¥Ñ¥Æ¥£
    /// </summary>
    public bool IsTalking
    {
        set {
            isTalking = value;
        }

        get {
            return isTalking;
        }
    }

¡¡¾åµ­¤Î¤è¤¦¤Ê¥×¥í¥Ñ¥Æ¥£¤òºîÀ®¤¹¤ë¤³¤È¤Ç¡¢private ½¤¾þ»Ò¤ÇÀë¸À¤·¤Æ¤¤¤ë isTalking ÊÑ¿ô¤ò
¥×¥í¥Ñ¥Æ¥£¤òÍøÍѤ¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢³°Éô¥¯¥é¥¹¤«¤é»²¾È½ÐÍè¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£

¡¡private ½¤¾þ»Ò¤Ë¤ÆÀë¸À¥Õ¥£¡¼¥ë¥É¤ÇÀë¸À¤·¤¿ÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï¡¢³°Éô¤Î¥¯¥é¥¹¤«¤é¤Ï»²¾È¡¦Êѹ¹¤ò¹Ô¤¦¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£
¤³¤Î¤È¤­»²¾È¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ÊÑ¿ô¤Î½¤¾þ»Ò¤ò public ½¤¾þ»Ò¤ËÊѹ¹¤·¤ÆÂбþ¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯
¥×¥í¥Ñ¥Æ¥£¤Î»ý¤Ä get ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤Æ¡¢Ìá¤êÃͤòÍøÍѤ·¤Æ private ½¤¾þ»Ò¤ÎÊÑ¿ô¤ò³°Éô¥¯¥é¥¹¤Ë»²¾È¤µ¤»¤ë¤³¤È¤ÇÂбþ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¤³¤¦¤¤¤Ã¤¿µ¡Ç½¤òÃΤäƤ¤¤ë¤«¤É¤¦¤«¤ÇÀß·×Éôʬ¤¬Â礭¤¯ÊѤï¤ê¤Þ¤¹¡£
¿§¡¹¤Êµ¡Ç½¤òÃΤäƤ¤¤ì¤Ð¡¢Î㤨¤Ð¡¢º£²ó¤Ï¥×¥í¥Ñ¥Æ¥£¤ò»È¤ª¤¦¤«¡¢¤É¤¦¤·¤è¤¦¤«¡¢¤È¤¤¤¦ÁªÂò»è¤¬Áý¤¨¤Þ¤¹¤¬¡¢ÃΤé¤Ê¤±¤ì¤ÐÁªÂò»è¼«ÂΤ¬À¸¤Þ¤ì¤Þ¤»¤ó¡£

¡¡À߷פΰú¤­½Ð¤·¤ò¹­¤²¤ë¾å¤Ç¤â¡¢¿·¤·¤¤µ»½Ñ¤ò³Ð¤¨¤ë¤³¤È¡¢¾ï¤Ë³Ø½¬¤¹¤ë°ÕÍߤȸþ¾å¿´¤ò»ý¤Ä¤³¤È¤¬¥×¥í¥°¥é¥à³Ø½¬¤Î¥Ý¥¤¥ó¥È¤Ç¤¹¡£



¡¡¥×¥í¥Ñ¥Æ¥£¤òÍøÍѤ·¤¿À߷פˤè¤ê¡¢public ¤Ç¤Ï¤Ê¤¤ÊÑ¿ô¤ò³°Éô¥¯¥é¥¹¤ÇÍøÍѤǤ­¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
³°Éô¤«¤é¥×¥í¥Ñ¥Æ¥£¤ò¸Æ¤Ó½Ð¤·¤ÆÌá¤êÃͤò»²¾È¤¹¤ë½èÍý¤Î¤³¤È¤ò¥²¥Ã¥¿¡¼(getter)¤È¸Æ¤Ó¤Þ¤¹¡£

  get {
      return isTalking;
  }



¡¡Æ±Íͤˡ¢private ½¤¾þ»Ò¤ÎÃͤò³°Éô¥¯¥é¥¹¤è¤êÊѹ¹¤·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢¥×¥í¥Ñ¥Æ¥£¤òÃç²ð¤¹¤ë¼êË¡¤ò»È¤Ã¤Æ½ñ¤­´¹¤¨¤ë½èÍý¤ò¼ÂÁõ½ÐÍè¤Þ¤¹¡£
¤³¤Á¤é¤Î½èÍý¤Ï set ¥­¡¼¥ï¡¼¥É¤òÍøÍѤ·¤Æ½èÍý¤òµ­½Ò¤·¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢¤³¤Î½èÍý¤ò¥»¥Ã¥¿¡¼(setter)¤È¸Æ¤Ó¤Þ¤¹¡£

¡¡set ¥­¡¼¥ï¡¼¥ÉÆâ¤Ë¤Ï¸Æ¤Ó½Ð¤·¸µ¤«¤é value ¤ÎÃͤǾðÊó¤¬ÆϤ¤¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢value ¤ÎÃͤòÍøÍѤ¹¤ë¤³¤È¤Ç private ½¤¾þ»Ò¤ÎÊÑ¿ô¤ËÂåÆþ½èÍý¤ò¹Ô¤¦¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

  set {
      isTalking = value;
  }

¡¡¤³¤Î½èÍý¤ò³°Éô¤Î¥¯¥é¥¹¤«¤é¼Â¹Ô¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢»²¾È¤¹¤ë¾ì¹ç¤ÈƱ¤¸¤Ç¡Ö¥¯¥é¥¹¤ÎÊÑ¿ô.¥×¥í¥Ñ¥Æ¥£Ì¾¡×¤Èµ­½Ò¤¹¤ë¤³¤È¤ÇÃͤνñ¤­´¹¤¨¤¬²Äǽ¤Ç¤¹¡£

º£²ó¤Î¥±¡¼¥¹¤Ç¤¢¤ì¤Ð¼¡¤Î¤è¤¦¤Ê·Á¤Ç»²¾È¤·¤ÆÍøÍѤǤ­¤Þ¤¹¡£

¡ãTreasureBox.cs¡ä
¡¡¡¡// ¥×¥í¥Ñ¥Æ¥£¤ÎÍøÍÑ
    public void CloseTreasureBox() {

        dialogController.HideDialog();

        // ¥¯¥é¥¹¤ÎÊÑ¿ô.¥×¥í¥Ñ¥Æ¥£¤ÇÍøÍѤ·¤Æ¤¤¤ë
        playerController.IsTalking = false;
    }



¡¡get¡¢set ¥­¡¼¥ï¡¼¥É¤Ï¤É¤Á¤é¤«ÊÒÊý¤À¤±¤Ç¤âµ­½Ò¤Ç¤­¤Þ¤¹¡£
¤Þ¤¿¥×¥í¥Ñ¥Æ¥£ÆâÉô¤Ë¾ò·ï¼°¤òÍÑ°Õ¤·¤Æ¡¢¤½¤Î·ë²Ì¤Ë¹ç¤ï¤»¤Æ½èÍý¤òÊѹ¹¤¹¤ëµ­½Ò¤â½ÐÍè¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
̤³ÎǧÈô¹Ô C ÍÍ
¥×¥í¥Ñ¥Æ¥£
https://ufcpp.net/study/csharp/oo_property.html

FEnet¥¤¥ó¥Õ¥éÍÍ¡¡¥Æ¥Ã¥¯¥Ö¥í¥°
C#¤Î¥×¥í¥Ñ¥Æ¥£¤ò»È¤¤¤³¤Ê¤½¤¦¡ª¤µ¤Þ¤¶¤Þ¤Ê¼ÂÁõÊýË¡¤ò¾Ò²ð
https://www.fenet.jp/infla/column/technology/c%E3%...



¡¡¼ÂºÝ¤Î»ÈÍÑÎã¤Ç¤¹¡£³°Éô¥¯¥é¥¹¤«¤é¤Ï¡¢¡Ö¥×¥í¥Ñ¥Æ¥£¤Î¤¢¤ë¥¯¥é¥¹¤ÎÊÑ¿ô.¥×¥í¥Ñ¥Æ¥£Ì¾¡×¤Èµ­½Ò¤¹¤ë¤³¤È¤Ç»²¾È¤¬²Äǽ¤Ç¤¹¡£
»²¾È¤¹¤ë¾ì¹ç¤ÏÄ̾ï¤ÎÊÑ¿ô¤ÈƱ¤¸¤è¤¦¤Ë¡¢º¸ÊÕ¤ËÊÑ¿ô¤òÍÑ°Õ¤·¤ÆÂåÆþ¤·¤¿¤ê¡¢°ú¿ô¤ÎÉôʬ¤ËÍøÍѤ·¤¿¤ê½ÐÍè¤Þ¤¹¡£

¡ãÍøÍÑÎã¡ä
  PlayerController player = GetComponent<PlayerController>();

  player.IsTalking = false;

¡¡º£²ó¤Î¥±¡¼¥¹¤Ç¤Ï¥á¥½¥Ã¥É¤Î°ú¿ô¤Ë PlayerController ¥¯¥é¥¹¤Î¾ðÊó¤¬ÆϤ¤¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤ì¤ò³èÍѤ·¤Æ¥¯¥é¥¹¤ò¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£
GetComponent ¥á¥½¥Ã¥É°Ê³°¤Ç¤â¥¯¥é¥¹¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤ëÊýË¡¤¬¤¢¤ë¤³¤È¤ò³Ð¤¨¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£


¡ãTreasureBox.cs ¤Ë¤ÆÍøÍÑ¡ä
    // Àë¸À¥Õ¥£¡¼¥ë¥É¤Ë¤ÆÊÑ¿ô¤òÀë¸À
    private PlayerController playerController;
 
----------------------------------------------------------------------------------------------

¡¡¡¡// ¥¯¥é¥¹¤Î¾ðÊó¤ò¼èÆÀ
    public void OpenTresureBox(Vector3 playerPos, PlayerController playerController) {

¡¡¡¡¡¡¡¡// ¥á¥½¥Ã¥É¤ËÆϤ¤¤¿ PlayerController ¥¯¥é¥¹¤Î¾ðÊó¤òÊÑ¿ô¤ËÂåÆþ
        if (this.playerController == null) {
            this.playerController = playerController;
        }

        // ¾Êά
¡¡¡¡}

----------------------------------------------------------------------------------------------

¡¡¡¡// ¥×¥í¥Ñ¥Æ¥£¤ÎÍøÍÑ
    public void CloseTreasureBox() {

        dialogController.HideDialog();

        // ¥¯¥é¥¹¤ÎÊÑ¿ô.¥×¥í¥Ñ¥Æ¥£¤ÇÍøÍѤ·¤Æ¤¤¤ë
        playerController.IsTalking = false;
    }

¡¡½èÍý¤ò¸«Ä¾¤·¤Æ¡¢Î®¤ì¤òÇÄ°®¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£


£´¡¥¡ãLayerMask ¤Ë¤è¤ë½èÍý¤Î¼«Æ°Ê¬´ôÀ©¸æ¡ä


¡¡¥×¥ì¥¤¥ä¡¼¥­¥ã¥é¤¬ Action ¤Î¥Ü¥¿¥ó¤ò²¡¤¹¤È¡¢¤¤¤Þ¤Þ¤Ç¤Ï¤½¤ÎÊý¸þ¤Ë¤¢¤Ã¤¿ NPC ¤È¤¤¤¦ Layer ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥³¥é¥¤¥À¡¼¤ò¼èÆÀ¤·¤Æ¤¤¤Þ¤·¤¿¡£
¤½¤ÎºÝ¤Ë¤Ï¡¢Physics2D ¥¯¥é¥¹¤Î»ý¤Ä Raycast ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¼èÆÀ¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¤³¤Î Raycast ¥á¥½¥Ã¥É¤ÎÂÐ¾Ý Layer ¤Ï£±¼ïÎà¤Ç¤Ï¤Ê¤¯¡¢Ê£¿ô¤Î»ØÄ꤬²Äǽ¤Ç¤¹¡£

¡¡º£²ó¤Ï¤³¤Î¼èÆÀ¤¹¤ë Layer ¤ÎÈϰϤòÇÛÎóÊÑ¿ô¤ËÅÐÏ¿¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢Ê£¿ô¤Î Layer ¤ò¼èÆÀÂоݤˤ·¤Æ¡¢NPC ¤È ÊõÈ¢¤ÎξÊý¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤è¤¦¤ËÀ©¸æ¤òÊѹ¹¤·¤Æ¤¤¤Þ¤¹¡£


¡¡¡¡// Àë¸À¥Õ¥£¡¼¥ë¥É
    private string[] actionlayerMasks = new string[2] { "NPC", "TresureBox" };¡¡¡¡¡¡// Ê£¿ô¤Î LayerMask ¤ÎÀßÄê

¡¡¡¡// actionlayerMasks ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Æ¤¤¤ëÊ£¿ô¤Îʸ»úÎó¤Î Layer ¤òȽÄêÂоݤȤ¹¤ë¡¡<=¡¡NPC ¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤À¤±¤Ç¤Ï¤Ê¤¯¡¢TreasureBox ¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤âÈ¿±þ¤¹¤ë
    RaycastHit2D hit = Physics2D.Raycast(rb.position, lookDirection, 1.0f, LayerMask.GetMask(actionlayerMasks));



£µ¡¥¡ã½èÍý¤òÆɤ߲ò¤¤¤Æ¥³¥á¥ó¥È¤ò½ñ¤¯¡ä


¡¡¾åµ­¤Î¾ðÊó¤ò¸µ¤Ë¡¢PlayerController ¥¹¥¯¥ê¥×¥È¤Î Action ¥á¥½¥Ã¥É¤òÆɤ߲ò¤¤¤Æ¡¢¥³¥á¥ó¥È¤òµ­½Ò¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£

¡ãAction ¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤Î¥³¥á¥ó¥ÈÎã¡ä

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹¡£


¡¡¥³¥á¥ó¥È¤Ï¤³¤ÎÄ̤ê¤Ç¤¢¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£Ê¬´ô¤Î¾õÂ֤䡢¸Æ¤Ó½Ð¤µ¤ì¤ë¥á¥½¥Ã¥É¤¬¤É¤Î¤è¤¦¤Ë½èÍý¤µ¤ì¤Æ¤¤¤ë¤Î¤«¤òÍý²ò¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£

¡¡¼èÆÀ¤·¤¿¾ðÊó¤Ï RaycastHt2D ·¿¤Î hit ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£¤³¤Î»þÅÀ¤Ç¤Ï¡¢NPC ¥ì¥¤¥ä¡¼¤È TrasureBox ¥ì¥¤¥ä¡¼¤Î¤¦¤Á¡¢
¤É¤Á¤é¤Î¾ðÊó¤ò»ý¤Ä¥³¥é¥¤¥À¡¼¤¬ hit ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Æ¤¤¤ë¤«¤ï¤«¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¿·¤·¤¯Ê¬´ô¤òÄɲ䷤ơ¢¥³¥é¥¤¥À¡¼¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë
¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¼ïÎà¤ò¸«¤Æ¡¢¾ðÊó¤òʬ´ô¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£

¡¡NonPlayerCharacter ¥¯¥é¥¹¤¬¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È¤·¤Æ¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢NPC ¤È¤Î²ñÏÃ¥¤¥Ù¥ó¥È¤ò¡¢
TreasureBox ¥¯¥é¥¹¤¬¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È¤·¤Æ¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢Ãµº÷ÍѤβñÏÃ¥¤¥Ù¥ó¥È¤È¤¤¤¦¤è¤¦¤Ë¡¢£±¤Ä¤Î¥Ü¥¿¥ó¤ÎÁàºî¤ò¼«Æ°Åª¤Ëʬ´ô¤·¤Æ
½èÍý¤ÎÆâÍƤòÊѹ¹¤¹¤ëÀ©¸æ¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£


£¶¡¥¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë


¡¡½àÈ÷¤¬À°¤¤¤Þ¤·¤¿¤Î¤Ç¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¼Â¹Ô¤·¤Æ¡¢ÊõÈ¢¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¸þ¤«¤Ã¤Æ¹ÔÆ°¥Ü¥¿¥ó¤ò²¡¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¤Þ¤¿¡¢ÊõÈ¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï¥³¥é¥¤¥À¡¼¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤ÎÃæ¤Ë¿¯Æþ¤·¤Æ¤·¤Þ¤ï¤Ê¤¤¤«¤â³Îǧ¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£

¡¡Debug.Log ¤Ë¡¡"õº÷¥¤¥Ù¥ó¥ÈÍѤβñÏÃ¥¦¥¤¥ó¥É¥¦¤ò³«¤¯" ¤Èɽ¼¨¤µ¤ì¤ì¤Ð¡¢¥ì¥¤¥ä¡¼¤Ë¤è¤ë¼«Æ°Ê¬´ô¤Ë¤è¤ëÀ©¸æÀ®¸ù¤Ç¤¹¡£
¤â¤¦°ìÅ٥ܥ¿¥ó¤ò²¡¤·¤Æ "õº÷¥¤¥Ù¥ó¥ÈÍѤβñÏÃ¥¦¥¤¥ó¥É¥¦¤òÊĤ¸¤ë" ¤Èɽ¼¨¤µ¤ì¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£
¤³¤Î´Ö¤Ï¥­¥ã¥é¤Î°ÜÆ°¤¬¤Ç¤­¤Ê¤¤¤³¤È¤â³Îǧ¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£

¡¡¤Þ¤À²ñÏÃ¥¦¥¤¥ó¥É¥¦¤Ï³«¤¯½èÍý¤Ï¼Â¹Ô¤·¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢¥¦¥¤¥ó¥É¥¦¤Ï³«¤­¤Þ¤»¤ó¡£
½èÍý¤Îή¤ì¤òÇÄ°®¤·¤Æ¡¢¸½ºß¤Þ¤Ç¤Ë¤É¤Î¤è¤¦¤Ê¼ÂÁõ¤¬ºÑ¤ó¤Ç¤ª¤ê¡¢¤É¤³¤¬»Ä¤Ã¤Æ¤¤¤ë¤Î¤«¤òÀµ³Î¤ËÇÄ°®¤·¤Æ¤ª¤­¤Þ¤·¤ç¤¦¡£


¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£

¡¡¼¡¤Ï¡¡¼ê½ç£²£µ¡¡¡¼Ãµº÷¥¤¥Ù¥ó¥È¤Î¼ÂÁõ¡¼¡¡¤Ç¤¹¡£

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹