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

¡¡Á°²ó¤Ë³¤­¡¢¥×¥ì¥¤¥ä¡¼¤Î¸þ¤­¤Ë±þ¤¸¤Æ·¹¤¯Ä¾Àþ¾å¤ËÃƤòÇÛÃÖ¤·¤Æȯ¼Í¤¹¤ëµ¡Ç½¤Î³Ø½¬¤ò¹Ô¤¤¤Þ¤¹¡£


¡ã³Îǧư²è¡¡¡¼¤è¤¤¥Ñ¥¿¡¼¥ó(ÃƤòÇÛÃÖ¤·¤Æ¤¤¤ë°ÌÃ֤˷¹¤­¤¬È¿±Ç¤µ¤ì¤Æ¤¤¤ë)¡¼¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡¾å¤Î·¹¤­¤¬¤Ê¤¤¥Ñ¥¿¡¼¥ó¤Î¾ì¹ç¡¢ÃƤÎÇÛÃÖ¤µ¤ì¤ë°ÌÃÖ¤¬¸ÇÄê²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢²£Êý¸þ¤ËÃƤòȯ¼Í¤·¤¿¾ì¹ç¡¢Æ±¤¸°ÌÃ֤˽ŤʤäÆȯ¼Í¤µ¤ì¤ë·Á¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡ÃƤοô¤¬Áý¤¨¤¿¾ì¹ç¡¢ÇÛÃÖ¤¹¤ë°ÌÃÖ¤ò±äŤ¹¤ëµ¡Ç½¤â¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£


Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯



¡¡»öÁ°¤ËÁ°²ó¤Î¼ê½ç¤Î¼ÂÁõ¤¬É¬Íפˤʤê¤Þ¤¹¡£

¡¡¡¡=>¡¡¡Ú£²£Ä¡Û¥×¥ì¥¤¥ä¡¼¤Î¸þ¤­¤Ë±þ¤¸¤Æ·¹¤¯Ä¾Àþ¾å¤ËÃƤòÇÛÃÖ¤·¤Æȯ¼Í¤¹¤ëµ¡Ç½



¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡Á°²ó¤Î¼ê½ç¤Ç³Ø½¬¤·¤¿½èÍý¤òÁȤ߹ç¤ï¤»¤Æ¡¢£±¤Ä¤Î¥í¥¸¥Ã¥¯¤òÁȤßΩ¤Æ¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¥×¥ì¥¤¥ä¡¼¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤«¤é·¹¤­¤òµá¤á¤Æ¿åÊ¿¤Ë¤·¡¢¤½¤³¤Ë¿·¤·¤¯¡¢·¹¤­¤ò²óž³ÑÅ٤Ȥ·¤ÆºîÀ®¤¹¤ë½èÍý¤ò²Ã¤¨¤Þ¤¹¡£

¡¡¤½¤Î¸å¡¢ÃƤòÀ¸À®¤¹¤ë°ÌÃÖ¤ò·¹¤«¤»¤¿Ä¾Àþ¾å¤ËÂФ·¤ÆÅù´Ö³Ö¤Ë¤Ê¤ë¤è¤¦¤ËÃƤΰÌÃÖ¤ò·×»»¤·¡¢²óž³ÑÅÙ¤ò²Ã¤¨¤ë¤³¤È¤Ç½èÍý¤ò´°À®¤µ¤»¤Þ¤¹¡£
³Æ½èÍý¤Î¾å¤Ë¤â¾ÜºÙ¤ËÆâÍƤòµ­½Ò¤·¤Æ¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢£±¤Ä¤º¤Ä¡¢½èÍý¤ÎÆâÍƤò¥¤¥á¡¼¥¸¤·¤Ê¤¬¤éÍý²ò¤ò¿¼¤á¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£



BulletGenerator3.cs

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


¡¡Èó¾ï¤Ë¿¤¯¤Î·×»»½èÍý¤¬¤¢¤ê¡¢¥í¥¸¥Ã¥¯¤òÁȤßΩ¤Æ¤Æ¤¤¤Þ¤¹¡£
¤Ê¤ë¤Ù¤¯¾ÜºÙ¤Ê¥³¥á¥ó¥È¤òÊäµ­¤·¤Æ¤¢¤ê¤Þ¤¹¤¬¡¢Æɤà¤À¤±¤Ç¤Ï¤ï¤«¤ê¤Ë¤¯¤¤¤È»×¤¤¤Þ¤¹¡£

