ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ05·î10Æü(¿å) 22:07:09ÍúÎò
¤Þ¤¿¹¶·âÈϰϤè¤êŨ¥¥ã¥é¤¬¤¤¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢¹¶·â¤Î½èÍý¤òÄä»ß¤¹¤ë½èÍý¤â¹ç¤ï¤»¤Æ¼ÂÁõ¤·¤Þ¤¹¡£
¡¡°Ê²¼¤ÎÆâÍƤǽçÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡¡¡¹¶·âÈÏ°ÏÆâ¤ËŨ¥¥ã¥é¤¬¿¯Æþ¤·¤¿¤é°ìÄê»þ´Ö¤´¤È¤Ë¹¶·â¤·¤Æ¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡ã¼ÂÁõÆ°²è¢¡¡Å¨¥¥ã¥é¤¬¹¶·âÈϰϳ°¤Ë¤Ê¤Ã¤¿¤é¹¶·â¤òÄä»ß¤¹¤ë¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¼ê½ç£±£²¡¡¡¼Ì£Êý¥¥ã¥é¤Î¹¶·â½èÍý¤ÈŨ¥¥ã¥é¤Î¥À¥á¡¼¥¸½èÍý¤Î¼ÂÁõ¡¼
£²£°¡¥CharaController ¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤ò¹Ô¤¤¡¢¹¶·âÈÏ°ÏÆâ¤Ë¿¯Æþ¤·¤¿Å¨¥¥ã¥é¤Ë°ìÄê»þ´Ö¤´¤È¤Ë¹¶·â¤¹¤ë½èÍý¤È¡¢Å¨¥¥ã¥é¤¬¤¤¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ë¹¶·â¤òÄä»ß¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë £²£±¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤ò¹Ô¤¤¡¢¹¶·âÈÏ°ÏÆâ¤Ë¿¯Æþ¤·¤¿Å¨¥¥ã¥é¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ÆÇ˲õ¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë
¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
¡¡¡¦while ʸ¤È¥³¥ë¡¼¥Á¥ó¡¦¥á¥½¥Ã¥É¤òÁȤ߹ç¤ï¤»¤¿½èÍý¤Î¼ÂÁõÎã ¡¡¡¦OnTriggerExit2D ¥á¥½¥Ã¥É ¡¡¡¦Mathf.Clamp ¥á¥½¥Ã¥É ¡¡¡¦Tween.Kill ¥á¥½¥Ã¥É
£²£°¡¥CharaController ¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤ò¹Ô¤¤¡¢¹¶·âÈÏ°ÏÆâ¤Ë¿¯Æþ¤·¤¿Å¨¥¥ã¥é¤Ë°ìÄê»þ´Ö¤´¤È¤Ë¹¶·â¤¹¤ë½èÍý¤È¡¢Å¨¥¥ã¥é¤¬¤¤¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ë¹¶·â¤òÄä»ß¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë ![](https://static.seesaawiki.jp/img/usr_second/common/icon_pen.gif)
¡¡°ìÅ٤˽èÍý¤ò¼ÂÁõ¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ËɱÒÍѤΥ¥ã¥é¦¤Î½èÍý¤ò¼ÂÁõ¤·¡¢¤½¤Î¸å¡¢Å¨¥¥ã¥é¦¤Î½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£
£±¤Ä¤º¤Ä½çÈ֤˵¡Ç½¤òÄɲ䷤Ƥ¤¤¯¤³¤È¤ÇÉÔ¶ñ¹ç¤ò¸«¤Ä¤±¤ä¤¹¤¯¤·¤Þ¤¹¡£¤Þ¤¿¡¢Á°Äó¤È¤Ê¤ë½èÍý¤òÍý²ò¤·¤¿¾å¤ÇÀè¤Ë¿Ê¤á¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤Þ¤º¤ÏËɱÒ¦¤ÎÌ£Êý¥¥ã¥é¤Ë¤É¤Î¤è¤¦¤Ê½èÍý¤¬É¬Íפˤʤ뤫¡¢¤½¤Î¾ì¹ç¤Ë¤Ï¡¢¤É¤ó¤ÊÊÑ¿ô¤¬É¬Íפǡ¢¤É¤Î¤è¤¦¤ËÍøÍѤ·¤Æ¤¤¤±¤Ð¤è¤¤¤«¤È¤¤¤Ã¤¿Éôʬ¤ò¹Í¤¨¤Æ½ñ¤¤À¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
Ƭ¤ÎÃæ¤Ç¤Î¥¤¥á¡¼¥¸¤ò½ñ¤½Ð¤¹¤³¤È¤¬½ÐÍè¤ì¤Ð¡¢¤½¤ì¤ò¸µ¤Ë¥×¥í¥°¥é¥à¤Î¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¤¤¤¯¤³¤È¤¬Íưפˤʤê¤Þ¤¹¡£
¸½ºß¤Î CharaController ¥¹¥¯¥ê¥×¥È¤ò¤ß¤Ê¤¬¤é½èÍý¤ò¥¤¥á¡¼¥¸¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¡¡
¡¡¹¶·âÈÏ°ÏÆâ¤Ë¤Ä¤¤¤Æ¤Ï OnTriggerEnter2D ¥á¥½¥Ã¥É¤Ë¤ª¤¤¤Æ¼ÂÁõºÑ¤Ç¤¹¡£¤³¤Î½èÍý¤ÎÃæ¤ÇŨ¥¥ã¥é¤ò¤¹¤°¤ËÇ˲õ¤·¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤¿¤á¡¢
¤½¤ÎÉôʬ¤ò¡Ö°ìÄê»þ´Ö¤´¤È¡×¤Ë¡ÖŨ¤ò¹¶·â¤¹¤ë¡×¤È¤¤¤¦¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¤¤¤¤Þ¤¹¡£
¡¡°ìÄê»þ´Ö¤´¤È¡¢¤È¤¤¤¦¤Î¤Ï¡¢´Êñ¤Ë¹Í¤¨¤Æ¤â·×¬ÍѤÎÃͤÈÌÜɸÍѤÎÃͤΣ²¤Ä¤¬É¬Íפˤʤê¤Þ¤¹¡£
ÃÍƱ»Î¤òÈæ³Ó¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢°ìÄê»þ´Ö¤òɽ¸½¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ë¤¿¤á¤Ç¤¹¡£
¤Þ¤¿°ìÄê»þ´Ö¤òȽÄꤷ¡¢¤½¤ì¤ò·«¤êÊÖ¤¹¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢·«¤êÊÖ¤·ÍѤνèÍý¤ò¹Í¤¨¤ëɬÍפ⤢¤ê¤Þ¤¹¡£
¡¡Å¨¤ò¹¶·â¤¹¤ë¡¢¤È¤¤¤¦¤Î¤Ï¡¢Å¨¤ÎÂÎÎϤò¸º¤é¤¹¡¢¤È¤¤¤¦¾õÂ֤ˤʤê¤Þ¤¹¡£
¸½»þÅÀ¤Ç¤ÏŨ¤Ë¤âÂÎÎϤȤʤëÃͤϤ¢¤ê¤Þ¤»¤ó¤Ç¤Î¡¢¤Þ¤º¤ÏËɱÒÍѤÎÌ£Êý¥¥ã¥é¤Ë¹¶·âÎÏÍѤÎÃͤò½àÈ÷¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¸º¤é¤¹½èÍý¼«ÂΤÏŨ¤ÎÂÎÎϤ¬Äɲ䵤ì¤Æ¤«¤é¼ÂÁõ¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤Ï Debug.Log ¥á¥½¥Ã¥É¤ò³èÍѤ·¤Æ¡¢¹¶·â¤ò¹Ô¤Ã¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤ª¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£
¤³¤ÎÉôʬ¤Ë¤¢¤È¤Ç½èÍý¤ò¼ÂÁõ¤¹¤ë¥¤¥á¡¼¥¸¤Ç¤¹¡£
¡¡¤Þ¤º¤Ï¤³¤³¤Þ¤Ç¤ò¼ÂÁõ¤Ç¤¤ë¤è¤¦¤Ë¡¢¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¡¡À߷פÎÆâÍƤò¸µ¤Ë¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¡¢¤½¤ì¤«¤é¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Þ¤¹¡£
¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤¹¤ë¤Î¤Ï¡¢¤·¤Ã¤«¤ê¤È½èÍý¤Î¥¤¥á¡¼¥¸¤¬¸Ç¤Þ¤ê¡¢¥í¥¸¥Ã¥¯¤¬´°À®¤·¤Æ¤«¤é¤Ë¤Ê¤ê¤Þ¤¹¡£
¤¤¤¤Ê¤ê½èÍý¤ò½ñ¤¤¤¿¤ê¡¢¶µºàÄ̤ê¤Ë½ñ¤±¤Ð¤¤¤¤¡¢¤È¤¤¤¦·Á¤Ç¿Ê¤á¤Æ¤·¤Þ¤¦¤È¡¢¸å¡¹¤Ë¼«Ê¬¤Ç¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤ë¤³¤È¤¬½ÐÍè¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¡¡¾ï¤Ë¼«Ê¬¤Ç½èÍý¤ò½ñ¤¯¡¢¤È¤¤¤¦°Õ¼±¤ò»ý¤Á¤Ê¤¬¤é¡¢½èÍý¤ÎÆâÍƤòÍý²ò¤·¤Ê¤¬¤é½ñ¤¤¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
CharaController.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡while(¥Û¥ï¥¤¥ë) ʸ¤ÏÈ¿Éü½èÍý¤È¸Æ¤Ð¤ì¤ë½èÍý¤Ç¤¹¡£¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¸Â¤ê¡¢·«¤êÊÖ¤·½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡º£²ó¤Î¥±¡¼¥¹¤Ç¤Ï¾ò·ï¤¬¡ÖisAttack ¤ÎÃͤ¬ true ¤Î´Ö¡×¤Ç¤¹¡£
¤è¤Ã¤Æ¡¢isAttack ¤ÎÃͤ¬ false ¤Ë¤Ê¤ë¤Þ¤Ç¤Ï¤º¤Ã¤È·«¤êÊÖ¤µ¤ì¤Æ½ª¤ï¤ë¤³¤È¤Î¤Ê¤¤½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
public IEnumerator PrepareteAttack() { Debug.Log("¹¶·â½àÈ÷³«»Ï"); int timer = 0; ¡¡¡¡¡¡¡¡// ¹¶·âÃæ¤Î´Ö¤À¤±¥ë¡¼¥×½èÍý¤ò·«¤êÊÖ¤¹ while (isAttack) { // TODO ¥²¡¼¥à¥×¥ì¥¤Ãæ¤Î¤ß¹¶·â¤¹¤ë timer++; ¡¡¡¡¡¡¡¡¡¡¡¡// ¹¶·â¤Î¤¿¤á¤ÎÂÔµ¡»þ´Ö¤¬·Ð²á¤·¤¿¤é ¡¡¡¡¡¡¡¡ if (timer > intervalAttackTime) { ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¼¡¤Î¹¶·â¤ËÈ÷¤¨¤Æ¡¢ÂÔµ¡»þ´Ö¤Î¥¿¥¤¥Þ¡¼¤ò¥ê¥»¥Ã¥È timer = 0; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¹¶·â Attack(); // TODO ¹¶·â²ó¿ô´ØÏ¢¤Î½èÍý¤ò¤³¤³¤Ëµ½Ò¤¹¤ë } ¡¡¡¡¡¡¡¡¡¡¡¡// £±¥Õ¥ì¡¼¥à½èÍý¤òÃæÃǤ¹¤ë(¤³¤Î½èÍý¤ò½ñ¤Ëº¤ì¤ë¤È̵¸Â¥ë¡¼¥×¤Ë¤Ê¤ê¡¢Unity ¥¨¥Ç¥£¥¿¡¼¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤ÆºÆµ¯Æ°¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Ãí°Õ¡ª) yield return null; } }
¡¡while ʸÆâ¤Î½èÍý¤Ï£³¤Ä¤¢¤ê¡¢£±¤Ä¤Ï timer ÊÑ¿ô¤Î²Ã»»½èÍý¡¢¤â¤¦£±¤Ä¤Ï¹¶·â¥á¥½¥Ã¥É¤Î¼Â¹Ô½èÍý¤Ç¤¹¡£
»ØÄꤵ¤ì¤¿Ãͤˤʤ뤿¤Ó¡¢¹¶·â¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ëÀ©¸æ¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤â¤¦£±¤Ä¤Ï yield ¤Ë¤è¤ëÃæÃÇ(ÂÔµ¡¡¦ÃÙ±ä)¤Î½èÍý¤Ç¤¹¡£ yield return null £±¥Õ¥ì¡¼¥à¤À¤±½èÍý¤òÃæÃǤ·¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢¤³¤Î while ʸ¤Ë¤è¤ë·«¤êÊÖ¤·¤Î½èÍý¤Ï¼¡¤Î¤è¤¦¤ÊµóÆ°¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡£±¡¥while ʸ¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¤«¡¢³Îǧ¤¹¤ë¡£Ëþ¤¿¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢½èÍý¤ò½ªÎ»¤¹¤ë ¡¡£²¡¥¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢timer ÊÑ¿ô¤ÎÃͤò²Ã»»¤¹¤ë¡£ ¡¡¡¡¡¡¤½¤Î¸å¡¢timer ÊÑ¿ô¤ÎÃÍ¤È intervalAttackTime ¤ÎÃͤò if ʸ¤Ë¤ÆÈæ³Ó¤·¤Æ¡¢¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï if ʸÆâ¤Î½èÍý(timer ÊÑ¿ô¤Î¥ê¥»¥Ã¥È¤È¹¶·â¥á¥½¥Ã¥É¤Î¸Æ¤Ó½Ð¤·)¤ò¹Ô¤¦ ¡¡£³¡¥£±¥Õ¥ì¡¼¥àÂÔ¤Ä ¡¡£´¡¥¡Ú£±¡Û¤Î½èÍý¤ËÌá¤ë
¡¡Update ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¤¤¤Þ¤»¤ó¤¬¡¢¤·¤Ã¤«¤ê¤È°ìÄê¤Î´Ö³Ö¤Ç·«¤êÊÖ¤·¹¶·â¤ò½èÍý¤ò¼ÂÁõ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤·¤¿¡£
¡¡¤Ê¤ª¡¢while ʸ¤Ç¤Ï½èÍý¤òÃæÃǤ¹¤ë½èÍý¤ò¶´¤Þ¤Ê¤¤¤È·«¤êÊÖ¤·¤Î½èÍý¤¬»ß¤Þ¤é¤Ê¤¯¤Ê¤Ã¤Æ¡¢Unity ¤Î¥¨¥Ç¥£¥¿¡¼¤¬Æ°¤«¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
¤³¤¦¤Ê¤Ã¤Æ¤·¤Þ¤¦¤ÈºÆµ¯Æ°¤¹¤ë¤·¤«¤Ê¤¯¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢while ʸ¤ÏÆä˵¤¤òÉÕ¤±¤Æºî¶È¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¹Í¥µ¥¤¥È
̤³ÎǧÈô¹Ô C ÍÍ
È¿Éü½èÍý
https://ufcpp.net/study/csharp/st_loop.html
¡¡Â¾¤Ë¤â¼«Æ°Åª¤Ë¹¶·â¤ò¹Ô¤¦¤è¤¦¤Ë¤¹¤ë½èÍý¤Ï¹Í¤¨¤é¤ì¤Þ¤¹¡£¿§¡¹¤Ê½èÍý¤ò»î¤·¤Æ¤ª¤¯¤³¤È¤Ç½èÍý¤Î°ú¤½Ð¤·¤¬¹¤¬¤ê¡¢
¤è¤ê¿¤¯¤Î½èÍý¤ò¼ÂÁõ¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤¤¤Ä¤â»È¤Ã¤Æ¤¤¤ë½èÍý¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¿·¤·¤¤µ»½Ñ¤â¼è¤êÆþ¤ì¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¡¡Chara ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¡¢¿·¤·¤¯Äɲä·¤¿ÊÑ¿ô¤Ë¾ðÊó¤ËÀßÄ꤬ȿ±Ç¤·¤Æ¤¤¤ë¤«³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
½é´üÃͤ¬Æþ¤ê¤Þ¤¹¤Î¤Ç¿·¤·¤¯ÀßÄê¤òÊѹ¹¤¹¤ëÉôʬ¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢³Îǧ¤À¤±¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¡¡isAttack ÊÑ¿ô¤Ï¥¹¥¯¥ê¥×¥ÈÆâ¤ÇÀ©¸æ¤¬Æþ¤ê¤Þ¤¹¤Î¤Ç¡¢¥Á¥§¥Ã¥¯¤Ê¤·¡Êfalse¡Ë¤Î¾õÂ֤ǹ½¤¤¤Þ¤»¤ó¡£
¤Þ¤¿ enemy ÊÑ¿ô¤âƱÍͤǡ¢OnTriggerEnter2D ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤¿¥¿¥¤¥ß¥ó¥°¤ÇÂåÆþ¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤â None ¤Î¤Þ¤Þ¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü
![](https://image02.seesaawiki.jp/i/o/i-school-memo/YENfnXu2B8.png)
¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
¡¡¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë½èÍý¤ÎÆâÍƤòÇÄ°®¤·¤Æ¤«¤é¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÀ©¸æ¤Ç¤¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤¤¤¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡°ìÄê»þ´Ö(Ìó1ÉÃÁ°¸å)¤´¤È¤Ë Debug.Log ¥á¥½¥Ã¥É¤¬É½¼¨¤µ¤ì¤ì¤Ð¡¢·«¤êÊÖ¤·½èÍý¤È¹¶·â½èÍý¤ÎÀ©¸æÀ®¸ù¤Ç¤¹¡£
¡¡¹¶·â¤Î½èÍý¤¬·«¤êÊÖ¤·È¯À¸¤·¡¢ÂçÎ̤Ρֹ¶·â¡×¥í¥°¤¬É½¼¨¤µ¤ì¤ë¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£
¡¡¤³¤Î¾ì¹ç¡¢¥¹¥¯¥ê¥×¥È¦¤Î¥¨¥é¡¼¤Î¾ì¹ç¤È¡¢PC ¤Î¥¹¥Ú¥Ã¥¯¤Ë°Í¸¤·¤Æ¤¤¤ë¾ì¹ç¤Î£²¤Ä¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£
¡¡¤Þ¤º¤Ï¤É¤Á¤é¤Ë³ºÅö¤¹¤ë¤Î¤«¤ò¡¢¤¹¤Ç¤Ëµ½ÒºÑ¤Î Debug.Log ¥á¥½¥Ã¥É¤Ç³Îǧ¤·¡¢ÌäÂê¤ÎÆÃÄê¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡
public IEnumerator PrepareteAttack() { Debug.Log("¹¶·â½àÈ÷³«»Ï");¡¡¡¡//¡¡¢«¡¡¤³¤Î¥í¥° ¡¡¡¡¡¡(¾Êά)
¡¡¤³¤Î PrepareteAttack ¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Ë¤¢¤ë Debug.Log("¹¶·â½àÈ÷³«»Ï") ¤¬²¿²ó¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡Ö¹¶·â½àÈ÷³«»Ï¡×¤È¤¤¤¦¥í¥°¤¬ÂçÎ̤˽ФƤ¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥¹¥¯¥ê¥×¥È¦¤Î¥¨¥é¡¼¤Î²ÄǽÀ¤¬¹â¤¤¤Ç¤¹¡£
½èÍý¤ò½ñ¤´Ö°ã¤¨¤Æ¤¤¤Ê¤¤¤«¡¢ºÆÅÙ¡¢¶µºà¤ÎÆâÍƤȡ¢¼«Ê¬¤Î½ñ¤¤¤¿¥¹¥¯¥ê¥×¥È¤ÎÆâÍƤθ«Ä¾¤·¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡Ö¹¶·â½àÈ÷³«»Ï¡×¤Î¥í¥°¤Ï£±²ó¤·¤«½Ð¤Æ¤¤¤Ê¤¤¤Ë¤â¤«¤«¤ï¤é¤º¡¢ÂçÎ̤ΠDebug.Log(¡È¹¶·â¡É) ¤¬É½¼¨¤µ¤ì¤ë¾ì¹ç¡¢
¤ª»È¤¤¤Î PC ¤Î Update ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¥Õ¥ì¡¼¥à¥ì¡¼¥È(FPS)¤ÎÃͤ¬¹â¤¤¤³¤È¤¬¸¶°ø¤Ç¤¹¡£
¡¡while ʸ¤Ï yield return null ¤Ë¤è¤ê¡¢1¥Õ¥ì¡¼¥à¤´¤È¤Î¥ë¡¼¥×½èÍý¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢
¤³¤Î1Éô֤˼¹Ԥ¹¤ë¥Õ¥ì¡¼¥à¥ì¡¼¥È¤ò 60 ¤ÈÁÛÄꤷ¤Æ¥×¥í¥°¥é¥à¤òºîÀ®¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢intervalAttackTime ÊÑ¿ô¤Ë¤Ï 60 ¤È¤¤¤¦ÃͤòÂåÆþ¤·¤Æ if ʸ¤Î¾ò·ï¼°¤È¤·¡¢
timer ÊÑ¿ô¤Ï1Éä´¤È¤Ë 60 ¤Ë¤Ê¤ëÁÛÄê¤Ç¤½¤Î¥¿¥¤¥ß¥ó¥°¤Ç Attack ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤Þ¤¹¡£
int timer = 0; ¡¡¡¡¡¡¡¡// ¹¶·âÃæ¤Î´Ö¤À¤±¥ë¡¼¥×½èÍý¤ò·«¤êÊÖ¤¹ while (isAttack) { timer++; ¡¡¡¡¡¡¡¡¡¡¡¡// ¹¶·â¤Î¤¿¤á¤ÎÂÔµ¡»þ´Ö¤¬·Ð²á¤·¤¿¤é ¡¡¡¡¡¡¡¡ if (timer > intervalAttackTime) {¡¡¡¡//¡¡¢«¡¡¤³¤³ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¼¡¤Î¹¶·â¤ËÈ÷¤¨¤Æ¡¢ÂÔµ¡»þ´Ö¤Î¥¿¥¤¥Þ¡¼¤ò¥ê¥»¥Ã¥È timer = 0; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¹¶·â Attack(); // TODO ¹¶·â²ó¿ô´ØÏ¢¤Î½èÍý¤ò¤³¤³¤Ëµ½Ò¤¹¤ë } ¡¡¡¡¡¡¡¡¡¡¡¡// £±¥Õ¥ì¡¼¥à½èÍý¤òÃæÃǤ¹¤ë(¤³¤Î½èÍý¤ò½ñ¤Ëº¤ì¤ë¤È̵¸Â¥ë¡¼¥×¤Ë¤Ê¤ê¡¢Unity ¥¨¥Ç¥£¥¿¡¼¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤ÆºÆµ¯Æ°¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Ãí°Õ¡ª) yield return null;
¡¡¤½¤Î¤¿¤á¡¢1Éô֤Υե졼¥à¥ì¡¼¥È¤ÎÃͤ¬¹â¤¤¤È¡¢timer ÊÑ¿ô¤ÎÃͤ¬¤¹¤°¤Ë intervalAttackTime(60) ¤ËÅþ㤹¤ë¤¿¤á¡¢
1Éäδ֤˲¿²ó¤â·«¤êÊÖ¤·¤Æ if (timer > intervalAttackTime) ¤Î¾ò·ï¤òËþ¤¿¤¹¤³¤È¤Ë¤Ê¤ê¡¢Attack ¥á¥½¥Ã¥É¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢
Debug.Log("¹¶·â") ¤Î¥í¥°¤¬ÂçÎ̤˽ФƤ·¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡²þÁ±ÊýË¡¤È¤·¤Æ¤Ï¡¢intervalAttackTime ÊÑ¿ô¤ÎÃͤòÊѹ¹¤¹¤ë¤«¡¢¥Õ¥ì¡¼¥à¥ì¡¼¥È¤ÎÃͤòµ¬ÄêÃͤËÀßÄꤹ¤ëÊýË¡¤Ç¤¹¡£
¤¿¤À¤·¡¢intervalAttackTime ÊÑ¿ô¤ÎÃͤˤĤ¤¤Æ¤Ï¡¢ÁêÅö¤Ë¹â¤¤ÃͤËÀßÄꤷ¤Æ¤â¡¢ÊѲ½¤¬¸«¤é¤ì¤Ê¤¤²ÄǽÀ¤¬¹â¤¤(PC ¤Î¥¹¥Ú¥Ã¥¯¤¬¹â¤¤)¤Î¤Ç¤½¤ÎÊýË¡¤Ï¤ª´«¤á¤·¤Þ¤»¤ó¡£
¤³¤³¤Ç¤Ï¥Õ¥ì¡¼¥à¥ì¡¼¥È¤ÎÃͤòµ¬ÄêÃͤËÀßÄꤹ¤ëÊýË¡¤òºÎÍѤ·¤Æ¤¯¤À¤µ¤¤¡£
¡¡²¼µ¤Îµ»ö¤ò»²¹Í¤Ë¤·¤Æ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢¤¤¤º¤ì¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤â¹½¤¤¤Þ¤»¤ó¤Î¤Ç¥¢¥¿¥Ã¥Á¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¡¡¡¡¢ª¡¡¥Õ¥ì¡¼¥à¥ì¡¼¥È(FPS)¤Î¸ÇÄê²½ÀßÄê¤ÎÊýË¡
¡¡¤³¤¦¤¹¤ë¤³¤È¤Ç¥Õ¥ì¡¼¥à¥ì¡¼¥È¤ÎÃͤ¬¸ÇÄê²½¤µ¤ì¤ë¤¿¤á PC ¤ÎÀǽº¹¤Ë°Í¸¤·¤Ê¤¤ÃͤˤʤꡢÌäÂê¤ò²ò¾Ã¤Ç¤¤Þ¤¹¡£
¡¡¥Ç¥Ð¥Ã¥°¤ò¹Ô¤Ã¤Æ½èÍý¤ò³Îǧ¤·¤Æ¤¤¤¯¤È¤ï¤«¤ê¤Þ¤¹¤¬¡¢OnTriggerEnter2D ¥á¥½¥Ã¥É¤ËÃÖ¤¤¤Æ EnemyController ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤È¡¢
¤½¤Î¾ðÊó¤ò¤º¤Ã¤ÈÊÝ»ý¤·¤¿¤Þ¤Þ¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢Å¨¥¥ã¥é¤¬¹¶·âÈϰϳ°¤Ë½Ð¤Æ¤¤¤Ã¤Æ¤â¡¢¤º¤Ã¤È¹¶·â¤ò¤·Â³¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤³¤Á¤é¤ò½¤Àµ¤¹¤ë¤³¤È¤ò¹Í¤¨¤Þ¤¹¡£
¡¡OnTriggerExit2D ¥á¥½¥Ã¥É¤È¤¤¤¦½èÍý¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤ò³èÍѤ·¤Þ¤·¤ç¤¦¡£
¤³¤Î¥á¥½¥Ã¥É¤Ï¿¯Æþ¤·¤Æ¤¤¤ë¥³¥é¥¤¥À¡¼¤¬¿¯ÆþÈϰϳ°¤Ë½Ð¤¿¤È¤¤Ë£±²ó¤À¤±¼«Æ°Åª¤Ë½èÍý¤¬¼Â¹Ô¤µ¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
¤Ä¤Þ¤ê¡¢Å¨¥¥ã¥é¤¬¹¶·âÈϰϳ°¤Ë½Ð¤¿¥¿¥¤¥ß¥ó¥°¤Ç¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¥á¥½¥Ã¥ÉÆâ¤Ç·«¤êÊÖ¤·¤Î½èÍý¤òÄä»ß¤·¡¢ EnemyController ¤Î¾ðÊó¤òºï½ü¤¹¤ë¤³¤È¤¬½ÐÍè¤ì¤Ð
·ë²Ì¤È¤·¤Æ¹¶·â½èÍý¤âÄä»ß¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡·«¤êÊÖ¤·¤Î½èÍý¤Ï¤É¤Î¤è¤¦¤Ë¤·¤ÆÆ°¤¤¤Æ¤¤¤ë¤«¡©¡¡
¡¡Ää»ß¤¹¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤«¡©
¤³¤Î¥í¥¸¥Ã¥¯¤ò¥¤¥á¡¼¥¸¤·¤Æ¡¢½èÍý¤ò½ñ¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡£
CharaController.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡½èÍý¤ò½¤Àµ¤·¤Þ¤·¤¿¤Î¤Ç¡¢Chara ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Ê¤¬¤é½èÍý¤ò¼Â¹Ô¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¤É¤Î½èÍý¤¬¡¢¤É¤ÎÉôʬ¤òÆ°¤«¤·¤Æ¤¤¤ë¤Î¤«¤òÍý²ò¤·¤Æ¤ª¤¯¤³¤È¤¬¥¹¥¯¥ê¥×¥È¤ÎÍý²ò¤ò¿¼¤á¤ë¤³¤È¤Ë¤â¤Ê¤ê¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡Ìµ»ö¤ËÀ©¸æ¤Ç¤¤Æ¤¤¤ë¤«³Îǧ¤·¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
£²£±¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤ò¹Ô¤¤¡¢¹¶·âÈÏ°ÏÆâ¤Ë¿¯Æþ¤·¤¿Å¨¥¥ã¥é¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ÆÇ˲õ¤¹¤ë½èÍý¤ò¼ÂÁõ¤¹¤ë ![](https://static.seesaawiki.jp/img/usr_second/common/icon_pen.gif)
¡¡¥×¥í¥°¥é¥à¤Î¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤ë¤È¤¤Ï¡¢¼Â¹Ô¤·¤¿¤¤½èÍý¤ò¥á¥½¥Ã¥É¤Ë¤Þ¤È¤á¤ÆÍÑ°Õ¤·¡¢¤½¤ì¤òɬÍפʥ¿¥¤¥ß¥ó¥°¤Ç¸Æ¤Ó½Ð¤¹¤è¤¦¤Ë¹Í¤¨¤Þ¤¹¡£
º£²ó¤Î¥±¡¼¥¹¤Ç¤¢¤ì¤Ð¡¢¸Æ¤Ó½Ð¤·¤¿¤¤¥¿¥¤¥ß¥ó¥°¤Ï CharaController ¥¹¥¯¥ê¥×¥È¦¤Ë TODO ¤Çµ½Ò¤·¤Æ¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢
¤¢¤È¤Ï¤½¤Î½èÍý¤ò¼ÂÁõ¤¹¤ì¤Ð¥í¥¸¥Ã¥¯¤¬´°À®¤·¤Þ¤¹¡£
¡¡EnemyController ¥¹¥¯¥ê¥×¥È¦¤Ë¡¢CharaController ¥¹¥¯¥ê¥×¥È¦¤«¤é¸Æ¤Ó½Ð¤·¤Æ¤â¤é¤¦¥á¥½¥Ã¥É¤ò¼ÂÁõ¤·¤Þ¤·¤ç¤¦¡£
¥á¥½¥Ã¥É¤Ë¤Ï°ú¿ô¤òÀßÄê¤Ç¤¤Þ¤¹¤Î¤Ç¡¢CharaController ¥¹¥¯¥ê¥×¥È¦¤ËÀßÄꤷ¤Æ¤¤¤ë attackPower ¤ÎÃͤò°ú¿ô¤òÄ̤¸¤Æ¼õ¤±¼è¤ë¤³¤È¤Ç
EnemyController ¥¹¥¯¥ê¥×¥È¦¤Î¥á¥½¥Ã¥É¤Ë¡¢attackPower ¤ÎÃͤ¬¾ðÊó¤È¤·¤ÆÆϤ¡¢ÍøÍѽÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Å¨¤ÎÇ˲õ½èÍý¤ËºÝ¤·¤Æ¤Ç¤¹¤¬¡¢Å¨¤Î°ÜÆ°¤ò¼Â¹Ô¤·¤Æ¤¤¤ë DOTween ¤Î DOPath ¥á¥½¥Ã¥É¤ÏÈóƱ´ü½èÍý¤ÇÆ°¤¤¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢DOPath ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ¤¤¤ëŨ¥¥ã¥é¼«ÂΤ¬Ç˲õ¤µ¤ì¤Æ¤·¤Þ¤Ã¤Æ¤â¡¢¤³¤Î½èÍý¼«ÂΤ¬¼«Æ°Åª¤Ë½ªÎ»¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
Ä̾ï¤ÎƱ´ü½èÍý¤Ë¤è¤ë¥×¥í¥°¥é¥à¤ÈÈóƱ´ü½èÍý¤Ë¤è¤ë¥×¥í¥°¥é¥à¤Ë¤Ï¤³¤Î¤è¤¦¤Ê°ã¤¤¤â¤¢¤ê¤Þ¤¹¡£
¡¡¤è¤Ã¤Æ¡¢Å¨¥¥ã¥é¤¬Ç˲õ¤µ¤ì¤¿¥¿¥¤¥ß¥ó¥°¤ÇŬÀÚ¤Ë DOPath ¥á¥½¥Ã¥É¤Î½èÍý¤ò½ªÎ»¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡DOTween ¤Î½èÍý¤Ï Tween ¤È¤¤¤¦·¿¤Ë¤è¤Ã¤ÆÆ°¤¤¤Æ¤¤¤Þ¤¹¡£½èÍý¤Î¼Â¹ÔÅÓÃæ¤Ç½èÍý¤ò½ªÎ»¤·¤¿¤¤¾ì¹ç¡Ê¤¢¤ë¤¤¤Ï°ì»þÄä»ß¤·¤¿¤¤¾ì¹ç¤Ê¤É¡Ë¤Ï¡¢
Tween ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤ª¤¡¢¤½¤ÎÃæ¤Ë¼Â¹Ô¤¹¤ë¥á¥½¥Ã¥É¤òÂåÆþ¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢½èÍý¤ÎÀ©¸æ¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç
Ũ¤ÎÇ˲õ½èÍý¤ò¼ÂÁõ¤¹¤ë¾ì¹ç¡¢DOPath ¥á¥½¥Ã¥É¤Î¼Â¹Ô½èÍý¤Ë¤â½¤Àµ¤¬É¬Íפˤʤê¤Þ¤¹¡£
¡¡¿·¤·¤¯¥À¥á¡¼¥¸·×»»ÍѤΥ᥽¥Ã¥É¤ÈÇ˲õ½èÍýÍѤΥ᥽¥Ã¥É¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¡¡
¤³¤ì¤Ëȼ¤¤¡¢Start ¥á¥½¥Ã¥ÉÆâ¤Ë½èÍý¤ÎÄɲäȽ¤Àµ¤¬¤¢¤ê¤Þ¤¹¡£
¡¡ÊÑ¿ô¤ÎÀë¸À¤â¿·¤·¤¯£³¤Ä½àÈ÷¤·¤Æ¤¤¤Þ¤¹¡£Æ±¤¸¹àÌÜƱ»Î(SerializeField°À ¤ÎÊÑ¿ô)¤Çʤ٤Ƥ¤¤ë¤¿¤á¡¢ÅÓÃæ¤Ëº¹¤·¹þ¤ó¤Ç¤¤¤Þ¤¹¡£
¡¡º£¸å¤Î¼ÂÁõ¤ò¸«Ä̤·¡¢TODO ¤ò»Ä¤·¤Æ¤ª¤¤Þ¤¹¡£¤³¤Á¤é¤â½ç¼¡¡¢É¬Íפ˱þ¤¸¤ÆÄɵ¤·¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¼«Ê¬¤Ç½èÍý¤Îή¤ì¤ò¹Í¤¨¤Æ¤ß¤Æ¡¢¤³¤³¤Ë¤Ï¤³¤ó¤Ê½èÍý¤¬Íߤ·¤¤¤Ê¡¢¤È¤¤¤¦Éôʬ¤Ë¤ÏÀѶËŪ¤Ë TODO ¤ò»Ä¤·¤Æ¤ª¤¯¤è¤¦¤Ë¤¹¤ë¤È¥×¥í¥°¥é¥à¤Î¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
EnemyController.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¤·¤Þ¤¹¡£
¡¡Mathf ¹½Â¤ÂΤϡ¢Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë¡¢¿ô³Ø´Ø¿ô¤ÎÊÑ¿ô¤ä¥á¥½¥Ã¥É¤ò¤Þ¤È¤á¤Æ¤¢¤ë¹½Â¤ÂΤǤ¹¡£
Ä̾ï¤Î Math ¥¯¥é¥¹¤È°Û¤Ê¤ê¡¢Ìá¤êÃÍ¤Ï float ·¿¤ÇÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
Mathf
¡¡¤³¤Î¤¦¤Á¡¢Clamp ¥á¥½¥Ã¥É¤Ï¡¢¡ÖÀ©¸æ¤·¤¿¤¤»ØÄêÃͤò¡¢»ØÄꤷ¤¿ÈÏ°ÏÆâ¤ÎºÇ¾®ÃÍ¡¢ºÇÂçÃͤ˼ý¤á¤Æ¤¯¤ì¤ë(ÃÖ¤´¹¤¨¤Æ¤¯¤ì¤ë)¡×½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ã¥á¥½¥Ã¥É¤ÎµË¡¡ä
À©¸æ¤·¤¿¤¤»ØÄêÃÍ = Mathf.Clamp(À©¸æ¤·¤¿¤¤»ØÄêÃÍ, ºÇ¾®ÃÍ, ºÇÂçÃÍ);¡¡
¡¡¤³¤Î¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ¡¢·×»»½èÍý¸å¤Î hp ÊÑ¿ô¤ÎÃͤòÀ©¸Â¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¾åµ¤Î¥á¥½¥Ã¥É¤Î½ñ¼°¤Ë¡¢À©¸æ¤·¤¿¤¤ÃͤòÅö¤Æ¤Ï¤á¤Æ½èÍý¤òÁȤßΩ¤Æ¤Æ¤ß¤Þ¤·¤ç¤¦¡£
// Hp ¤ÎÃͤò¸º»»¤·¤¿·ë²ÌÃͤò¡¢ºÇÄãÃͤȺÇÂçÃͤÎÈÏ°ÏÆâ¤Ë¼ý¤Þ¤ë¤è¤¦¤Ë¤·¤Æ¹¹¿· hp = Mathf.Clamp(hp -= amount, 0, maxHp);
¡¡¤Ê¤ªMathf.Clamp¥á¥½¥Ã¥É¤Ë¤Ï¥ª¡¼¥Ð¡¼¥í¡¼¥É¤¬¤¢¤ê¡¢°ú¿ô¤Î·¿¤Ï¡¢float·¿¤Èint·¿¤Ç¤½¤ì¤¾¤ìÍøÍѤ¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
hp ÊÑ¿ô¤Î·¿¤Ï int ·¿¤Ç¤¹¤Î¤Ç¡¢º£²ó¤Ï¼«Æ°Åª¤Ë int ·¿¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Mathf.Clamp
¡¡DOTween ¤Ë´ØÏ¢¤¹¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
Tween ·¿¤ÎÊÑ¿ô¤òÀë¸À¤¹¤ë¤³¤È¤Ç¡¢DOTween¤Î½èÍýÆâÍƤòÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡DOTween¤Î½èÍý¤ÏÊÑ¿ô¤ËÂåÆþ¤»¤º¤È¤â¼Â¹Ô¤Ç¤¤Þ¤¹¡£ËÜÍè¤Ï¤½¤ì¤À¤±¤ÇÌäÂê¤Ï¤Ê¤¤¤Î¤Ç¤¹¤¬¡¢
Tween ·¿¤ÎÊÑ¿ô¤Ë DOTween ¤Î½èÍý¤òÂåÆþ¤·¤Æ¤¤¤ë¤³¤È¤Ç¡¢DOTween¤Î½èÍý¤ò°ì»þÄä»ß¤µ¤»¤¿¤ê¡¢ºÆ³«¤·¤¿¤ê¡¢¶¯À©Åª¤Ë½ªÎ»¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤É¤Î¤è¤¦¤Ê¾ìÌ̤ǻÈÍѤ¹¤ë¤«¤È¤¤¤¦¤È¡¢Ìµ¸Â¥ë¡¼¥×¤Î½èÍý¤ò½ªÎ»¤µ¤»¤¿¤ê¡¢°ì»þÄä»ß¤·¤ÆºÆ³«¤·¤¿¤ê¤Ç¤¤Þ¤¹¡£
¤Þ¤¿¡¢º£²ó¤Î¤è¤¦¤Ë·ÐÏ©°ÜÆ°¤Î½èÍý¤ÎÅÓÃæ¤ÇŨ¥¥ã¥é¤¬Ç˲õ¤µ¤ì¤Æ¤·¤Þ¤Ã¤Æ¡¢DOPath ¥á¥½¥Ã¥É¤¬¤¹¤Ù¤Æ¼Â¹Ô¤Ç¤¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¤è¤¦¤Ê¥±¡¼¥¹¤Ç¤¹¡£
¡¡ÊÑ¿ô¤ËDOTween¤Î½èÍý¤òÂåÆþ¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢Æ°¤¤¤Æ¤¤¤ë DOTween ¤Î½èÍý¤ò°ì»þÄä»ß¤·¤¿¤ê¡¢ºÆ³«¤·¤¿¤ê¡¢¶¯À©Åª¤Ë½ªÎ»¤µ¤»¤ë½èÍý¤¬¼Â¹Ô¤Ç¤¤Þ¤»¤ó¡£
¡¡DOTween¤Î½èÍý¤òÃæÃǤ¹¤ë¤Ë¤Ï¡¢Kill¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£¤³¤Î½èÍý¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢º£²ó¤Ç¤¢¤ì¤Ð DOPath ¥á¥½¥Ã¥É¤Ë¤è¤ë·ÐÏ©°ÜÆ°½èÍý¤ò½ªÎ»¤µ¤»¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡private Tween tween; // Tween ·¿¤ÎÊÑ¿ô // Tween ·¿¤ÎÊÑ¿ô¤Ë¤Ï DOTween ¤Î½èÍý¤òÂåÆþ¤Ç¤¤ë ¡¡¡¡¡¡¡¡¡¡¢ // ³ÆÃÏÅÀ¤Ë¸þ¤±¤Æ°ÜÆ°¡£º£¸å¤³¤Î½èÍý¤òÀ©¸æ¤¹¤ë¤¿¤á¡¢Tween ·¿¤ÎÊÑ¿ô¤Ë DOPath ¥á¥½¥Ã¥É¤Î½èÍý¤òÂåÆþ¤·¤Æ¤ª¤¯ tween = transform.DOPath(paths, 1000 / moveSpeed).SetEase(Ease.Linear).OnWaypointChange(ChangeAnimeDirection); ¡¡// DOTween ¤Î½èÍý¤òÇË´þ(½ªÎ»)¤¹¤ë tween.Kill();
¡¡EnemyController ¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤ò¹Ô¤¤¤Þ¤·¤¿¤Î¤Ç¡¢Enemy ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤ÆÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡maxHp ÊÑ¿ô¤ËºÇÂçHP ¤ÎÃͤòÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¥Ç¥Ð¥Ã¥°ÍѤ˿ôÃͤòÂ礤¯¤·¤¿¤ê¡¢¾®¤µ¤¯¤·¤¿¤ê¤·¤Æ³Îǧ¤·¤Þ¤¹¤Î¤Ç¡¢
¤Þ¤º¤ÏºÇ½é¤Ï 1 ¤Ë¤·¤Æ¤ª¤¤¤Æ¡¢¹¶·â½èÍý¢ª¥À¥á¡¼¥¸·×»»½èÍý¢ªÇ˲õ½èÍý¤¬¼Â¹Ô¤µ¤ì¤ë¤«¤ò³Îǧ¤·¤Þ¤·¤ç¤¦¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü
![](https://image01.seesaawiki.jp/i/o/i-school-memo/vpQvrjqF4G.png)
¡¡
¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
¡¡EnemyController ¥¹¥¯¥ê¥×¥È¦¤Ë¥À¥á¡¼¥¸·×»»ÍѤΥ᥽¥Ã¥É¤ÈÇ˲õ½èÍý¤Î¥á¥½¥Ã¥É¤¬¼ÂÁõ¤Ç¤¤Þ¤·¤¿¤Î¤Ç¡¢
ºÇ¸å¤Ë¡¢¤³¤Î¤¦¤Á¤Î¥À¥á¡¼¥¸·×»»ÍѤΥ᥽¥Ã¥É¤Î¸Æ¤Ó½Ð¤·½èÍý¤ò¼ÂÁõ¤·¤Þ¤¹¡£Ç˲õ½èÍý¤Ï¥À¥á¡¼¥¸·×»»ÍѤΥ᥽¥Ã¥ÉÆâ¤Ç¸Æ¤Ó½Ð¤·¤¬¤¢¤ë¤Î¤Ç¡¢¤³¤Á¤é¤«¤é¤Î¸Æ¤Ó½Ð¤·¤ÏÉÔÍפǤ¹¡£
¡¡TODO ¤Çµ½Ò¤µ¤ì¤Æ¤¤¤ëÉôʬ¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤Ï¼«Ê¬¤Ç¼ÂÁõ¤ËÄ©À路¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
CharaController.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡½èÍý¤Îή¤ì¤òÇÄ°®¤·¤¿¾å¤Ç¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤·¤Æ¤¤¤¤Þ¤¹¡£
¡¡Å¨¤Î mapHp ¤ÎÃͤäËɱҥ¥ã¥é¤Î attackPower ¤ÎÃͤä intervalAttackTime ¤ÎÃͤòÄ´À°¤·¤Æ
¤É¤Î¤è¤¦¤Ë½èÍý¤¬ÊѤï¤ë¤Î¤«¡¢¤·¤Ã¤«¤ê¤ÈÆâÍƤòÍý²ò¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡ã¼ÂÁõÆ°²è¡¡¡¹¶·âÈÏ°ÏÆâ¤ËŨ¥¥ã¥é¤¬¿¯Æþ¤·¤¿¤é°ìÄê»þ´Ö¤´¤È¤Ë¹¶·â¤·¤Æ¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡ã¼ÂÁõÆ°²è¢¡¡Å¨¥¥ã¥é¤¬¹¶·âÈϰϳ°¤Ë¤Ê¤Ã¤¿¤é¹¶·â¤òÄä»ß¤¹¤ë¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡¥Ç¥Ð¥Ã¥°ÍѤÎÌò³ä¤¬½ªÎ»¤·¤Þ¤·¤¿¤Î¤Ç¡¢¤³¤ì¤é¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥Ò¥¨¥é¥ë¥¡¼¤è¤êºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£
¼¡¤Î¼ê½ç¤Ç¤Ï¡¢Enemy ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥×¥ì¥Õ¥¡¥Ö¤òÍøÍѤ·¤Æ¤¤¤¤Þ¤¹¡£
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¤¬¡¢Â³¤±¤Æ¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤È while ʸ¤ÎÁȤ߹礻¤¿½èÍý¤Ë¤Ä¤¤¤Æ²òÀ⤷¤Þ¤¹¡£
¡¡º£²óÍøÍѤ·¤Æ¤¤¤ë¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤È while ʸ¤òÁȤ߹ç¤ï¤»¤¿½èÍý¤Ë¤Ä¤¤¤Æ¾Ü¤·¤¯²òÀ⤷¤Þ¤¹¡£
while (isAttack) { timer++; if (timer > intervalAttackTime) { timer = 0; Attack(); } //1¥Õ¥ì¡¼¥à½èÍý¤òÃæÃǤ¹¤ë(¤³¤ì¤ò½ñ¤Ëº¤ì¤ë¤È̵¸Â¥ë¡¼¥×¤Ë¤Ê¤ê¡¢Unity¥¨¥Ç¥£¥¿¡¼¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤ÆºÆµ¯Æ°¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£Ãí°Õ¡ª) yield return null; }
¡¡ºÇ½é¤Ï¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Îµ¡Ç½¤«¤éºÆ³Îǧ¤ò¤·¤Æ¤¤¤¯¤ÈÎɤ¤¤Ç¤·¤ç¤¦¡£
¡¡¥³¥ë¡¼¥Á¥ó¤Ç¤¹¤¬¡¢¤³¤ì¤ÏÄ̾ï¤Î¥á¥½¥Ã¥É¤È¤Ï°Û¤Ê¤ê¡¢ÅÓÃæ¤Ç°ì»þÄä»ß¤·¡¢¸å¤ÇºÆ³«¤Ç¤¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
¤³¤Î°ì»þÄä»ß¤ÈºÆ³«¤Îµ¡Ç½¤ò³èÍѤ¹¤ë¤³¤È¤Ç¡¢»þ´Ö¤¬¤«¤«¤ë½èÍý¤òʬ³ä¤·¤Æ¼Â¹Ô¤·¤¿¤ê¡¢ÆÃÄê¤Î¥¿¥¤¥ß¥ó¥°¤òÁÀ¤Ã¤Æ½èÍý¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¡¡¤³¤ì¤ò¼Â¸½¤·¤Æ¤¤¤ë¤Î¤¬¡¢yield ¥¡¼¥ï¡¼¥É¤Ç¤¹¡£¤³¤ì¤Ï¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâÉô¤Ç¤Î¤ßÍøÍѤǤ¤ë¥¡¼¥ï¡¼¥É¤Ç¤¹¡£
¤³¤Î¥¡¼¥ï¡¼¥É¤ò½ñ¤¯¤³¤È¤Ç¡¢½èÍý¤¬°ì»þÃæÃǤ·¤Þ¤¹¡£µÕ¤Ë¤¤¤¦¤È¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É°Ê³°¤Ç¤Ï¤³¤Î¥¡¼¥ï¡¼¥É¤Ï½ñ¤¯¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£
¡¡yield return null; ¤ÎÉôʬ¤Ï¡¢¥³¥ë¡¼¥Á¥ó¤Î°ì»þÄä»ß¤ÈºÆ³«¤òÀ©¸æ¤¹¤ë¤¿¤á¤Î¥¡¼¥³¡¼¥É¤Ç¤¹¡£
¡¡yield ¤Î½ñ¤¤¤Æ¤¢¤ë¹Ô¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¢¥³¥ë¡¼¥Á¥ó¤Ï°ì»þÄä»ß¤µ¤ì¡¢»ØÄꤵ¤ì¤¿»þ´Ö¤ä»ØÄꤵ¤ì¤¿¾õÂ֤ˤʤë¤Þ¤ÇÂÔµ¡¤·¤Þ¤¹¡£
¡¡yield return null ¤Î¾ì¹ç¤ÎÂÔµ¡»þ´Ö¤Ï1¥Õ¥ì¡¼¥à¤Ç¤¹¡£¤³¤ì¤Ï¥ë¡¼¥ë¤È¤·¤Æ¡¢¤½¤Î¤è¤¦¤Ë·è¤Þ¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢¤³¤Î½èÍý¤ò½ñ¤¯¤È¡¢1¥Õ¥ì¡¼¥à¤Î´Ö¤À¤±½èÍý¤ò°ì»þÄä»ß¤·¡¢¼¡¤Î¥Õ¥ì¡¼¥à¤¬»Ï¤Þ¤ë¤È¡¢°ì»þÄä»ß¤·¤¿²Õ½ê¤«¤é½èÍý¤¬ºÆ³«¤µ¤ì¤Þ¤¹¡£
¡¡¤Þ¤¿¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Ç¤Ï¡¢É¬¤º1²ó¤Ï yield ¤òÍøÍѤ·¤¿½èÍý¤ò½ñ¤«¤Ê¤¯¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó¡£¤³¤ì¤Ï¶¯À©¤Ç¤¹¡£
¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Ë1²ó¤â yield ¤Ç»Ï¤Þ¤ë½èÍý¤¬¤Ê¤¤¤È¡¢¡Öyield »È¤ï¤Ê¤¤¤Ê¤é¡¢¤½¤â¤½¤â¥³¥ë¡¼¥Á¥ó¤¸¤ã¤Ê¤¯¤Æ¤è¤¯¤Ê¤¤¡©¡×¤È¤¤¤¦¤³¤È¤Ç¡¢¥¨¥é¡¼¤¬½Ð¤Þ¤¹¡£
¡¡¤³¤Î¤è¤¦¤Êµ¡Ç½¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤¬¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Ç¤¹¡£
¤½¤·¤Æ yield return null ¤È¤¤¤¦½èÍý¼«ÂΤϡ¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤ÇÉáÃʤ«¤é¤è¤¯ÍøÍѤµ¤ì¤ë½èÍý¤Î£±¤Ä¤Ç¤¹¡£
¡¡while ʸ¤Ï while ʸ¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Ï¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¡¢¤½¤ì¤¾¤ì¤Îµ¡Ç½¼«ÂΤò¤·¤Ã¤«¤ê¤ÈÍý²ò¤·¤Æ¤ª¤¯¤³¤È¤¬ÂçÀڤǤ¹¡£
¡¡¼¡¤Ë¡¢while ʸ¤Î½èÍý¤ò¸«Ä¾¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¡¡while ʸ¤Ï¡¢¾ò·ï¤¬À®Î©¤·¤Æ¤¤¤ë´Ö¤º¤Ã¤È¥ë¡¼¥×¤ò·«¤êÊÖ¤¹½èÍý¤Ç¤¹¡£
¡¡¡¡while (¾ò·ï) { // ²¿¤é¤«¤Î½èÍý¤ò¹Ô¤¦ }
¡¡¾åµ¤Î¤è¤¦¤Ê while ¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¾ò·ï¤òËþ¤¿¤¹¸Â¤ê¡¢½èÍý¤ò·«¤êÊÖ¤·¤Þ¤¹¡£
·«¤êÊÖ¤¹¡¢¤È¤¤¤¦¤Î¤Ï¡¢{ } ¥Ö¥í¥Ã¥¯Æâ¤ÎÉôʬ¤òºÇ½é¤«¤éºÇ¸å¤Þ¤Ç1²ó¤º¤Ä¹Ô¤¦¡¢¤È¤¤¤¦°ÕÌ£¤Ç¤¹¡£
¡¡
¡¡while ʸ¤ÎµóÆ°¤â¡¢for ʸ¤ÈƱ¤¸¤è¤¦¤Ë¡¢Æ°¤¤ËÈÖ¹æ¤ò¿¶¤ë¤³¤È¤Ç¡¢²Ä»ë²½¤·¤ä¤¹¤¯¤Ê¤ê¤Þ¤¹¡£
while (¡¡¡¡¡¾ò·ï)¡¡//¡¡¢«¡¡Ëþ¤¿¤·¤Æ¤¤¤ë¤«³Îǧ { ¡¡¡¡¡¡¢¡¡¡Ú¡¤Î¾ò·ï¤òËþ¤¿¤·¤Æ¤¤¤¿¤é¡Û¤³¤³¤ËÍè¤ë ¡¡ // ²¿¤é¤«¤Î½èÍý¤ò¹Ô¤¦ ¡¡¡¡¡¡£¡¡{¡¡¥Ö¥í¥Ã¥¯¤ÎÃæ¤Î½èÍý¤¬½ªÎ»¤·¤¿¤é¡¢} ¥Ö¥í¥Ã¥¯¤Î³°¤Ë¤Ï½Ð¤º¤Ë¡¢¡¤Î³Îǧ¤ËÌá¤ë } ¡¡¤¡¡¡Ú¡¤Î¾ò·ï¤òËþ¤¿¤µ¤Ê¤¯¤Ê¤Ã¤Æ¤«¤é¡Û¤³¤³¤ËÍè¤ë
¡¡¤³¤Î¤è¤¦¤Ê»ÅÁȤߤÇÆ°¤¤¤Æ¤¤¤Þ¤¹¡££¤¬½ÅÍפǡ¢¤³¤ì¤Ë¤è¤ê¡¢while ʸ¤Ï¡¤ÎÉôʬ¤Ë¼«Æ°Åª¤ËÌá¤ê¤Þ¤¹¡£
¡¡¤Þ¤¿ while ʸ¤Ï¾ò·ï¤òËþ¤¿¤¹¸Â¤ê¤Ï¡¢while {¡¡} ¥Ö¥í¥Ã¥¯¤è¤ê¡¢²¼¤Î¹Ô¤Ë¼¡¤Ë½ñ¤¤¤Æ¤¢¤ë½èÍý¤ÏÆ°¤¤Þ¤»¤ó¡£
¡¡¡¡while (¾ò·ï) { // ²¿¤é¤«¤Î½èÍý¤ò¹Ô¤¦ } ¡¡ ¡¡¡¡Debug.Log("while ½ªÎ»")¡¡¡¡(¾åµ¤¤Ë¤¢¤¿¤ëÉôʬ)
¡¡¤³¤Î¤è¤¦¤Ë while ʸ¤Î²¼¤Ë Debug.Log ¥á¥½¥Ã¥É¤ò½ñ¤¤¤Æ¤ª¤¯¤È¡¢¤É¤Î¥¿¥¤¥ß¥ó¥°¤Ç while ʸ¤¬½ªÎ»¤·¤¿¤Î¤«³Îǧ¤Ç¤¤Þ¤¹¡£
¤Ê¤¼¤Ê¤é¡¢Debug.Log("while ½ªÎ»") ¤Î½èÍý¤Ï¡¢while ʸ¤¬½ªÎ»¤¹¤ë¤Þ¤ÇÆ°¤¯¤³¤È¤¬¤Ê¤¤¤¿¤á¡¢¤³¤Î¥í¥°¤¬½Ð¤ë = while ʸ¤¬½ª¤ï¤Ã¤¿¤ÈȽÃǤǤ¤ë¤¿¤á¤Ç¤¹¡£
¡¡¤³¤Î¤è¤¦¤Ë¡¢¾ðÊó¤òÀ°Íý¤·¡¢Å¬ÀÚ¤ÊÁ°Äó¤È²¾Àâ¤òΩ¤Æ¡¢ÏÀÍýŪ¤Ê¿äÏÀ¤ò¹Ô¤¤¡¢·ëÏÀ¤òƳ¤¯¥×¥í¥»¥¹¤ò
ÏÀÍýŪ»×¹Í¡¢¥í¥¸¥«¥ë¤Ê¹Í¤¨Êý(¥í¥¸¥«¥ë¥·¥ó¥¥ó¥°)¤È¤¤¤¤¤Þ¤¹¡£
¡¡¥×¥í¥°¥é¥à¤Ï¤³¤Î¹Í¤¨Êý¤¬¤È¤Æ¤âÂçÀڤǤ¹¡£
¡¡¤Á¤ç¤Ã¤ÈÆñ¤·¤¤¤Î¤Ç¡¢¤³¤ì¤òÍ×Ìó¤·¤ÆÃÖ¤´¹¤¨¤ë¤È¡¢¡Ö¡Á¤À¤«¤é¡¢¡Á¤Ë¤Ê¤ë¡×¤È¤¤¤¦¤³¤È¤Ï¡¢¡Ö¤³¤¦¤Ê¤ë¤Ê¤é¡¢¤³¤Ã¤Á¤Ï¤³¤¦¤À¤Ê¡×¤È¤¤¤¦É÷¤Ë¤â¹Í¤¨¤é¤ì¤ë¤Ê¡¢
¤È¤¤¤¦´¶¤¸¤Ç¡¢£±¤Ä¤º¤ÄÌäÂê¤òʬÀÏ¡¦¿äÏÀ¤·¡¢¤½¤³¤«¤é·ëÏÀ¤ò¹Í¤¨¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡¤³¤Î¤è¤¦¤Ê¹Í¤¨¤ò»ý¤Á¤Ê¤¬¤é¡¢½èÍý¤ò¹Í¤¨¤Æ¤¤¤¯¤è¤¦¤Ë¤¹¤ë¤È¡¢·ëÏÀ(½èÍý¤Î·ë²Ì¡¦Î®¤ì)¤Þ¤Ç¤¬¤ß¤¨¤ä¤¹¤¯¤Ê¤ê¡¢Íý²ò¤â¿¼¤Þ¤ê¤Þ¤¹¡£
¡¡Î㤨¤Ð¡¢¤³¤Î while ʸ¤È Debug ¤Ç¤¢¤ì¤Ð
¡Ö while ʸ¤Î²¼¤Ë Debug ¤ò½ñ¤¤¤Æ¤ª¤±¤Ð¤¤¤¤¤Ê¡£
¡¡²¿¸Î¤Ê¤é¡¢¤³¤³¤Î Debug ¤Ï while ʸ¤Î {¡¡} ¤Î³°Â¦¤Ë¤¢¤ë¤Î¤Ç¡¢¤³¤Î Debug ¤¬¼Â¹Ô¤µ¤ì¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢
¡¡ÀäÂÐ¤Ë while ʸ¤¬½ªÎ»¤·¤¿¤È¤¤Ë¤·¤«¼Â¹Ô¤µ¤ì¤Ê¤¤¡£
¡¡¤Ä¤Þ¤ê¡¢Debug ¤Î¥í¥°¤¬½Ð¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢while ʸ¤¬Àµ¾ï¤Ë½ªÎ»¤·¤¿¤³¤È¤Î¾ÚÌÀ¤Ë¤Ê¤ë¤·¡¢½ª¤ï¤Ã¤¿¥¿¥¤¥ß¥ó¥°¤â¤ï¤«¤ë¤³¤È¤Ë¤â¤Ê¤ë¡£¡×
¡¡ÏÀÍýŪ¤Ë½ç½øΩ¤Æ¤Æ¤¤¤¯¤È¡¢¤³¤Î¤è¤¦¤Ë¤·¤Æ¹Í¤¨¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Ç¤Î while ʸ¤ÎµóÆ°¤Ç¤¹¤¬¡¢while ʸ¤Ï¾ò·ï¤¬À®Î©¤·¤Æ¤¤¤ë´Ö¡¢¤º¤Ã¤È¥ë¡¼¥×¤ò³¤±¤Þ¤¹¡£
¤¿¤À¤· while ʸ¤ò¥³¥ë¡¼¥Á¥óÆâ¤Ç¼Â¹Ô¤¹¤ë¤È¡¢¥³¥ë¡¼¥Á¥ó¤¬°ì»þÄä»ß¤¹¤ë¤³¤È¤¬¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
¤³¤Î¤¿¤á¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Î½èÍý¤¬Àµ¾ï¤Ë½èÍý¤µ¤ì¤Ê¤¯¤Ê¤ê¡¢while ʸ¤Î¥ë¡¼¥×¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¥²¡¼¥à¤Î½èÍý¤¬»ß¤Þ¤Ã¤Æ¤·¤Þ¤¤¡¢while ʸ¤Î¥ë¡¼¥×½èÍý¤Ï̵¸Â¥ë¡¼¥×¾õÂ֤ˤʤë¤È¤¤¤¦»ÅÁȤߤǤ¹¡£
¡¡½èÍý¤ÎÆ°¤¤Ï¤³¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡£±¡¥while ʸ¤Î¾ò·ï¤¬À®Î©¤·¤Æ¤¤¤ë´Ö¡¢¥ë¡¼¥×¤ò³¤±¤Þ¤¹¡£(isAttack == true) ¡¡£²¡¥¥ë¡¼¥×Æâ¤Ç²¿¤é¤«¤Î½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£ ¡¡£³¡¥yield return null; ¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¢¥³¥ë¡¼¥Á¥ó¤¬°ì»þÄä»ß¤·¤Þ¤¹¡£ ¡¡£´¡¥¼¡¤Î¥Õ¥ì¡¼¥à¤¬»Ï¤Þ¤ë¤È¡¢°ì»þÄä»ß¤·¤¿²Õ½ê¡Êyield return null;¡Ë¤«¤é½èÍý¤¬ºÆ³«¤µ¤ì¤Þ¤¹¡£ ¡¡£µ¡¥while ʸ¤ÎºÇ¸å¤Þ¤ÇÍ褿¤Î¤Ç¡¢1 ¤ËÌá¤ê¡¢ºÆ¤Ó while ʸ¤Î¾ò·ï¤ò¥Á¥§¥Ã¥¯¤·¡¢À®Î©¤·¤Æ¤¤¤ì¤Ð³¤±¤Þ¤¹¡£
¡¡£³¤ÎÉôʬ¤¬¤Ê¤¤¤È¡¢£´¤È£µ¤Î½èÍý¤¬Æ°¤¤Þ¤»¤ó¡£
¡¡¼Â¤Ï¥ë¡¼¥×¤Î½èÍý¤È¤¤¤¦¤Î¤Ï¡¢¥Õ¥ì¡¼¥à¤ò¤Þ¤¿¤®¤Þ¤»¤ó¡£1¥Õ¥ì¡¼¥àÆâ¤Ç¡¢¤¹¤Ù¤Æ¤Î·«¤êÊÖ¤·¤Î½èÍý¤ò¹Ô¤ª¤¦¤È¤·¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢while ʸ¤â¥Õ¥ì¡¼¥à¤ò¤Þ¤¿¤°¤¿¤á¤Î½èÍý(yield return null;)¤¬¤Ê¤¤¤È¡¢£±¥Õ¥ì¡¼¥àÆâ¤Ë¤º¤Ã¤ÈƱ¤¸½èÍý¤ò·«¤êÊÖ¤½¤¦¤È¤·¤Þ¤¹¡£
¤½¤ì¤³¤½¡¢²¿Àé¡¢²¿Ëü²ó¤È¡¢¤Ç¤¹¡£¤½¤·¤Æ½èÍýÉé²Ù¤¬¹â¤¯¤Ê¤ê¡¢¥×¥í¥°¥é¥à¤¬ÂѤ¨ÀÚ¤ì¤Ê¤¯¤Ê¤Ã¤Æ»ß¤Þ¤ê¤Þ¤¹¡£
¤³¤ì¤¬Ìµ¸Â¥ë¡¼¥×¤ÎÍýͳ¤Ç¤¹¡£
¡¡¤¿¤À¤·¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Ç¤Ï yield return null ¤Î¤è¤¦¤Ë¡¢½èÍý¤ò»ß¤á¤Æ¤«¤éºÆÅÙÆ°¤«¤¹µ¡Ç½¤¬¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢while ʸ¤Î¥ë¡¼¥×½èÍý¼«ÂΤ⡢ʣ¿ô¤Î¥Õ¥ì¡¼¥à¤Ë¤Þ¤¿¤¬¤Ã¤Æ½èÍý¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç
1¥Õ¥ì¡¼¥àÆâ¤Ç̵Íý¤Ê¥ë¡¼¥×½èÍý¤ò·«¤êÊÖ¤¹¤³¤È¤¬¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡°Ê¾å¤Î¤³¤È¤«¤é¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Ç while ʸ¤ò»È¤¦¾ì¹ç¤Ë¤Ï¡¢É¬¤º while { } Æâ¤Ë¡¢yield return null; ¤Ê¤É¤Î¡¢yiled ¤Î½èÍý¤ò´Þ¤á¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤³¤Î yield return null ¤Ë¤è¤ê¡¢¥ë¡¼¥×Æâ¤Î½èÍý¤¬¥Õ¥ì¡¼¥à¤´¤È¤Ë¼Â¹Ô¤µ¤ì¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥É¤Ç¤ÎÀµ¾ï¤Ê¥ë¡¼¥×½èÍý¤¬Æ°¤¯¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¤¥á¡¼¥¸¤È¤·¤Æ¤Ï¡¢¥³¥ë¡¼¥Á¥óÆâ¤Ç¤Ï¡¢while ʸ¤Î¾ò·ï¥Á¥§¥Ã¥¯¤Î¤¿¤á¤Ë yield return null ¤ò¶´¤Þ¤Ê¤¤¤È¥ë¡¼¥×¤«¤éÌá¤Ã¤Æ¤³¤ì¤Ê¤¯¤Ê¤ë´¶¤¸¤Ç¤¹¡£
¡¡ºÇ½é¤Ë¤ªÅú¤¨¤·¤¿¤è¤¦¤Ë¡¢¡Ö̵¸Â¥ë¡¼¥×¤Ë¤Ê¤é¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤À¤±¤Ëµ½Ò¤·¤Æ¤¤¤ë¡×¤È¤¤¤¦¼ÁÌä¤ÏÀµ¤·¤¤¡¢¤È¤¤¤¦¤Î¤Ï¡¢¤³¤Î¤¿¤á¤Ç¤¹¡£
º£²ó¤Î¾ì¹ç¤â¡¢¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Ç while ʸ¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ç while { } Æâ¤Ë¡¢yield return null; ¤È½ñ¤¤¤Æ¤¤¤Þ¤¹¡£
¡¡¥³¥ë¡¼¥Á¥ó¥á¥½¥Ã¥ÉÆâ¤Î while ʸ¤Ï̵¸Â¥ë¡¼¥×¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢¤³¤Î¥ë¡¼¥ë¤ò¼é¤é¤Ê¤¤¤ÈÀµ¾ï¤ËÆ°¤«¤Ê¤¤¤è¡¢¤È¤¤¤¦¤³¤È¤Ç¤¹¤Í¡£
¡¡¤Ê¤ª¡¢yield ¥¡¼¥ï¡¼¥É¤òÍøÍѤ·¡¢ÃæÃǤǤ¤ë½èÍý¤Ç¤¢¤ì¤Ð yield return null; °Ê³°¤Ç¤âÀµ¾ï¤ËÆ°ºî¤·¤Þ¤¹¡£
Î㤨¤Ð¡¢yield return new WaitForSecounds(1.0f); ¤Èµ½Ò¤¹¤ì¤Ð¡¢1ÉÃÂÔµ¡¸å¤Ë while ʸ¤Î½èÍý¤¬ºÆ³«¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢Àµ¾ï¤ËÆ°ºî¤·¤Þ¤¹¡£
¡¡while ʸ¤Î¥ë¡¼¥×½èÍý¤òÆɤ߲ò¤¯¤³¤È¤ÇÍý²ò¤Ç¤¤Æ¤¤Þ¤¹¡£
yield return null ¤Î½èÍý¤Ë¸Â¤é¤º¡¢while ʸ¤Ï¡¢{¡¡}¡¡¥Ö¥í¥Ã¥¯¤ÎºÇ¸å¤Î¹Ô¤Þ¤Ç¤¤¤Ã¤¿¤é¡¢ºÇ½é¤Î¾ò·ï¤Î³Îǧ¤ËÌá¤ê¤Þ¤¹¡£
¡¡
¡¡º£²ó¤Î¾ì¹ç¤Ï¤¿¤Þ¤¿¤Þ yield return null;¤¬ºÇ¸å¤Ë¤Ê¤ë¤Î¤Ç¡¢¤½¤Î¥¿¥¤¥ß¥ó¥°¤Ç¾ò·ï¤Î³Îǧ¤ËÌá¤ê¤Þ¤·¤¿¤¬¡¢
¤³¤ì¤Ï yield return null; ¤¬¤¢¤ë¤«¤é¤Ç¤Ï¤Ê¤¯¤Æ¡¢while ʸ¤Î¥ë¡¼¥×½èÍý¼«ÂΤ¬¤½¤Î¤è¤¦¤Êµ¡Ç½¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á¤Ç¤¹¡£
¡¡²¾¤Ë
while (isAttack) { ¡¡¡¡// TODO ¥²¡¼¥à¥×¥ì¥¤Ãæ¤Î¤ß¹¶·â¤¹¤ë timer++; if (timer > intervalAttackTime) { timer = 0; Attack(); // TODO ¹¶·â²ó¿ô´ØÏ¢¤Î½èÍý¤ò¤³¤³¤Ëµ½Ò¤¹¤ë } //1¥Õ¥ì¡¼¥à½èÍý¤òÃæÃǤ¹¤ë(¤³¤ì¤ò½ñ¤Ëº¤ì¤ë¤È̵¸Â¥ë¡¼¥×¤Ë¤Ê¤ê¡¢Unity¥¨¥Ç¥£¥¿¡¼¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤ÆºÆµ¯Æ°¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£Ãí°Õ¡ª) yield return null; Debug.Log("while ºÇ¸å"); }¡¡
¡¡¤³¤Î¤è¤¦¤Ê½èÍý¤À¤È¤·¤¿¤é¡¢Debug.Log("while ºÇ¸å"); ¼Â¹Ô¸å¡¢while ¤ÎºÇ½é¤ËÌá¤ê¡¢¾ò·ï¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡Êä¤Ȥ·¤Æ¡¢while ʸÆâ¤Ç yield return null ¤ò½ñ¤¯°ÌÃ֤ϡ¢¾ï¤Ë while ʸ¤¬¼Â¹Ô¤¹¤ë°ÌÃ֤˽ñ¤¡¢
if ʸ¤Ê¤É¤Î¾ò·ïʬ´ôÆâ¤Ë¤Ï½ñ¤«¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¾ò·ïʬ´ô¤È¤¤¤¦¤³¤È¤Ï¡¢¤½¤Î {¡¡}¡¡¤Ë¤ÏÆþ¤ë¤«Æþ¤é¤Ê¤¤¤«¤¬È¯À¸¤·¤Þ¤¹¡£
¤è¤Ã¤Æ¡¢Ê¬´ôÆâ¤Ë yield ¥¡¼¥ï¡¼¥É¤Î½èÍý¤ò½ñ¤¤¤Æ¤·¤Þ¤¦¤È¡¢yield ¥¡¼¥ï¡¼¥É¤¬½èÍý¤µ¤ì¤Ê¤¤¾õ¶·¤¬È¯À¸¤·¤Æ¤·¤Þ¤¦¤³¤È¤Ë¤Ê¤ê¡¢¤½¤Î¾ì¹ç¤â̵¸Â¥ë¡¼¥×¤ËÆþ¤ê¤Þ¤¹¡£
¡¡¤³¤ì¤Ï¥À¥á¤ÊÎã¤Ç¤¹¡£
while (isAttack) { timer++; if (timer > intervalAttackTime) { timer = 0; Attack(); // TODO ¹¶·â²ó¿ô´ØÏ¢¤Î½èÍý¤ò¤³¤³¤Ëµ½Ò¤¹¤ë //1¥Õ¥ì¡¼¥à½èÍý¤òÃæÃǤ¹¤ë(¤³¤ì¤ò½ñ¤Ëº¤ì¤ë¤È̵¸Â¥ë¡¼¥×¤Ë¤Ê¤ê¡¢Unity¥¨¥Ç¥£¥¿¡¼¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤ÆºÆµ¯Æ°¤¹¤ë¤³¤È¤Ë¤Ê¤ë¡£Ãí°Õ¡ª) yield return null; } ¡¡¡¡// while ʸÆâ¤Çɬ¤º¼Â¹Ô¤µ¤ì¤ëÉôʬ¤Ë¡¢yield return null; ¤¬¤Ê¤¤ }
¡¡¤³¤Î¤è¤¦¤Ë if ʸ¤Ç¤·¤« yield return null; ¤¬¼Â¹Ô¤µ¤ì¤Ê¤¤¾õÂ֤ˤ·¤Æ¤·¤Þ¤¦¤È¡¢
while ʸÁ´ÂΤǸ«¤¿»þ¡¢while ʸ¤Î¾ï¤ËÆ°¤¯(ʬ´ô¤Ë¸Â¤é¤ºÉ¬¤º¼Â¹Ô¤µ¤ì¤ë)Éôʬ¤Ë yield return null; ¤¬¤Ê¤¤¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£
¤³¤ì¤À¤È̵¸Â¥ë¡¼¥×¤·¤Þ¤¹¡£
¡¡¤³¤ì¤«¤é¤ÏÊ£¿ô¤Î½èÍý¤¬¹ç¤ï¤µ¤Ã¤Æ½èÍý¤¬Æ°¤¤¤Æ¤¤¤ë¤³¤È¤¬Â¿¤¯¤Ê¤ê¤Þ¤¹¡£
¤¤¤º¤ì¤â³Ø½¬¤µ¤ì¤Æ¤¤Æ¤¤¤ë´ðÁÃŪ¤Ê½èÍý¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢¤½¤ì¤¾¤ì¤Î½èÍý¤ÎÆâÍƤò¤·¤Ã¤«¤ê¤ÈÍý²ò¤·¤Æ¤ª¤¯¤³¤È¤Ç
¤³¤¦¤¤¤Ã¤¿Ê£¿ô¤Î½èÍý¤¬¹ç¤ï¤µ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¢Æ±¤¸¤è¤¦¤ËÆɤ߲ò¤¤¤Æ¤¤¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡
¡¡¥×¥í¥°¥é¥à¤Ï´ðÁÃŪ¤Ê½èÍý¤ÎÁȤ߹ç¤ï¤»¤Ç½ÐÍè¤Æ¤¤¤ë¤Î¤Ç¡¢´ðÁäò¤·¤Ã¤«¤ê¤È¿È¤Ë¤Ä¤±¤Æ¤¤¤¯¤³¤È¤Ç
°ì¸«¤¹¤ë¤ÈÊ£»¨¤Ë¸«¤¨¤ë½èÍý¤âÆɤ߲ò¤±¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤¢¤»¤é¤º¤Ë¤¤¤¤Þ¤·¤ç¤¦¡£
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡¼¡¤Ï¡¡¼ê½ç£±£³¡¡¡ÝŨ¥¥ã¥é¤Î¼«Æ°À¸À®½èÍý¤Î¼ÂÁõ¡Ý¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