ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ06·î25Æü(Æü) 14:32:49ÍúÎò
¤³¤Î¼ê½ç¤Ç¤Ï¥¨¥Õ¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£
¼ê½ç£µ ¡¼¥¨¥Õ¥§¥¯¥ÈºÆÀ¸µ¡Ç½¤Î¼ÂÁõ¡¼
¡¡¡¦¥·¥ó¥°¥ë¥È¥ó¡¦¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Ë¤è¤ë¥¯¥é¥¹¤Î±¿ÍÑÊýË¡
¡¡¥×¥ì¥¤¥ä¡¼Â¦¤ÎÁàºî¼þ¤ê¤Î¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£¿·¤·¤¯£³¤Ä¤Î¥¯¥é¥¹¤òºîÀ®¤·¤Æ¤¤¤¤Þ¤¹¡£
¥¯¥é¥¹Ì¾¤Ï¤³¤ÎÄ̤ê¤Ç¤¢¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¤½¤Î¾ì¹ç¡¢¥¯¥é¥¹¤ÎÌò³ä¤Ë¹ç¤Ã¤¿Ì¾Á°¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡»¡¡PlayerController¡¡¡¡¡¡¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤ò´ÉÍý¤¹¤ë¥¯¥é¥¹¡£ÂÎÎϤäÃÆ¿ô¤Ê¤É¤ò´ÉÍý¤·¡¢³°Éô¤Î¥¯¥é¥¹¤Ë¾ðÊóÄ󶡤¹¤ë¥¯¥é¥¹¡£¥ê¥í¡¼¥É½èÍý¡¢Å¨¤Î¹¶·â¤ÎÅö¤¿¤êȽÄê¤Ê¤É¤â´ÉÍý¤¹¤ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥«¥á¥é¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È(AR Camera¡¢¤¢¤ë¤¤¤Ï Main Camera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È)¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë
¡ãº£²ó¼ÂÁõ¤¹¤ë¥¯¥é¥¹¡ä
¡¡¡þ¡¡EffectManager ¥¨¥Õ¥§¥¯¥È¤Î´ÉÍý¤ò¹Ô¤¦¥¯¥é¥¹¡£Create Empty ¤Ç¿·¤·¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢¤½¤³¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥·¥ó¥°¥ë¥È¥ó¤ÇºîÀ®¤·¡¢¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤â¥¢¥¯¥»¥¹¤·¤ä¤¹¤¤¾õÂ֤ˤ¹¤ë¡£¥¨¥Õ¥§¥¯¥È¤Ê¤É¤Ï¸ÄÊ̤Υ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë»ý¤¿¤»¤Ê¤¤¤è¤¦¤Ë¤·¡¢´ÉÍý¤ò´ÊÊز½¤Ç¤¤ë
¡¡¡¦¡¡RayController¡¡¡¡¡¡¡¡ ²èÌ̤Υ¿¥Ã¥×½èÍý(¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯)¤òȽÄꤷ¡¢Physics.Raycast ¥á¥½¥Ã¥É¤ò³èÍѤ·¤Æ¡¢ÃƤ¬È¯¼Í¤Ç¤¤ë¤«¤ò´ÉÍýÀ©¸æ¤¹¤ë¥¯¥é¥¹ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡PlayerController ¤«¤éÃÆ¿ô¤Î¾ðÊó¤òÄ󶡤·¤Æ¤â¤é¤¤¡¢PlayerController ¤ÎÃÆ¿ô¤ÎÃͤò¹¹¿·¤·¤¿¤ê¡¢¥ê¥í¡¼¥É¤µ¤»¤ëÌ¿Îá¤ò¤À¤¹ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¥«¥á¥é¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ Create Empty ¤Ç¿·¤·¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢¤½¤³¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë
¡ã´°À®»þ¤Î¥Ò¥¨¥é¥ë¥¡¼²èÁü¡ä