¡¡³Æ¼ï¤Î·×»»·ë²Ì¤Ë¤Ä¤¤¤Æ¤Ï¡¢ºÙ¤«¤¯ Debug.Log ¥á¥½¥Ã¥É¤òÆþ¤ì¤Æ¥í¥°É½¼¨¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
ÊÑ¿ô¤Ë¤É¤Î¤è¤¦¤ÊÃͤ¬»È¤ï¤ì¤Æ¤¤¤ë¤«¤òÃΤ뤳¤È¤Ç¡¢½èÍý¤Î¥¤¥á¡¼¥¸¤¬ºî¤ì¤Þ¤¹¡£

¡¡¤à¤·¤íºÇ½é¤Î¤¦¤Á¤Ï¡¢£±¹Ô¤Î½èÍý¤Ë¤Ä¤­¡¢£±¤Ä¤Î Debug.Log ¤ò½ñ¤¤¤Æ¤â¤¤¤¤¤Ç¤¹¡£
¥í¥°¤ò»È¤Ã¤Æ½èÍý¤ò²Ä»ë²½¤·¡¢¥½¡¼¥¹¥³¡¼¥É¤È¸«Èæ¤Ù¤Ê¤¬¤é¡¢¾Ç¤é¤º¤Ë³Ø½¬¤·¤Þ¤·¤ç¤¦¡£



¡¡Debug.DrawRay ¥á¥½¥Ã¥É¤Ë¤è¤ëľÀþ¤Î²Ä»ë²½¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤³¤Îµ¡Ç½¤òÍøÍѤ¹¤ë¤«¤·¤Ê¤¤¤«¤òÀßÄꤹ¤ë¤¿¤á¤Î¥¹¥¤¥Ã¥ÁÌò¤ÎÊÑ¿ô¤òÀߤ±¤Æ¡¢½èÍý¤òʬ´ô¤·¤Æ¤¤¤Þ¤¹¡£
³Îǧ¤·¤¿¤¤¤È¤­¤À¤±¸«¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢½èÍý¤ÎÉé²Ù¤ò²¼¤²¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡¤³¤ì¤Ï bool ·¿¤ÎÊÑ¿ô¤ò³èÍѤ·¡¢¥Ç¥Ð¥Ã¥°ÍѤΥ¹¥¤¥Ã¥Á¤òÍÑ°Õ¤·¤Æ¤¤¤ëÎã¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤Î¤è¤¦¤Ê¥¹¥¤¥Ã¥ÁÍѤÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¥·¡¼¥ó¥Ó¥å¡¼¤Ç³Îǧ¤·¤¿¤¤¤È¤­¤À¤±¥¹¥¤¥Ã¥Á¤òÆþ¤ì¤ë¡¢¤È¤¤¤¦ÊýË¡¤¬¼ÂÁõ½ÐÍè¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ç¥¹¥¤¥Ã¥Á¤òÀÚ¤ì¤Ð(¥Á¥§¥Ã¥¯¤ò³°¤»¤Ð)¤¤¤Ä¤Ç¤â½èÍý¤òÄä»ß¤Ç¤­¤Þ¤¹¤Î¤Ç¡¢¤½¤ÎÅÔÅÙ¡¢¥½¡¼¥¹¥³¡¼¥É¤òÊÔ½¸¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£

¡¡¤³¤Î¤è¤¦¤Ê¥Ç¥Ð¥Ã¥°ÍѤνèÍý¤Ï¡¢¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤È¤â¸À¤¤¤Þ¤¹¡£

¡¡¤Á¤ç¤Ã¤È¤·¤¿µ¤¸¯¤¤¤ò¤¹¤ë¤³¤È¤Ç¡¢¸úΨŪ¤«¤Ä¡¢ÊØÍø¤Êµ¡Ç½¤¬ºî¤ì¤Þ¤¹¡£



