¡¡³Æ½èÍý¤Ë¤Ä¤¤¤Æ¡¢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 ¤ÎÃͤˤè¤Ã¤ÆÃƤΰÌÃÖ¤¬ÊѲ½¤·¡¢
¥×¥ì¥¤¥ä¡¼¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤«¤éÅù´Ö³Ö¤ÇÇÛÃÖ¤µ¤ì¤ë¤³¤È¤¬³Îǧ¤Ç¤¤Þ¤¹¡£