Unity ¸ø¼°¥Þ¥Ë¥å¥¢¥ë 2D/3D¥×¥í¥¸¥§¥¯¥È
¡¡¡¦Universal Render Pipeline(URP) ¡¡¡¦Cinemachine ¡¡¡¦PostProcessing ¡¡¡¦NavMeshAgent ¡¡¡¦OffMeshLink
¡¡¡¦À߷פ˱è¤Ã¤¿À½ºîºî¶È ¡¡¡¦¥¢¥»¥Ã¥È¥¹¥È¥¢¤«¤é¥¤¥ó¥Ý¡¼¥È¤·¤¿¥¢¥»¥Ã¥È¤ÎÍøÍÑÊýË¡¤Ë¤Ä¤¤¤Æ ¡¡¡¦Raycast Target µ¡Ç½ ¡¡¡¦CanvasRenderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î Cull Transparent Mesh µ¡Ç½ ¡¡¡¦UnityEditor ¤Î¥»¡¼¥ÖÍÑ¥·¥ç¡¼¥È¥«¥Ã¥È¥Ü¥¿¥ó ¡¡¡¦RequireComponent°À ¡¡¡¦Header°À ¡¡¡¦Ray ¤È RaycastHit ¹½Â¤ÂÎ ¡¡¡¦Physics.Raycast ¥á¥½¥Ã¥É ¡¡¡¦Destroy ¥á¥½¥Ã¥É ¡¡¡¦Summary¡Ê¥µ¥Þ¥ê¡¼¡Ëµ¡Ç½ ¡¡¡¦¥×¥ì¥Õ¥¡¥Ö¤ÎºîÀ® ¡¡¡¦Instantiate ¥á¥½¥Ã¥É¡¡¡¡Ý°ú¿ô¤Î¼ïÎà¤ÈÆâÍÆ¡Ý ¡¡¡¦Instantiate ¥á¥½¥Ã¥É¢¡¡¡¼Ìá¤êÃͤγèÍÑ¡¼ ¡¡¡¦¥Ô¥ê¥ª¥É¤Ë¤è¤ë½èÍý¤ÎÆɤ߲ò¤Êý ¡¡¡¦Input.mousePosition ÊÑ¿ô ¡¡¡¦Camera.ScreenPointToRay(Vector3 position) ¥á¥½¥Ã¥É ¡¡¡¦Vector3.normalized ÊÑ¿ô¤òÍøÍѤ·¤¿Àµµ¬²½½èÍý ¡¡¡¦Tag ¤ÎÀßÄê ¡¡¡¦½èÍý¤Î¥á¥½¥Ã¥É²½ ¡¡¡¦TryGetComponent ¥á¥½¥Ã¥É¤È out ¥¡¼¥ï¡¼¥ÉÀë¸À ¡¡¡¦TODO µ¡Ç½ ¡¡¡¦¥¢¥ó¥«¡¼ÀßÄê ¡¡¡¦¿Æ»Ò´Ø·¸¤ÎÍøÍÑÊýË¡ ¡¡¡¦SerializeField °À ¡¡¡¦¥¢¥¿¥Ã¥Á¤È¥¢¥µ¥¤¥ó¤Ë¤Ä¤¤¤Æ ¡¡¡¦Mathf.Clamp ¥á¥½¥Ã¥É ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎã¡¡¡¡¼Transform.DOLookAt ¥á¥½¥Ã¥É¡¼ ¡¡¡¦¥¥ã¥¹¥È½èÍý ¡¡¡¦Éü½¬¤·¤Ê¤¬¤é¡¢¼«Ê¬¤Ç½èÍý¤ò½ñ¤¤¤Æ¤ß¤ë ¡¡¡¦Start ¥á¥½¥Ã¥É¤ÎÌò³ä¤ò»ý¤Ä¥á¥½¥Ã¥É¤òºîÀ®¤·¤ÆÍøÍѤ¹¤ëÊýË¡ ¡¡¡¦Ê£¿ô¹Ô¤Î½èÍý¤ò£±¹Ô¤Ë¤Þ¤È¤á¤Æµ½Ò¤¹¤ëÊýË¡ ¡¡¡¦¥¹¥¯¥ê¥×¥È¤Î»²¾ÈÍøÍÑÊýË¡ ¡¡¡¦¾ò·ï¼°»þ¤Îbool·¿¤Î¾ÊάµË¡ ¡¡¡¦ÌäÂêÅÀ¤ÎÀÚ¤êʬ¤±¤ò¹Ô¤¦ÊýË¡ ¡¡¡¦Transform.SetParent ¥á¥½¥Ã¥É ¡¡¡¦static ¥¯¥é¥¹¤È static ÊÑ¿ô¤ÎÀë¸À ¡¡¡¦static ¥á¥½¥Ã¥É¤ÎÍøÍÑÊýË¡ ¡¡¡¦¥×¥í¥Ñ¥Æ¥£ ¡¡¡¦Debug.Log ¥á¥½¥Ã¥É¤òÍøÍѤ·¤¿½èÍý¤Îή¤ì¤Î³ÎǧÊýË¡ ¡¡¡¦StartCoroutine ¥á¥½¥Ã¥É ¡¡¡¦°ú¿ô¤òÍøÍѤ·¤Æ³°Éô¤Î¥¹¥¯¥ê¥×¥È¤«¤é¾ðÊó¤ò¼èÆÀ¤·¤ÆÍøÍѤ¹¤ëÊýË¡ ¡¡¡¦¾Êά²Äǽ¤Ê°ú¿ô¤ò»ý¤Ä¥á¥½¥Ã¥É¤òÄêµÁ¤¹¤ëÊýË¡¤È»ÈÍÑÊýË¡ ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎ㢡¡¡¼DOCounter ¥á¥½¥Ã¥É¡¼ ¡¡¡¦CanvasGroup ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎ㣡¡¡ÝDOFade ¥á¥½¥Ã¥É¡Ý ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎ㤡¡¡ÝDOText ¥á¥½¥Ã¥É¡Ý ¡¡¡¦Start ¥á¥½¥Ã¥É¤È Update ¥á¥½¥Ã¥É¤ÎÍøÍÑÊýË¡¤ò¹Í¤¨¤ë ¡¡¡¦Start ¥á¥½¥Ã¥É¤Ë°Í¸¤·¤Ê¤¤Àß·× ¡¡¡¦NavMeshAgent ´ØÏ¢¡¡¡¡¼Static ÀßÄê¡¢Bake ½èÍý¡¼ ¡¡¡¦NavMeshAgent ´ØÏ¢¢¡¡¡¼SetDestination ¥á¥½¥Ã¥É¡¢ResetPath ¥á¥½¥Ã¥É¡¢speed ÊÑ¿ô¡¼ ¡¡¡¦NavMeshAgent ´ØÏ¢£¡¡¡¼OffMeshLink ¤ÎÀßÄê¡£isOnOffMeshLink ÊÑ¿ô¡¼ ¡¡¡¦Cinemachine ´ØÏ¢¡¡¡¡¼Follow ÀßÄê¡£Body ÀßÄê¡£Aim ÀßÄ꡼ ¡¡¡¦Cinemachine ´ØÏ¢¢¡¡¡¼Priority ¥×¥í¥Ñ¥Æ¥£¡¼ ¡¡¡¦SkyBox ¤ÎÀßÄê
¡¡¡¦¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤¤¡¢´ØÏ¢¤¹¤ë½èÍý¤ò£±¤Ä¤Î¥¹¥¯¥ê¥×¥È¤Ë¤Þ¤È¤á¤ëÊýË¡ ¡¡¡¦¥¹¥¯¥ê¥×¥È¤ò·Ðͳ¤·¤ÆÊ̤Υ¹¥¯¥ê¥×¥È¤Î½èÍý¤ò¼Â¹Ô¤·¤Æ¤¤¤¯ÊýË¡ ¡¡¡¦enum ¤À¤±¤Î¥¹¥¯¥ê¥×¥È¡¦¥Õ¥¡¥¤¥ë¤ÎºîÀ® ¡¡¡¦¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®¤È¥Ç¡¼¥¿¤ÎÅÐÏ¿ ¡¡¡¦¥¯¥é¥¹Æâ¤ËÊ̤Υ¯¥é¥¹¤òºîÀ®¤¹¤ë(Æþ¤ì»Ò¥¯¥é¥¹) ¡¡¡¦[System.Serializable¡Ê¥·¥ê¥¢¥é¥¤¥¶¥Ö¥ë¡Ë]°À ¡¡¡¦List ¤Î½é´ü²½ ¡¡¡¦Æþ¤ì»Ò¥¯¥é¥¹¤ò³°Éô¤Î¥¯¥é¥¹¤ÇÀë¸À¤¹¤ëÊýË¡ ¡¡¡¦¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤ¹¤ëÊýË¡ ¡¡¡¦¥¹¥¯¥ê¥×¥È¤ò³èÍѤ·¤Æ£±¤Ä¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¿¶¤ëÉñ¤¤¤òÊѤ¨¤Æ¡¢°Û¤Ê¤ëÌò³ä¤òÍ¿¤¨¤ëÊýË¡ ¡¡¡¦°ú¿ô¤ÈÌá¤êÃͤò»È¤Ã¤¿½èÍý¤Î¼ÂÁõÎã ¡¡¡¦enum ¤ò¾ò·ï¤ËÍøÍѤ·¤¿ switch ʸ¤Î¼ÂÁõÎã ¡¡¡¦List¤Î»È¤¤Êý¡¡¡¡ÝAdd ¥á¥½¥Ã¥É¡¼ ¡¡¡¦Æþ¤ì»Ò¥¯¥é¥¹¤ò³°Éô¤Î¥¯¥é¥¹¤ÇÍøÍѤ¹¤ëÊýË¡ ¡¡¡¦¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ë¿·¤·¤¤¾ðÊó¤òÄɲä¹¤ë ¡¡¡¦¥·¥ó¥°¥ë¥È¥ó¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Ë¤è¤ë¥¯¥é¥¹¤ÎºîÀ®¤È³èÍÑ ¡¡¡¦Ê£¿ô¤Î¥¹¥¯¥ê¥×¥È¤ò·Ðͳ¤·¤Æ½èÍý¤ò¼Â¹Ô¤·¤Æ¤¤¤¯¥í¥¸¥Ã¥¯¤Î¹Í¤¨Êý¤ÈÀß·×ÊýË¡ ¡¡¡¦¥²¡¼¥à¤ÎÀßÄê´ØÏ¢¤ÎÃͤò£±¤Ä¤Î¥¹¥¯¥ê¥×¥È¤Ë½¸Ìó¤·ÍøÍѤ¹¤ëÊýË¡ ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎ㥡¡¡¼SetLoops ¥á¥½¥Ã¥É¡¢SetEase ¥á¥½¥Ã¥É¡¼ ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎ㦡¡¡¼OnComplete ¥á¥½¥Ã¥É¡¼ ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎ㧡¡¡¼Sequence µ¡Ç½¡¢Append ¥á¥½¥Ã¥É¡¢AppendInterval ¥á¥½¥Ã¥É¡¼ ¡¡¡¦UnityAction(¥Ç¥ê¥²¡¼¥È)¤Î»È¤¤Êý ¡¡¡¦¥¨¥Í¥ß¡¼¤È¥×¥ì¥¤¥ä¡¼¤ÇƱ¤¸¥¹¥¯¥ê¥×¥È¤òÍøÍѤ¹¤ë ¡¡¡¦¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤òÍøÍѤ·¤¿ while ʸ¤Î¼ÂÁõÎã ¡¡¡¦¶¦Ä̤¹¤ë½èÍý¤òÊ£¿ô¤«¤«¤Ê¤¤¤è¤¦¤Ë¹Í¤¨¤Æµ½Ò¤¹¤ë ¡¡¡¦Ìá¤êÃͤȰú¿ô¤òÍøÍѤ·¤¿½èÍý¤Î¼ÂÁõÎã ¡¡¡¦GameObject·¿°Ê³°¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÊýË¡ ¡¡¡¦List¤Î»È¤¤Êý¢¡¡¡ÝCount ÊÑ¿ô¡¢Clear ¥á¥½¥Ã¥É¡Ý ¡¡¡¦°ú¿ô¤ÈÌá¤êÃͤòÍøÍѤ·¤Æ½èÍý¤ÎÆâÍƤò¼«Æ°Ê¬´ô¤¹¤ë½èÍý¤Î¼ÂÁõÎã ¡¡¡¦£±¤Ä¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÊ£¿ô¤ÎÌÜŪ¤ËÍøÍѤ¹¤ëÊýË¡ ¡¡¡¦¼«Ê¬¤Ç¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤ÆÁȤßΩ¤Æ¤ë ¡¡¡¦Grid Layout Group ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î»ÈÍÑÊýË¡ ¡¡¡¦for ʸ¤È Grid Layout Group ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤¿¥¤¥ó¥¹¥¿¥ó¥·¥¨¥¤¥È½èÍý¤Î¼ÂÁõÎã ¡¡¡¦¥²¡¼¥à¤ÎÀ¤³¦´Ñ¤ò¹½ÃÛ¤¹¤ë ¡¡¡¦¥¯¥é¥¹Æâ¤ËÆþ¤ì»Ò¤È¤·¤Æ enum ¤òÀë¸À¤·¤ÆÍøÍѤ¹¤ëÊýË¡ ¡¡¡¦½èÍý¤ÎÁ´ÂÎÁü¤«¤é¡¢¥í¥¸¥Ã¥¯¤òÁȤßΩ¤Æ¤Æ¼ÂÁõ¤ò¹Ô¤¦ ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎ㧡¡¡¼DOFillAmount ¥á¥½¥Ã¥É¡¼ ¡¡¡¦foreach ʸ¤òÍøÍѤ·¤¿½èÍý¤Î¼ÂÁõÎã ¡¡¡¦Selectable.interactable ¥×¥í¥Ñ¥Æ¥£ ¡¡¡¦Start¥á¥½¥Ã¥É¤ÎÌá¤êÃͤò void ¤«¤é IEnumerator ·¿¤Ë¤·¤Æ»ÈÍѤ¹¤ë½èÍý ¡¡¡¦yield return StartCoroutine ¥á¥½¥Ã¥É¤Ë¤è¤ëÂÔµ¡½èÍý ¡¡¡¦ifʸ¤Î¾ò·ï¼°¤ËÌá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ë¾ì¹ç¤Î¼ÂÁõÎã ¡¡¡¦°ú¿ô¤Ë¾ò·ï¼°¤òÍøÍѤ¹¤ëÊýË¡ ¡¡¡¦¥×¥í¥Ñ¥Æ¥£¤ò¼«ºî¤¹¤ë ¡¡¡¦switch ʸ¤Î¼ÂÁõÎã ¡¡¡¦ÇÛÎó¤Î³èÍÑÊýË¡¤Î¼ÂÁõÎã ¡¡¡¦GameObject.FindGameObjectsWithTag ¥á¥½¥Ã¥É ¡¡¡¦Vector3.MoveTowards ¥á¥½¥Ã¥É ¡¡¡¦¥Ñ¡¼¥Æ¥£¥¯¥ë¤Î¥¨¥Õ¥§¥¯¥È¤ò Canvas ¾å¤ÇºÆÀ¸¤¹¤ëÊýË¡ ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎ㨡¡¡¼DOPunchScale ¥á¥½¥Ã¥É¡¼ ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎã©¡¡¡¼DOShakeScale ¥á¥½¥Ã¥É¡¼ ¡¡¡¦Block Raycast ¥×¥í¥Ñ¥Æ¥£ ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤È¼ÂÁõÎ㪡¡¡¼DOLocalJump ¥á¥½¥Ã¥É¡¼ ¡¡¡¦½ç½øΩ¤Æ¤¿½èÍý¤ÎÀ©¸æ¤Î¼ÂÁõÎã ¡¡¡¦½ç½øΩ¤Æ¤¿½èÍý¤Î¥í¥¸¥Ã¥¯¤ò¼«Ê¬¤Ç¹Í¤¨¤Æ¼ÂÁõ¤ò¹Ô¤¦ ¡¡¡¦º£¤Þ¤Ç¤Î½èÍý¤òÉü½¬¤·¡¢¼«Ê¬¤ÎÀ߷פǥ¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ä static ¥¯¥é¥¹¤ò¿·¤·¤¯ºîÀ®¤¹¤ë ¡¡¡¦Ìá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É¤Î½èÍý¤Î¼ÂÁõÎã¡¡¡Ýif ʸ¤Î¾ò·ï¼°¡¢°ú¿ô¤Ø¤Î»ØÄê¡¢Ìá¤êÃ͸å¤Î·¿¤ËÂФ·¤Æ³¤±¤Æµ½Ò¤¹¤ë½èÍý¡Ý ¡¡¡¦¥¿¥×¥ë·¿¤Î¼ÂÁõÎã ¡¡¡¦Ìá¤êÃͤò»ý¤Ä¥á¥½¥Ã¥É¤Î¼«ºî ¡¡¡¦List ¤òÍøÍѤ·¤¿¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Î¥Ç¡¼¥¿¤ÎÃê½Ð½èÍý¤Î¼«ºî ¡¡¡¦MonoBeheviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤Ê¤¤¥¯¥é¥¹¤Î¾ðÊó¤ò¡¢¤É¤Î¤è¤¦¤Ë¤¹¤ì¤ÐÍøÍѤǤ¤ë¤è¤¦¤Ë¤Ê¤ë¤«¡¢¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤ë ¡¡¡¦BGM¤òÌĤ餹¾ìÌÌ¡¦¥·¡¼¥ó¤ò¹Í¤¨¤ë ¡¡¡¦AudioSource.Play¥á¥½¥Ã¥É¡¢AudioSource.Stop¥á¥½¥Ã¥É¡¢AudioSource.clip ÊÑ¿ô ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤Î¼ÂÁõÎã«¡¡¡¼AudioSource.DOFade¥á¥½¥Ã¥É¤òÍøÍѤ·¤¿BGM¤Î¥¯¥í¥¹¥Õ¥§¡¼¥É±é½Ð½èÍý¡¼ ¡¡¡¦AddComponent ¥á¥½¥Ã¥É ¡¡¡¦¥ª¡¼¥Ç¥£¥ª¥Õ¥¡¥¤¥ë¤ÎÍÆÎÌ°µ½Ì¤ä¥á¥â¥ê»ÈÍѤÎÀßÄê ¡¡¡¦¼«Ê¬¤Ç½èÍýÁ´ÂΤÎÀß·×¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ£±¤Ä¤º¤Ä½èÍý¤ò¼ÂÁõ¤¹¤ë
¡¡¡¦¥Ö¥í¥Ã¥¯µ¹æ({ })¤Î¾Êά½ñ¼° ¡¡¡¦½èÍý¤Î¥³¥á¥ó¥È¤ò¤Ê¤ë¤Ù¤¯¥²¡¼¥à¾å¤ÎÆ°¤¤Çµ½Ò¤¹¤ë ¡¡¡¦DOTween¤ÎÊä´Öµ¡Ç½¤Î¼ÂÁõÎ㬡¡¡¼DOTween.TO ¥á¥½¥Ã¥É¤òÍøÍѤ·¤¿¿ô»ú¤ÎÊÑÆ°¥¢¥Ë¥á±é½Ð½èÍý¡¼ ¡¡¡¦½èÍý¤òÁȤ߹ç¤ï¤»¤¿±é½Ð¤ò¹Í¤¨¤Æ¼ÂÁõ¤¹¤ë ¡¡¡¦Any State ¤òÍøÍѤ·¤¿¥¹¥Æ¡¼¥È¤ÎÁ«°Ü½èÍý¤Î¼ÂÁõÎã ¡¡¡¦Animator.ResetTrigger ¥á¥½¥Ã¥É