»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
Mathf.Atan2
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
Mathf.Deg2Rad
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
Mathf.Lerp
Qiita @NNNiNiNNN(n n) ÍÍ
¡ÚUnity¡Û¥Ù¥¯¥È¥ë¤ò³ÑÅÙ¤ËÊÑ´¹¤¹¤ë¡ÚAtan2´Ø¿ô¡Û
¥¨¥¯¥¹¥×¥é¥Ü ÍÍ
¡ÚUnity¡ÛMathf¤ÎDeg2Rad¤ÈRad2Deg¤Î»È¤¤Êý¤Ã¤Æ¤Á¤ç¤Ã¤È̤¦¤è¤Í
PGÆü»ï ÍÍ
¡ÚUnity¡ÛMathf.Lerp¤ÈInverseLerp¤Î³Ð½ñ
ÌëÃæ¤Ë Unity ÍÍ
¡ÚUnity¡ÛÊØÍø¤Ê¿ô³Ø´Ø¿ô¤Î Mathf ¥¯¥é¥¹¤Þ¤È¤á¡ÚClamp, Abs ¤Ê¤É¡Û


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


¡¡¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤ËÆ°ºî¤·¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£





¡ã³Îǧư²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯

Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯

Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯

¸¡¾Ú­¡¡¡¡¼·×»»½èÍý¤Îή¤ì¡¼


¡¡³Æ½èÍý¤Ë¤Ä¤¤¤Æ¡¢Debug.Log ¥á¥½¥Ã¥É¤òÍøÍѤ·¡¢¼Â¿ôÃͤòÅö¤Æ¤Ï¤á¤Æ½èÍý¤Îή¤ì¤òÆɤ߲ò¤¤¤Æ¤¤¤­¤Þ¤·¤ç¤¦¡£



¡¡¤Þ¤º¤Ï bulletLevel ¤ò2¤È¤·¤Æ¡¢¶ñÂÎŪ¤Ê¿ôÃͤò»È¤Ã¤Æ·×»»¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
²¾¤Ë°Ê²¼¤ÎÃͤòÀßÄꤹ¤ë¤È¤·¤Þ¤¹¡£

bulletDistance = 10¡ÊľÀþ¤ÎŤµ¡Ë
bulletLevel = 2¡ÊÃƤοô¡Ë

¡¡¤Þ¤º¡¢currentBulletLine ¤ò·×»»¤·¤Þ¤¹¡£

currentBulletLine = bulletDistance / 2 * bulletLevel
                  = 10 / 2 * 2
                  = 10

¡¡¤³¤Î¤è¤¦¤Ë¤·¤Æ¡¢¥½¡¼¥¹¥³¡¼¥É¤Ë¼Â¿ôÃͤòÅö¤Æ¤Ï¤á¤Æ¡¢·×»»·ë²Ì¤ò»»½Ð¤·¤Æ¤¤¤¯¤³¤È¤Ç½èÍý¤¬²Ä»ë²½¤Ç¤­¤Þ¤¹¡£

¡¡¼¡¤Ë¡¢t ¤ÎÃͤò·×»»¤·¤Þ¤¹¡£
t ¤Ï 0 ¤«¤é 1 ¤Þ¤Ç¤ÎÈϰϤÇÊѲ½¤¹¤ëÃͤǡ¢ÃÆƱ»Î¤ÎÇÛÃÖ¤ÎÈæΨ¤òɽ¤·¤Þ¤¹¡£

¡ãi = 0 ¤Î¾ì¹ç¡ä

t = 0 / (2 - 1)
  = 0


¡ãi = 1 ¤Î¾ì¹ç¡ä

t = 1 / (2 - 1)
  = 1

¡¡i ¤ÎÃͤˤè¤ê¡¢t ¤ÎÃͤ¬ 0 ¤«¤é 1 ¤Þ¤ÇÊѲ½¤¹¤ë¤³¤È¤ËÃíÌܤ·¤Æ¤¯¤À¤µ¤¤¡£
¤Ä¤Þ¤ê¡¢·×»»¤Î·ë²Ì¤¬ÊѤï¤Ã¤Æ¤­¤Æ¤¤¤ë¡¢¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¼¡¤Ë¡¢angle ¤ÎÃͤò·×»»¤·¤Þ¤¹¡£
angle ¤Ï -currentBulletLine / 2 ¤«¤é currentBulletLine / 2 ¤ÎÈϰϤÇÊѲ½¤·¡¢¤³¤ì¤Ë¤è¤Ã¤ÆÃƤΰÌÃÖ¤¬·è¤Þ¤ê¤Þ¤¹¡£

¡ãi = 0 ¤Î¾ì¹ç¡ä

angle = Mathf.Lerp(-currentBulletLine / 2, currentBulletLine / 2, t)
      = Mathf.Lerp(-10 / 2, 10 / 2, 0)
      = Mathf.Lerp(-5, 5, 0)
      = -5


