ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ03·î27Æü(·î) 21:52:05ÍúÎò
Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë
Null Reference Exceptions
¡¡¥¨¥é¡¼¤ÎȯÀ¸¤·¤Æ¤¤¤ë¾ì½ê¤Ë¤Ä¤¤¤Æ¤Ï¥¨¥Ç¥£¥¿¡¼¤¬¥Ò¥ó¥È¤òÄ󼨤·¤Æ¤¯¤ì¤Þ¤¹¤¬¡¢
¥¨¥é¡¼¤ÎÆâÍÆ¤¬Íý²ò¤Ç¤¤Ê¤±¤ì¤Ð¡¢¸¶°ø¤òÆÃÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¤¿¤á¡¢¥¨¥é¡¼¤ò²ò¾Ã¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£
¡¡¤½¤Î¤¿¤á¡¢ÌäÂêÅÀ¤òÀÚ¤êʬ¤±¤Æ¹Í¤¨¤ë¤È¤¤¤¦¹Í¤¨Êý¤¬½ÅÍפˤʤê¤Þ¤¹¡£
¡¡³ºÅö¤Î Null Reference Exceptions ¥¨¥é¡¼¤Ï¡¢Unity ¤Î Console ¥Ó¥å¡¼¤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£
¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤Ç¥¨¥Ç¥£¥¿¡¼¤Î¥¨¥é¡¼²Õ½ê¤Ë°Üư¤·¤Þ¤¹¤Î¤Ç¡¢¤½¤Î¹Ô¤Ç¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤¤¤ë¤³¤È¤ò¡¢¤Þ¤º¤ÏÍý²ò¤·¤Þ¤¹¡£
¡¡Console ¥Ó¥å¡¼¤Ëɽ¼¨¤µ¤ì¤ë¥¨¥é¡¼¤Îɽ¼¨ÊýË¡¤Ë¤Ïµ¬Â§¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤Ï¤½¤Á¤é¤ò³Ð¤¨¤Þ¤·¤ç¤¦¡£
¤½¤Î¾å¤Ç¥¹¥¯¥ê¥×¥È¤Î²¿¹ÔÌܤǥ¨¥é¡¼¤¬½Ð¤Æ¤¤¤ë¤«¤òÄ´¤Ù¤Æ¤¤¤¯¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤Þ¤º¤ÏÌäÂêÅÀ¤òÀÚ¤êʬ¤±¤Æ¤¤¤¯¤¿¤á¡¢¥¨¥é¡¼¤ÎȯÀ¸¤·¤Æ¤¤¤ë¹ÔÆâ¤ÎÊÑ¿ô¤ò£±¤Ä¤º¤Ä³Îǧ¤·¤Þ¤¹¡£
¤½¤Î¾å¤Ç¡¢¤½¤ÎÊÑ¿ô¤Î·¿¤¬¡Ö»²¾È·¿¡×¤ËʬÎव¤ì¤ë¤â¤Î¤«¡¢¡ÖÃÍ·¿¡×¤ËʬÎव¤ì¤ë¤â¤Î¤«¤Çʬ¤±¤Æ¤¤¤¤Þ¤¹¡£
¡¡ÃÍ·¿¤Ï»²¾È¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢Null ¤Ë¤Ï¤Ê¤é¤Ê¤¤·¿¤Ë¤Ê¤ê¤Þ¤¹(Null µöÍÆ·¿¤È¤·¤ÆÀë¸À¤·¤Æ¤¤¤ë¾ì¹ç¤ò½ü¤¯)
¤½¤Î¤¿¤á¡¢¤Þ¤ºÊÑ¿ô¤Î·¿¤Î¼ïÎà¤òʬ¤±¤ë¤³¤È¤Ç¡¢Null ¤Î¾õÂÖ¤¬¡ÖȯÀ¸¤¹¤ë²ÄǽÀ¤Î¤¢¤ë·¿¡×¤Ç¤¢¤ë¤Î¤«¡¢
¡ÖȯÀ¸¤·¤Ê¤¤·¿¡×¤Ç¤¢¤ë¤Î¤«¤òʬ¤±¤ë¤³¤È¤Ë¤è¤ê¡¢ÌäÂê¤È¤Ê¤ëÊÑ¿ô¤ÈÌäÂê¤Î¤Ê¤¤ÊÑ¿ô¤È¤òÀÚ¤êʬ¤±¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤³¤Î¼ê½ç¤Ë¤ª¤¤¤Æ¡ÖÃÍ·¿¡×¤ËʬÎव¤ì¤ë·¿¤ÎÊÑ¿ô¤Ï¡¢¤³¤Î¥¨¥é¡¼¤Ë¤Ï³ºÅö¤·¤Þ¤»¤ó¤Î¤Ç¡¢°Ê¸å¤ÏÄ´¤Ù¤ëɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£
¤è¤Ã¤Æ¡¢¤³¤ÎÃʳ¬¤Ç¡Ö»²¾È·¿¡×¤ËʬÎव¤ì¤ë·¿¤ÎÊÑ¿ô¤Î¤ß¤¬ Null ¥¨¥é¡¼¤Î¸õÊä¤È¤·¤Æ»Ä¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¼¡¤Ë¡¢¥¨¥é¡¼¤Î³ºÅö¹ÔÆâ¤ËÊÑ¿ô¤Î¾¤Ë¥á¥½¥Ã¥É¤Î¼Â¹ÔÌ¿Î᤬¤¢¤ë¤È¤¡¢
¤½¤Î¥á¥½¥Ã¥É¤¬Ìá¤êÃͤλý¤Ä¥á¥½¥Ã¥É¤Ç¤¢¤ë¤«¡¢Ìá¤êÃͤλý¤¿¤Ê¤¤¥á¥½¥Ã¥É¤Ç¤¢¤ë¤«¤òÄ´¤Ù¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡
¡¡Ìá¤êÃͤλý¤¿¤Ê¤¤¥á¥½¥Ã¥É¤Î¼Â¹ÔÌ¿Îá¤Î¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤Ï Null ¥¨¥é¡¼¤Î¸õÊä¤Ë¤Ï¤Ê¤é¤Ê¤¤¥á¥½¥Ã¥É¤Î¼Â¹ÔÌ¿Îá¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
¤½¤Î¥á¥½¥Ã¥É¤Î¼Â¹ÔÌ¿ÎáÉôʬ¤ÏÄ´¤Ù¤ë¸õÊ䤫¤é³°¤ì¤Þ¤¹¡£
¡¡Ìá¤êÃͤλý¤Ä¥á¥½¥Ã¥É¤Î¼Â¹ÔÌ¿Îá¤Î¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤Ï Null ¥¨¥é¡¼¤Î¸õÊä¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢ÊÑ¿ô¤È¹ç¤ï¤»¤ÆÄ´¤Ù¤Æ¤¤¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¡Ú£³¡Û¡Ú£´¡Û¤Î¼ê½ç¤Ë¤è¤ê¡¢Null ¥¨¥é¡¼¤Ë³ºÅö¤·¤½¤¦¤ÊÊÑ¿ô¤ÈÌá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥É¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿¤Î¤Ç¡¢¤³¤ì¤é¤ò½çÈÖ¤ËÄ´¤Ù¤Æ¤¤¤¤Þ¤¹¡£
¡¡Ä´¤Ù¤Æ¤¤¤¯¾ì¹ç¡¢¥×¥í¥°¥é¥à¤Î¹ÔÆâ¤Îº¸Â¦¤ÎÊÑ¿ô¤ä¥á¥½¥Ã¥É¤Î¼Â¹ÔÌ¿Îᤫ¤éÄ´¤Ù¤Æ¤¤¤¤Þ¤¹¡£
¤Ê¤ª¡¢¤³¤Î»þÅÀ¤ÇÄ´¤Ù¤ëÊÑ¿ô¤¬£±¤Ä¤·¤«»Ä¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤¬ Null ¤Ë¤Ê¤Ã¤Æ¤¤¤ëÊÑ¿ô¡¢¤Ä¤Þ¤ê¥¨¥é¡¼¤Î¸¶°ø¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Ä´¤Ù¤ëÊÑ¿ô¤¬Ê£¿ô¤¢¤Ã¤¿¤ê¡¢¥á¥½¥Ã¥É¤Î¼Â¹ÔÌ¿Î᤬¤¢¤ë¾ì¹ç¡¢¤½¤ì¤é¤Ï½çÈÖ¤ËÄ´¤Ù¤Æ¤¤¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¥×¥í¥°¥é¥à¤Î½èÍý¤Ïº¸Â¦¤«¤é±¦Â¦¤Ë¸þ¤«¤Ã¤Æ½çÈ֤˽èÍý¤µ¤ì¤ë¤¿¤á¡¢¥¨¥é¡¼²Õ½ê¤ò¸«¤Ä¤±¤ë¾ì¹ç¤â¤½¤Î½çÈÖ¡¢¤Ä¤Þ¤ê¡¢º¸Â¦¤«¤é½çÈÖ¤ËÄ´¤Ù¤ëÊý¤¬Å¬ÀڤǤ¹¡£
¡¡¤³¤ì¤âÌäÂêÅÀ¤ÎÀÚ¤êʬ¤±¤Æ¤¤¤¯¼êË¡¤Î£±¤Ä¤Ç¤¹¡£
¡¡¼ÂºÝ¤ËÊÑ¿ô¤ÎÃͤò³Îǧ¤¹¤ë¤³¤È¤Ç Null ¤Ç¤¢¤ë¤«¤òȽÃǤǤ¤Þ¤¹¤Î¤Ç¡¢¤³¤³¤Ç¤Ï Debug.Log ¥á¥½¥Ã¥É¤ò³èÍѤ·¤Þ¤¹¡£
¡¡Log ¥á¥½¥Ã¥É¤Ï¡¢¥¨¥é¡¼¤ÎȯÀ¸¤·¤Æ¤¤¤ë¹Ô¤è¤ê¤â£±¹Ô°Ê¾å¡¢¾å¤Ë½èÍý¤ò½ñ¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤Ê¤¼¤Ê¤é¡¢¥¨¥é¡¼¤ÎȯÀ¸¤·¤Æ¤¤¤ë¹Ô¤è¤ê¤â²¼¤Ë½ñ¤¤¤Æ¤·¤Þ¤¦¤È¡¢¥¨¥é¡¼¤Ç½èÍý¤¬Ää»ß¤·¤Æ¤·¤Þ¤¦¤¿¤á¡¢Debug.Log ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Ê¤¤¤¿¤á¤Ç¤¹¡£
¡¡¤³¤Î¼êË¡¤ò»È¤¤¡¢£±¤Ä¤º¤Ä¡¢½çÈÖ¤ËÊÑ¿ô¤äÌá¤êÃͤΤ¢¤ë¥á¥½¥Ã¥É¤Î¼Â¹ÔÌ¿Îá¤ò Debug.Log ¥á¥½¥Ã¥É¤ò»È¤¤¡¢Ä´¤Ù¤Æ¤¤¤¯¤³¤È¤Ç¡¢Null ¤Ë¤Ê¤Ã¤Æ¤¤¤ëÊÑ¿ô¤ò¸«¤Ä¤±¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤³¤³¤Þ¤Ç¤Î¼ê½ç¤Ë¤è¤ê¡¢¥¨¥é¡¼¤Î¸¶°ø¤È¤Ê¤Ã¤Æ¤¤¤ëÊÑ¿ô¡¢¤¢¤ë¤¤¤Ï¥á¥½¥Ã¥É¤Î¼Â¹ÔÌ¿Î᤬ÆÃÄê½ÐÍè¤Æ¤¤¤Þ¤¹¡£
¡¡¤½¤ì¤¾¤ì½¤Àµ¤ÎÊýË¡¤¬°Û¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢½¤ÀµÊýË¡¤ò³Ð¤¨¤Æ¤ª¤¯¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£
¡¡SerializeField°À ¤ÎÉÕÍ¿¤µ¤ì¤¿ private ÊÑ¿ô¤«¡¢pulbic ÊÑ¿ô¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢Unity ¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
ÊÑ¿ô¤Ë¥¯¥é¥¹¤Î¾ðÊ󤬥¢¥µ¥¤¥ó¤µ¤ì¤Æ¤¤¤Ê¤¤¾õÂ֤ˤʤäƤ¤¤Þ¤¹¤Î¤Ç¡¢ÂоݤȤʤ륯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò
¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤¹¤ë¤³¤È¤Ç¥¨¥é¡¼¤¬²ò¾Ã¤µ¤ì¤Þ¤¹¡£
¡¡private / protected ÊÑ¿ô¤Î¾ì¹ç¤Ë¤Ï¡¢¥¹¥¯¥ê¥×¥ÈÆâ¤Î½èÍý¤ò¸«Ä¾¤·¡¢ÊÑ¿ô¤ËÂåÆþ½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤ë²Õ½ê¤òÄ´¤Ù¤Þ¤¹¡£
ÂåÆþ½èÍý¼«ÂΤ¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¿·¤·¤¯ÊÑ¿ô¤ËÂåÆþ¤¹¤ë½èÍý¤òÄɲä·¤Þ¤¹¡£
¡¡¤¹¤Ç¤ËÂåÆþ½èÍý¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ÂåÆþ¸µ¤Ë¤Ê¤Ã¤Æ¤¤¤ë¾ðÊó¤¬ Null ¤Î²ÄǽÀ¤â½Ð¤Æ¤¯¤ë¤Î¤Ç¡¢º£Å٤ϡ¢¤½¤Á¤é¤âÁ̤äÆÄ´¤Ù¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤³¤ÎºÝ¤ÎÄ´¤ÙÊý¤ÏƱ¤¸¼ê½ç¤Ç¤¹¡£
¡¡¤³¤Î¤è¤¦¤Ë¤·¤Æ½èÍý¤ò¸«Ä¾¤¹¤³¤È¤Ç¡¢Null ¤Î¥¨¥é¡¼¤ò²ò¾Ã¤·¤Þ¤¹¡£
¡¡GetComponent ¥á¥½¥Ã¥É¤Î¾ì¹ç¤Ë¤Ï¡¢GetComponent ¥á¥½¥Ã¥É¤Î¼Â¹ÔÂоݤȤʤ륲¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë
GetComponent ¥á¥½¥Ã¥É¤Ç¼èÆÀ¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡Î㤨¤Ð¡¢GetComponent<Text>() ¤Ç¤¢¤ì¤Ð¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë Text ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Þ¤¹¡£
¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢Add Component ¤ò¹Ô¤Ã¤ÆÄɲ乤ë¤Ê¤É¤·¤ÆÂбþ¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡°Ê¾å¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Null ¥¨¥é¡¼¤ÎȯÀ¸¤¹¤ë·¿¤Î¼ïÎà¤È¡¢È¯À¸¤·¤¿¾ì½ê¤ÎÆÃÄê¡¢¤½¤·¤Æ²ò¾ÃÊýË¡¡¢¤³¤ì¤é¤Î¼ê½ç¤ò½çÈ֤˹ԤäƤ¤¤¯¤³¤È¤Ç¥¨¥é¡¼¤¬²ò¾Ã½ÐÍè¤Þ¤¹¡£
Unity ¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ç¤Î¥¢¥µ¥¤¥ó˺¤ì¡¢¤¢¤ë¤¤¤Ï¥×¥í¥°¥é¥à¤ËÂåÆþ½èÍý¤ò½ñ¤¤¤Æ¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ê¤É¤ËȯÀ¸¤¹¤ë¥¨¥é¡¼¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
²¿²ó¤«¥¨¥é¡¼¤òľ¤·¤Æ¤¤¤¯¤³¤È¤Ç¡¢¸¶°ø¤ÈÂнèÊýË¡¤ò³Ø½¬¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¥¨¥é¡¼¤¬É½¼¨¤µ¤ì¤ë¤³¤È¤ÏÌäÂê¤Ç¤Ï¤Ê¤¯¡¢²¿¤¬¸¶°ø¤Ê¤Î¤«¡¢¤É¤¦¤¹¤ì¤Ð²ò¾Ã¤Ç¤¤ë¤Î¤«¡¢¼¡¤«¤é¤Ï²¿¤òµ¤¤òÉÕ¤±¤ì¤Ð¤¤¤¤¤Î¤«¡¢
¤½¤¦¤¤¤Ã¤¿Éôʬ¤ò¤·¤Ã¤«¤ê¤È³Ø½¬¤·¤Æ¤¤¤¯¤³¤È¤¬¡¢º£¸å¤Î¥×¥í¥°¥é¥à¤Î¥¹¥¥ë¤Î¸þ¾å¤Ë¤Ä¤Ê¤¬¤ê¤Þ¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