¡¡¤³¤ì¤é¤¬¤¹¤Ù¤Æ´°À®¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥×¥ì¥¤¥ä¡¼¤Î¹¶·â¤Î½èÍý¤¬¼ÂÁõ¤µ¤ì¤Þ¤¹¡£
¡¡¥¤¥Ù¥ó¥È¦(Ũ¤ä¥¢¥¤¥Æ¥à¤Ê¤É)¤Î¼ÂÁõ¤¬¤Þ¤ÀºÑ¤ó¤Ç¤¤¤Ê¤¤¤¿¤á¡¢¤½¤Î¼êÁ°¤Þ¤Ç¤ò Debug.Log ¥á¥½¥Ã¥É¤ò³èÍѤ·¤Æ¼ÂÁõ¤·¡¢
¤½¤ì¤é¤Î¼ÂÁõ¤¬½ªÎ»¤·¤Æ¤«¤é¡¢ºÆÅÙ½¤Àµ¤ò²Ã¤¨¤Æ´°À®¤Ë¶á¤Å¤±¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡¥¨¥Õ¥§¥¯¥È¤Î¾ðÊó¤ò°ì¼ê¤Ë´ÉÍý¤¹¤ë¤¿¤á¤Î¥¯¥é¥¹¤ò¡¢¥·¥ó¥°¥ë¥È¥ó¡¦¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤òÍøÍѤ·¤ÆºîÀ®¤·¤Þ¤¹¡£
¡¡¥·¥ó¥°¥ë¥È¥ó¤ÇºîÀ®¤·¤Æ¤ª¤¯¤³¤È¤Ë¤è¤ê¡¢¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤â¥¢¥¯¥»¥¹(»²¾È) ¤·¤ä¤¹¤¤¾õÂ֤ˤʤê¤Þ¤¹¡£
¥¨¥Õ¥§¥¯¥È¤ò¸ÄÊ̤Υ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë»ý¤¿¤»¤Ê¤¤¤è¤¦¤Ë¤·¡¢¤¹¤Ù¤Æ¤³¤Î¥¯¥é¥¹¤Î¤ß¤Ç´ÉÍý¤¹¤ëÀ߷פȤ¹¤ë¤³¤È¤Ç¡¢¥¨¥Õ¥§¥¯¥È¤ÎÅÐÏ¿¡¦½¤Àµºî¶È¤ò´ÊÊز½¤Ç¤¤Þ¤¹¡£
¡¡¤³¤³¤Ë¥²¡¼¥àÆâ¤ÇÍøÍѤ¹¤ë¤¹¤Ù¤Æ¤Î¥¨¥Õ¥§¥¯¥È¤òÅÐÏ¿¤·¤Æ¤ª¤¤¤Æ¡¢É¬Íפʥ¿¥¤¥ß¥ó¥°¤Ç³Æ¥¯¥é¥¹¤è¤ê¸Æ¤Ó½Ð¤·Ì¿Îá¤ò¼õ¤±¤Æ¾ðÊó¤òÄ󶡤¹¤ëÀ߷פǤ¹¡£
¤½¤Î¤¿¤á¡¢¥¨¥Õ¥§¥¯¥ÈÍѤÎÊÑ¿ô¤Ï public ½¤¾þ»Ò¡¢¤Ê¤¤¤·¤Ï¡¢SerializeField °À¤Ç¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤é¥¨¥Õ¥§¥¯¥È¤ÎÅÐÏ¿¤ò¤Ç¤¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
SerializeField °À¤òÍøÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¢ÀìÍѤΥ²¥Ã¥¿¡¼¥á¥½¥Ã¥É¤â½àÈ÷¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
EffectManager.cs
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Î¶õ¤¤¤Æ¤¤¤ë¾ì½ê¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¡¢Create Empty ¤ò¤·¤Æ¿·¤·¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£
̾Á°¤ò EffectManager ¤ËÊѹ¹¤·¡¢ºîÀ®¤·¤¿ EffectManager ¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤«¤é GameObject ·¿¤Î¥×¥ì¥Õ¥¡¥Ö¤òÅÐÏ¿¤Ç¤¤Þ¤¹¤Î¤Ç¡¢Å¬µ¹¤Ê¥¨¥Õ¥§¥¯¥È¤ò¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£
¡ã¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¡ä

¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
¤½¤Î¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤¬É¬¤º£±¤Ä¤Ç¤¢¤ë¤³¤È¤òÊݾڤ¹¤ë ¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î¤³¤È¤ò¸À¤¤¤Þ¤¹¡£
¡¡EffectManager ¥¯¥é¥¹¤Ç¤Ï¡¢¤³¤Î¥·¥ó¥°¥ë¥È¥ó¤òºÎÍѤ·¤Æ¤¤¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢¥²¡¼¥àÃæ¤òÄ̤¸¤Æ¡¢¤³¤Î EffectManager ¥¯¥é¥¹¤¬£±¤Ä¤·¤«Â¸ºß¤Ç¤¤Ê¤¤¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¼ÂÁõÎã¤ÏÊ£¿ô¤¢¤ê¤Þ¤¹¤¬¡¢°ìÈÖÆɤߤ䤹¤¤Êý¼°¤Çµ½Ò¤·¤Æ¤¤¤Þ¤¹¡£
¡ã¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î¥¯¥é¥¹¤ÎºîÀ®ÊýË¡¡ä
public static EffectManager instance; // ¥¯¥é¥¹Ì¾¤ÈƱ̾¤Î·¿¤ò static ¤ÇÀë¸À¤¹¤ë private void Awake() { if (instance == null) { instance = this; DontDestroyOnLoad(gameObject); } else { Destroy(gameObject); } }
¥Ý¥¤¥ó¥È¤Ï¡¢¼«Ê¬¼«¿È¤Î EffectManager ·¿¤ò static ½¤¾þ»ÒÉÕ¤¤Î instance ÊÑ¿ô¤È¤·¤ÆÀë¸À¤·¤Æ¤¤¤ë¤³¤È¤Ç¤¹¡£
¤³¤Î instance ÊÑ¿ô¤¬ EffectManager ¥¯¥é¥¹¼«¿È¤¬ÂåÆþ¤µ¤ì¤¿¾ðÊó¤È¤·¤ÆÍøÍѤ¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Awake ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¡¢instance ÊÑ¿ô¤¬ null (¶õ¤Ã¤Ý) ¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢EffectManager ¥¯¥é¥¹(this)¤òÂåÆþ¤·¤Þ¤¹¡£
¼¡¤Î DontDestroyOnLoad ¥á¥½¥Ã¥É¤Ï Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ç¡¢°ú¿ô¤Ë»ØÄꤵ¤ì¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï¥·¡¼¥óÁ«°Ü¤ò¤·¤Æ¤âÇ˲õ¤µ¤ì¤Æ¤Ê¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤ê¤Þ¤¹¡£
¤³¤Î DontDestroyOnLoad ¥á¥½¥Ã¥É¤Ï¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Ë¤¹¤ëºÝ¤Ë°ì½ï¤ËÍѤ¤¤é¤ì¤ë¤³¤È¤¬Â¿¤¤¤Ç¤¹¡£
¡¡¤½¤·¤Æ instance ÊÑ¿ô¤¬ null ¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢¤Ä¤Þ¤ê¡¢£²¤ÄÌܰʹߤÎÊ£¿ô¤Î EffectManager ¥¯¥é¥¹¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤Î EffectManager ¥¯¥é¥¹¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò Destroy ¤·¤Þ¤¹¡£
¤³¤Î¼ê½ç¤Ë¤è¤ê¡¢EffectManager ¥¯¥é¥¹¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬¾ï¤Ë¥Ò¥¨¥é¥ë¥¡¼¾å¤Ë£±¤Ä¤·¤«Â¸ºß¤·¤Ê¤¤¾õÂÖ¤òºî¤ê½Ð¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤Î¥·¥ó¥°¥ë¥È¥ó¤Ë¤è¤Ã¤Æ¥¤¥ó¥¹¥¿¥ó¥¹¤¬£±¤Ä¤«À¸À®¤µ¤ì¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Þ¤¹¤Î¤Ç¡¢
µÕÀâŪ¤Ë¹Í¤¨¤ë¤È¡¢¤³¤Î EffectManager ¥¯¥é¥¹¤Ø¤Î»²¾È¤Ï¡¢¤¤¤º¤ì¤Î¥¯¥é¥¹¤«¤é¤Ç¤¢¤Ã¤Æ¤âÊÑ¿ô¤ò²ð¤µ¤º¤Ë»²¾È¤ò¹Ô¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Î㤨¤Ð¡¢NonPlayerCharacter ¤È¤¤¤¦¥¯¥é¥¹¤¬¤¢¤ê¡¢¤½¤Î NonPlayerCharacter ¥¯¥é¥¹¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬£µ¤Ä¤¢¤Ã¤¿¾ì¹ç¡¢
¡Ö¤É¤Î¡×NonPlayerCharacter ¥¯¥é¥¹¤Ç¤¢¤ë¤«¤ò³ÎÄê¤Ç¤¤Ê¤¤¤È¡¢ÂоݤȤʤë NonPlayerCharacter ¥¯¥é¥¹¤Ø¤Ï»²¾È¤Ç¤¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢NonPlayerCharacter ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¡¢¤½¤ÎÊÑ¿ô¤Ø»²¾È¤·¤¿¤¤ NonPlayerCharacter ¥¯¥é¥¹¤òÂåÆþ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢
¤Ï¤¸¤á¤Æ NonPlayerCharacter ¥¯¥é¥¹¤Î¾ðÊó¤ò°·¤¦¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤¬¾ðÊó¤ò°·¤¦ºÝ¤Î´ðËÜŪ¤Ê½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤Ç¤¹¤¬¥·¥ó¥°¥ë¥È¥ó¤Ç¤¢¤ë EffectManager ¥¯¥é¥¹¤Î¾ì¹ç¤Ë¤Ï¡¢¤³¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¾ï¤Ë£±¤Ä¤·¤«¤Ê¤¤¤³¤È¤¬Êݾڤµ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
¡Ö¤É¤Î¡×¤È¤¤¤¦»ØÄê¤ÎÉôʬ¤¬ÉÔÍפˤʤê¤Þ¤¹¡£¤è¤Ã¤Æ¥¯¥é¥¹¤ÎÆÃÄ꤬¤Ç¤¤Æ¤¤¤ë¤¿¤á¡¢ÊÑ¿ô¤Ø¤ÎÂåÆþ¤¬ÉÔÍפˤʤê¤Þ¤¹¡£
EffectManager ¤È¤¤¤¦»ØÄê¤Ï¤¹¤Ê¤ï¤Á¡¢¼«Æ°Åª¤Ë¤¿¤À£±¤Ä¤Î EffectManager ¥¯¥é¥¹¤Î»²¾È¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ë¤¿¤á¤Ç¤¹¡£
¡¡¤³¤Îµ¡Ç½¤òÍøÍѤ·¤Æ EffectManager ¥¯¥é¥¹¤òºîÀ®¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤â»²¾È¤·¤ä¤¹¤¤À߷פˤ·¤Æ¤ª¤¤Þ¤¹¡£
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡=>¡¡¼¡¤Ï¡¡¼ê½ç£¶¡¡¡¼¥×¥ì¥¤¥ä¡¼¤Î¹¶·âµ¡Ç½¤Î¼ÂÁõ¡¼¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