¡ãi = 1 ¤Î¾ì¹ç¡ä

angle = Mathf.Lerp(-currentBulletLine / 2, currentBulletLine / 2, t)
      = Mathf.Lerp(-10 / 2, 10 / 2, 1)
      = Mathf.Lerp(-5, 5, 1)
      = 5

¡¡¤³¤Î·×»»¤Ë¤è¤Ã¤Æ¡¢angle ¤ÎÃͤ¬ -5 ¤«¤é 5 ¤Þ¤ÇÊѲ½¤·¡¢¤½¤ì¤¾¤ì¤ÎÃƤΰÌÃÖ¤¬·èÄꤵ¤ì¤Þ¤¹¡£

¡¡ºÇ¸å¤Ë¡¢GenerateBullet ¥á¥½¥Ã¥É¤ËÅϤ¹ distance ¤ò·×»»¤·¤Þ¤¹¡£
¤³¤ì¤Ï angle ¤È lineDirection ¤ÎÀѤǤ¹¡£


¡ãi = 0 ¤Î¾ì¹ç¡ä

distance = angle * lineDirection
         = -5 * (lineDirection¤ÎÃÍ)

¡ãi = 1 ¤Î¾ì¹ç¡ä

distance = angle * lineDirection
         = 5 * (lineDirection¤ÎÃÍ)

¡¡¤³¤Î¤è¤¦¤Ë¡¢angle ¤ÎÃͤˤè¤Ã¤ÆÃƤΰÌÃÖ¤¬ÊѲ½¤·¡¢¥×¥ì¥¤¥ä¡¼¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤«¤éÅù´Ö³Ö¤ÇÇÛÃÖ¤µ¤ì¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£



¡¡¤Ç¤ÏƱ¤¸¤è¤¦¤Ë¤·¤Æ¡¢bulletLevel ¤ò 3 ¤È¤·¤Æ¡¢¶ñÂÎŪ¤Ê¿ôÃͤò»È¤Ã¤Æ·×»»¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£

¡¡°Ê²¼¤ÎÃͤòÀßÄꤹ¤ë¤È¤·¤Þ¤¹¡£

bulletDistance = 15¡ÊľÀþ¤ÎŤµ¡Ë
bulletLevel = 3¡ÊÃƤοô¡Ë

¡¡¤Þ¤º¡¢currentBulletLine ¤ò·×»»¤·¤Þ¤¹¡§

currentBulletLine = bulletDistance / 2 * bulletLevel
                  = 15 / 2 * 3
                  = 7.5

¡¡¼¡¤Ë¡¢t ¤ÎÃͤò·×»»¤·¤Þ¤¹¡£
t ¤Ï 0 ¤«¤é 1 ¤Þ¤Ç¤ÎÈϰϤÇÊѲ½¤¹¤ëÃͤǡ¢ÃÆƱ»Î¤ÎÇÛÃÖ¤ÎÈæΨ¤òɽ¤·¤Þ¤¹¡£


¡ãi = 0 ¤Î¾ì¹ç¡ä

t = 0 / (3 - 1)
  = 0


¡ãi = 1 ¤Î¾ì¹ç¡ä


t = 1 / (3 - 1)
  = 0.5


¡ãi = 2 ¤Î¾ì¹ç¡ä


t = 2 / (3 - 1)
  = 1

¡¡t ¤ÎÃͤ¬ 0 ¤«¤é 1 ¤Þ¤ÇÊѲ½¤¹¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¼¡¤Ë¡¢angle ¤ÎÃͤò·×»»¤·¤Þ¤¹¡£
angle ¤Ï -currentBulletLine / 2 ¤«¤é currentBulletLine / 2 ¤ÎÈϰϤÇÊѲ½¤·¡¢¤³¤ì¤Ë¤è¤Ã¤ÆÃƤΰÌÃÖ¤¬·è¤Þ¤ê¤Þ¤¹¡£

¡ãi = 0 ¤Î¾ì¹ç¡ä

angle = Mathf.Lerp(-currentBulletLine / 2, currentBulletLine / 2, t)
      = Mathf.Lerp(-7.5 / 2, 7.5 / 2, 0)
      = Mathf.Lerp(-3.75, 3.75, 0)
      = -3.75


¡ãi = 1 ¤Î¾ì¹ç¡ä

angle = Mathf.Lerp(-currentBulletLine / 2, currentBulletLine / 2, t)
      = Mathf.Lerp(-7.5 / 2, 7.5 / 2, 0.5)
      = Mathf.Lerp(-3.75, 3.75, 0.5)
      = 0


¡ãi = 2 ¤Î¾ì¹ç¡ä


angle = Mathf.Lerp(-currentBulletLine / 2, currentBulletLine / 2, t)
      = Mathf.Lerp(-7.5 / 2, 7.5 / 2, 1)
      = Mathf.Lerp(-3.75, 3.75, 1)
      = 3.75

¡¡¤³¤Î·×»»¤Ë¤è¤Ã¤Æ¡¢angle ¤ÎÃͤ¬ -3.75 ¤«¤é 3.75 ¤Þ¤ÇÊѲ½¤·¡¢¤½¤ì¤¾¤ì¤ÎÃƤΰÌÃÖ¤¬·èÄꤵ¤ì¤Þ¤¹¡£
Àè¤Û¤É¤Î½èÍý¤È¤ÏÊѲ½¤ÎÈϰϤ¬ÊѤï¤ê¤Þ¤·¤¿¤Í¡£

¡¡ºÇ¸å¤Ë¡¢GenerateBullet ¥á¥½¥Ã¥É¤ËÅϤ¹ distance ¤ò·×»»¤·¤Þ¤¹¡£¤³¤ì¤Ï angle ¤È lineDirection ¤ÎÀѤǤ¹¡£

¡ãi = 0 ¤Î¾ì¹ç¡ä

distance = angle * lineDirection
         = -3.75 * (lineDirection¤ÎÃÍ)


¡ãi = 1 ¤Î¾ì¹ç¡ä

distance = angle * lineDirection
         = 0 * (lineDirection¤ÎÃÍ)
         = 0


¡ãi = 2 ¤Î¾ì¹ç¡ä

distance = angle * lineDirection
         = 3.75 * (lineDirection¤ÎÃÍ)

¡¡¤³¤Î¤è¤¦¤Ë¡¢½èÍý¤ÎÆâÍƤòÆɤ߲ò¤¤¤Æ¤¤¤¯²áÄø¤Ç¡¢¼Â¿ô¤òÅö¤Æ¤Ï¤á¤Æ¹Í¤¨¤Æ¤¤¤¯¤³¤È¤Ç¡¢
º£²ó¤Î¾ì¹ç¤Ç¤¢¤ì¤Ð¡¢bulletLevel ¤ÎÃͤˤè¤ê¡¢ºÇ½ªÅª¤Ë angle ¤ÎÃͤˤè¤Ã¤ÆÃƤΰÌÃÖ¤¬ÊѲ½¤·¡¢
¥×¥ì¥¤¥ä¡¼¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤«¤éÅù´Ö³Ö¤ÇÇÛÃÖ¤µ¤ì¤ë¤³¤È¤¬³Îǧ¤Ç¤­¤Þ¤¹¡£


¸¡¾Ú­¢¡¡¡¼Mathf.Lerp ¥á¥½¥Ã¥É¡¼


¡¡¤³¤Î¥á¥½¥Ã¥É¤ÎÂè3°ú¿ô¤¬¤ï¤«¤ê¤Ë¤¯¤¤¤È»×¤¤¤Þ¤¹¤Î¤Ç¡¢Êä­¤·¤Þ¤¹¡£

¡¡Âè1°ú¿ô¤Ï¡¢¤³¤Î½èÍý¤ÎºÇ¾®ÃͤȤʤëÃÍ¡¢Âè2°ú¿ô¤Ï¡¢¤³¤Î½èÍý¤ÎºÇÂçÃͤȤʤëÃͤǤ¹¡£
ºÇ¸å¤ÎÂè3°ú¿ô¤Ï¡¢¤³¤ÎºÇ¾®ÃͤȺÇÂçÃͤÎÃæ¤Î²¿³ä¤Ë¤Ê¤ëÃͤò»È¤¦¤«¡¢¤È¤¤¤¦¤â¤Î¤Ç¡¢¤³¤³¤Ïɬ¤º £°¡Á£±¤ÎÈϰϤǻØÄꤷ¤Þ¤¹¡£
¤³¤ì¤Ï ¡ó ¤È¤·¤ÆÆɤßÊѤ¨¤ÆÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤ë¤Î¤Ç¡¢¤½¤Î¾ì¹ç¡¢0 ¤Ï 0 ¡ó¡¢£± ¤Ï 100¡ó ¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤è¤Ã¤Æ¡¢

Mathf.Lerp(ºÇ¾®ÃÍ¡¢ºÇÂçÃÍ¡¢¤½¤Î¤¦¤Á¤Î ¡ó ¤Î¤È¤­¤ÎÃͤλØÄê)

¡¡¤È¤Ê¤ê¤Þ¤¹¡£

¡¡Î㤨¤Ð¡¢currentBulletLine = 10¡¢i = 0 ¤Î¤È¤­¤Ï

Mathf.Lerp(-currentBulletLine / 2, currentBulletLine / 2, t)
¡¡¡¡¢­
Mathf.Lerp(-5, 5, 0)

¡¡¤Ç¤¹¡£

¤³¤ì¤Ï¡¢-5 ¤È 5 ¤ÎÈϰϤò 0 -1(0 -100%) ¤Çɽ¸½¤¹¤ë¤È¤·¤¿¤È¤­¡¢0 % ¤Î¤È¤­¤ÎÃͤò·×»»¤·¤Æ¤¯¤À¤µ¤¤¡¢¤È¤¤¤¦ÆâÍƤˤʤê¤Þ¤¹¡£
¤è¤Ã¤Æ¡¢0 ¤Î¤È¤­¤Ï¡¢-5 ¤Ç¤¹¡£

¡¡¤½¤ì¤ò»È¤Ã¤Æ·×»»¤Ë»È¤Ã¤Æ¤¤¤ëÉôʬ¤ò¸«¤Æ¤ß¤Þ¤·¤ç¤¦¡£

angle = Mathf.Lerp(-currentBulletLine / 2, currentBulletLine / 2, t)
      = Mathf.Lerp(-10 / 2, 10 / 2, 0)
      = Mathf.Lerp(-5, 5, 0)
      = -5

¡¡¤½¤Î¤¿¤á¡¢¤³¤Î¤è¤¦¤Ê·ë²Ì¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡i = 1 ¤Î¾ì¹ç¤Ï

Mathf.Lerp(-currentBulletLine / 2, currentBulletLine / 2, t)
¡¡¡¡¢­
Mathf.Lerp(-5, 5, 1)

¡¡¤Ç¤¹¡£

¤³¤ì¤Ï¡¢-5 ¤È 5 ¤ÎÈϰϤò 0 -1(0 -100%) ¤Çɽ¸½¤¹¤ë¤È¤·¤¿¤È¤­¡¢100 % ¤Î¤È¤­¤ÎÃͤò·×»»¤·¤Æ¤¯¤À¤µ¤¤¡¢¤È¤¤¤¦ÆâÍƤˤʤê¤Þ¤¹¡£

angle = Mathf.Lerp(-currentBulletLine / 2, currentBulletLine / 2, t)
      = Mathf.Lerp(-10 / 2, 10 / 2, 1)
      = Mathf.Lerp(-5, 5, 1)
      = 5

¡¡¤½¤Î¤¿¤á¡¢5 ¤ÎÃͤ¬Å¬ÍѤµ¤ì¤Æ¤¤¤Þ¤¹¡£
¡¡
Æäˡ¢bulletLevel ¤ò3°Ê¾å¤Ë¤·¤Æ·×»»¤·¤¿·ë²Ì¤ò ChatGPT ¤Ë½Ð¤·¤Æ¤â¤é¤¦¤È¡¢¤³¤ÎÈÏ°ÏÆâ¤Ç¤Î ¡ó ¤Î»ØÄ꤬¶ñÂÎŪ¤Ê¿ô»ú¤Ë¤Ê¤ê¤Þ¤¹¡£


¸¡¾Ú­£¡¡¡¼ÃƤÎÇÛÃÖ¤ÎÉý¡¼


[SerializeField] private float bulletLine;  //ľÀþ

¡¡Ä¾Àþ¤ÎŤµ¤Ç¤¹¡£
¤³¤ÎŤµ¤ò¸µ¤Ë¡¢¥×¥ì¥¤¥ä¡¼¤«¤é¤ß¤Æ¤É¤Î°Ì¤Î°ÌÃÖ¤ËÃƤòÇÛÃÖ¤¹¤ë¤«¤ò·è¤á¤Æ¤¤¤Þ¤¹¡£

¡¡¤³¤ÎÃͤò¸ÇÄêÃͤȤ·¤Æ¥½¡¼¥¹¥³¡¼¥ÉÆâ¤Ë»È¤Ã¤Æ¤·¤Þ¤¦¤È¡¢ÃƤοô¤¬Áý¤¨¤Æ¤â¡¢ÃƤòÇÛÃÖ¤¹¤ë¾å¸Â¤Ï¸ÇÄê²½¤µ¤ì¤Æ¤¤¤ë¤¿¤á¡¢
£±¤ÄÊÕ¤ê¤ÎÃƤÎÇÛÃÖ¤ÎÉý¤¬¶¹¤¯¤Ê¤Ã¤Æ¤¤¤¯¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡¤½¤³¤Ç

//¥ì¥Ù¥ë¤Ë±þ¤¸¤Æ¡¢Ä¾Àþ¤ÎŤµ¤òÄ´À°¤¹¤ë(Ŭµ¹¡¢·×»»ÊýË¡¤ò¸¡Æ¤¤¹¤ë)
float currentBulletLine = bulletDistance / 2 * bulletLevel;

¡¡¤³¤Î½èÍý¤ò¹Ô¤¤¡¢¥ì¥Ù¥ë¤¬¾å¤¬¤ë¤´¤È¤Ë¡¢Ä¾Àþ¤ÎŤµ¤ò¾¯¤·¤º¤ÄŤ¯¤·¤Æ¡¢ÃƤÎÇÛÃ֤Ǥ­¤ëÈϰϤâ°ì½ï¤Ë¹­¤²¤Æ¤¤¤Þ¤¹¡£



¡¡¿Þ¤Ë¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¡Ö | ¡×¤¬ bulletLine ¤Ç¡¢¡û¤¬¥Ð¥ì¥Ã¥È¤È¤·¤Þ¤¹¡£

¡¡¥Ð¥ì¥Ã¥È¤¬£²¤Ä¤Î¤È¤­¤Ï¡¢¤³¤Î¤è¤¦¤Ê¥¤¥á¡¼¥¸¤Ç¤¹¡£

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û

¡¡¤½¤Î¸å¡¢¥Ð¥ì¥Ã¥È¤¬£³¤Ä¤ËÁý¤¨¤ë¤È

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û

¡¡¤³¤Î¤è¤¦¤Ë¡¢ÃƤòÇÛÃÖ¤¹¤ëľÀþ¤ÎŤµ¤¬¸ÇÄê²½¤µ¤ì¤Æ¤¤¤ë¤È¡¢£±¤ÄÊÕ¤ê¤ÎÃƤÎÉý¤¬¶¹¤¯¤Ê¤Ã¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¤½¤³¤Ç
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û

¡¡¤³¤Î¤è¤¦¤ËÃƤÎÉý¤â¼è¤ì¤ë¤è¤¦¤Ë¡¢bulletLine ¤ÎÃͤòÂ礭¤¯¤·¤ÆÀßÃ֤Ǥ­¤ëÈϰϤò¹­¤²¤Æ¤¤¤Þ¤¹¡£

¡¡»î¤·¤Ë

//¥ì¥Ù¥ë¤Ë±þ¤¸¤Æ¡¢Ä¾Àþ¤ÎŤµ¤òÄ´À°¤¹¤ë(Ŭµ¹¡¢·×»»ÊýË¡¤ò¸¡Æ¤¤¹¤ë)
float currentBulletLine = bulletDistance / 2 * bulletLevel;

¡¡¡¡¢­

//¥ì¥Ù¥ë¤Ë±þ¤¸¤Æ¡¢Ä¾Àþ¤ÎŤµ¤òÄ´À°¤¹¤ë(Ŭµ¹¡¢·×»»ÊýË¡¤ò¸¡Æ¤¤¹¤ë)
float currentBulletLine = bulletDistance;

¡¡¤³¤Î¤è¤¦¤Ë¤½¤Î¤Þ¤Þ¤¤¤ì¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¤½¤¦¤¹¤ë¤È¡¢Ä¾Àþ¤ÎŤµ¤Ï¥ì¥Ù¥ë¤Ë´Ø·¸¤Ê¤¯¡¢¸ÇÄê²½¤µ¤ì¤Þ¤¹¡£

¡¡¤½¤¦¤Ê¤Ã¤¿¤È¤­¡¢ÃƤò£´¤Ä£µ¤Ä¤ÈÁý¤ä¤·¤Æ¤ß¤ë¤È¤ï¤«¤ë¤Î¤Ç¤¹¤¬¡¢¾åµ­¤ÎÈÏ°ÏÆâ¤ÇÃƤò£´¤Ä£µ¤Ä¤Èȯ¼Í¤·¤Þ¤¹¡£
½é¤ÎÃƤȺǸå¤ÎÃƤΰÌÃ֤ϸÇÄê²½¤µ¤ì¡¢Â¾¤ÎÃƤ⡢ľÀþ¤ÎŤµ¤¬ÊѤï¤é¤Ê¤¤¤¿¤á¡¢ÃƤ¬Áý¤¨¤ë¤´¤È¤ËÇÛÃÖ¤¹¤ëºÝ¤Î´Ö³Ö¤¬¶¹¤¯¤Ê¤Ã¤Æ¤¤¤­¤Þ¤¹¡£
¤½¤ì¤À¤È¹¶·â¤ÎÈϰϤ¬¹­¤¬¤é¤Ê¤¤¤Î¤Ç¡¢º£²ó¤Î¾ì¹ç¤Ï¡¢¥ì¥Ù¥ë¤ò»È¤Ã¤ÆÊäÀµ¤·¤Æ¤¤¤ë·Á¤Ë¤Ê¤ê¤Þ¤¹¡£



¡¡ÊäÀµÉôʬ¤Ë¥³¥á¥ó¥È¤Ë¤è¤ëÊä­¤¬¤¢¤ë¤Î¤Ï¡¢¡Öº£²ó¤Ï¥ì¥Ù¥ë¤ÇÊäÀµ¤·¤Æ¤¤¤ë¤±¤É¡¢Â¾¤ÎÊýË¡¤â¤¢¤ë¤è¡×¤È¤¤¤¦°ÕÌ£¤Ç¤¹¡£

¡¡¤¢¤Þ¤êµÞ·ã¤ËľÀþ¤ÎŤµ¤òÁý¤ä¤·¤¹¤®¤Æ¤â¡¢ÃƤδֳ֤¬¹­¤¯¤Ê¤ê¤¹¤®¤Þ¤¹¡£

¡¡Î㤨¤Ð
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û

¡¡¤³¤ì¤À¤È¡¢Éý¤¬¹­¤¹¤®¤ÆŨ¤ò¤¹¤êÈ´¤±¤½¤¦¤Ç¤¹¡£

¡¡¤½¤ì¤Ç¡¢º£²ó¤Ï¡¢Ä¾Àþ¤òȾʬ¤Ë¤·¤Æ¤«¤é¥ì¥Ù¥ë¤ò³Ý¤±¤ë»ö¤Ç

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡|¡û

¡¡¤³¤¦¤¤¤¦´¶¤¸¤Ç¡¢ÃƤÎȯ¼Í°ÌÃÖ¤ò¹­¤¯¤·¤Ä¤Ä¡¢´Ö³Ö¤¬µÞ¤Ë¹­¤¬¤ê¤¹¤®¤Ê¤¤¤è¤¦¤¹¤ë¤¿¤á¤Ë¡¢Ä¾Àþ¤ÎŤµ¤òÄ´À°¤·¤Æ¿­¤Ð¤·¤Æ¤¤¤Þ¤¹¡£



¡¡¤³¤ÎÊÕ¤ê¤Îɽ¸½¤Ï¡¢ºî¤ê¼ê¤Ë¤«¤«¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤¢¤¯¤Þ¤Ç¤â»²¹ÍÃͤȤ·¤Æ¹Í¤¨¤Æ¤¤¤¿¤À¤±¤ë¤È¤è¤¤¤Ç¤·¤ç¤¦¡£
¤Û¤«¤Ë¤â·×»»ÊýË¡¤Ï¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¼ÂºÝ¤Ë¤Ï¡¢¿§¤ó¤ÊÃͤòÆþ¤ì¹þ¤ó¤Ç¤¤¤Ã¤ÆÄ´À°¤·¤Æ¤¤¤¯Éôʬ¡¢¤È¤¤¤¦Ç§¼±¤Ç¤¤¤Æ¤â¤é¤¨¤Ð¤È»×¤¤¤Þ¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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