ºÇ½ª¹¹¿·¡§ orika_ex_miyako 2023ǯ08·î02Æü(¿å) 11:17:11ÍúÎò
¤³¤ì¤Ï¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¥²¡¼¥à¾å¤ÎµóÆ°¤ÏÊѤï¤é¤º¡¢¥¹¥¯¥ê¥×¥È¤ÎÆâÍƤò²þ½¤¤¹¤ëÆâÍƤˤʤê¤Þ¤¹¡£
¡¡°Ê²¼¤ÎÆâÍƤǽçÈ֤˼ÂÁõ¤ò¿Ê¤á¤Æ¤¤¤¤Þ¤¹¡£
ȯŸ£±£±¡¡¡Ý¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÍѤΥ¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎºîÀ®¤È±¿ÍÑ¡Ý
£²£±¡¥¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÍѤΠMoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë £²£²¡¥¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÊýË¡¤Ë±þ¤¸¤Æ MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÍÑ°Õ¤µ¤ì¤¿¥á¥½¥Ã¥É¤ò UnityAction ¤ËÅÐÏ¿¤·¤Æ°ÜÆ°¤ò¼Â¹Ô¤¹¤ë
¡¡¿·¤·¤¤³Ø½¬ÆâÍƤϡ¢°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£
¡¡¡¦¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¿·¤·¤¤»È¤¤Êý ¡¡¡¦UnityAction(¥Ç¥ê¥²¡¼¥È)¤Î»È¤¤Êý ¡¡¡¦DOAnchorPos ¥á¥½¥Ã¥É
¡¡¤³¤Î¼ê½ç¤Ç¤Ï¡¢¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÊýË¡¤Ë¤Ä¤¤¤Æ¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¹Ô¤¤¤Þ¤¹¡£
¿·¤·¤¤µ¡Ç½¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢½ñ¤¤¤Æ¤¢¤ëÆâÍƤ¬Æñ¤·¤¤¡¢¼ÂÁõ¤·¤¿¤¤¤±¤É½èÍý¤¬Æɤá¤Ê¤¤¡¢¤È¤¤¤¦¾ì¹ç¤Ë¤Ï¤³¤Î¼ê½ç¤ÏÈô¤Ð¤·¤Æ¤¯¤À¤µ¤¤¡£
¼«Ê¬¤Î¥¹¥¥ë¤Ë¹ç¤ï¤»¤Æ³Ø½¬¤ò¹Ô¤Ã¤Æ¤¤¤¿¤À¤±¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¡£¤¢¤È¤Ç¿¶¤êÊ֤äƤߤƤ¯¤À¤µ¤¤¡£
¡¡¥¨¥Í¥ß¡¼ÍѤΥǡ¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÍøÍѤ¹¤ëÌÜŪ¤Ç EnemyDataSO ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢
EnemyDataSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Æ¡¢ÀßÄê¤ò¹Ô¤Ã¤Æ¤¤Þ¤·¤¿¡£
¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï¤³¤Î¤è¤¦¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÍøÍѤǤ¤ëÉôʬ¤Î¾¤Ë¡¢
ÆÃÄê¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë°Í¸¤·¤Ê¤¤(ɳ¤Å¤«¤Ê¤¤)¡¢¤È¤¤¤¦ÆÃÀ¤òÀ¸¤«¤·¤Æ¡¢
´ØÏ¢¤¹¤ë¥á¥½¥Ã¥É¤òÅÐÏ¿¤·¤Æ¥á¥½¥Ã¥É¤ò°·¤¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÍøÍѤ¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
¡¡¸½ºß¥¨¥Í¥ß¡¼¤Î°ÜÆ°¤Ë¤Ä¤¤¤Æ¤Ï EnemyController ¥¹¥¯¥ê¥×¥È¤Ëµ½Ò¤ò¤·¤Æ¤¤Þ¤·¤¿¡£
º£¤Î½ê£²¤Ä¤Î°ÜÆ°ÊýË¡¤¬¥á¥½¥Ã¥É¤È¤·¤ÆºîÀ®¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ì¤Ë¤Ï£²¤Ä¤ÎÂ礤ÊÌäÂêÅÀ¤¬¤¢¤ê¤Þ¤¹¡£
¡¡¤Þ¤º£±¤Ä¤¬¡¢°ÜÆ°ÊýË¡¤¬£±¤ÄÁý¤¨¤ë¤¿¤Ó¤Ë¡¢EnemyController ¥¹¥¯¥ê¥×¥È¼«ÂΤ¬ÈîÂç²½¤·¤Æ¤·¤Þ¤¦¤È¤¤¤¦¤³¤È¡¢
¤â¤¦£±¤Ä¤Ï¡¢¥¨¥Í¥ß¡¼¤¬ÍøÍѤ¹¤ë°ÜÆ°ÊýË¡¤Ï£±¤Ä¤Î¤Ï¤º¤Ê¤Î¤Ë¡¢Â¾¤ËÍøÍѤ·¤Ê¤¤°ÜÆ°¤Î¾ðÊó¤â´ÉÍý¤·¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¡¢¤³¤Î£²¤Ä¤Ç¤¹¡£
¡¡Î㤨¤Ð¥¨¥Í¥ß¡¼¤Î¼ïÎà¤òÁý¤ä¤·¤Æ°ÜÆ°ÊýË¡¤ò£µ¼ïÎà¤ËÁý¤ä¤¹¡¢¤È²¾Äꤷ¤Æ¹Í¤¨¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
£µ¤Ä¤Î°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ò EnemyController ¥¹¥¯¥ê¥×¥È¤ËÄɲ乤뤳¤È¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢
¼ÂºÝ¤Ë£µ¤Ä¤Î¥á¥½¥Ã¥É¤ò¤¹¤Ù¤ÆÍøÍѤ¹¤ë¥¨¥Í¥ß¡¼¤Ï¸ºß¤·¤Þ¤»¤ó¡£¤¤¤º¤ì¤«£±¤Ä¤Î°ÜÆ°ÍѤΥ᥽¥Ã¥É¤¬¤¢¤ì¤Ð½¼Ê¬¤Ê¤Ï¤º¤Ç¤¹¡£
¡¡¤½¤·¤Æ¥á¥½¥Ã¥É¤¬Áý¤¨¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢EnemyController ¥¹¥¯¥ê¥×¥È¤Ëµ½Ò¤µ¤ì¤ë½èÍý¤¬É¬Á³Åª¤ËÁý¤¨¤Æ¤¤¤¤Þ¤¹¡£
°ÜÆ°½èÍý°Ê³°¤Î¥á¥½¥Ã¥É¤Ï¥¨¥Í¥ß¡¼¤Î´ÉÍý¤ä±¿¹Ô¤Ë¹ç¤ï¤»¤ÆɬÍפʥ᥽¥Ã¥É¤äÊÑ¿ô¤Ç¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢
ËÜÍè¤ÏɬÍפʾðÊó¤Î¤ß¤Ç£±¤Ä¤Î¥¹¥¯¥ê¥×¥È¤¬¹½À®¤µ¤ì¤Æ¤¤¤ë¤³¤È¤¬ÍýÁÛŪ¤Ç¤¹¡£
¡¡¤³¤ÎÉôʬ¤ÎÌäÂêÅÀ¤ò²ò·è¤¹¤ëÊýË¡¤Î£±¤Ä¤È¤·¤Æ¡¢º£²ó¤Ï¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤ·¤Þ¤¹¡£
¤â¤Á¤í¤ó¡¢Â¾¤Ë¤âÊýË¡¤Ï¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤¤¤¯¤Ä¤«¤¢¤ëÃæ¤Î£±¤Ä¡¢¤È¤·¤Æª¤¨¤Æ¤ª¤¯¤³¤È¤¬ÂçÀڤǤ¹¡£»ëÌî¤Ï¹¤¯»ý¤Ã¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÆâ¤Ë¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÍѤΥ᥽¥Ã¥É¤òÍÑ°Õ¤·¡¢¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÊýË¡¤Ë¹ç¤ï¤»¤ÆŬÀڤʥ᥽¥Ã¥É¤ò½àÈ÷¤·¤Þ¤¹¡£
EnemyController ¥¹¥¯¥ê¥×¥È¦¤Ç¤Ï¡¢¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤è¤ê¡¢¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÊýË¡¤Ë¹ç¤ï¤»¤¿¥á¥½¥Ã¥É¤ò£±¤Ä¡¢¼èÆÀ¤·¤Þ¤¹¡£
¤½¤·¤Æ¤½¤ì¤ò¼Â¹Ô¤¹¤ë¡¢¤È¤¤¤¦Î®¤ì¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤³¤Î½èÍý¤ò¼ÂÁõ¤¹¤ë¤¿¤á¤Ë¤Ï¡¢UnityAction ¤È¤¤¤¦ Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë½èÍý¤òÍøÍѤ·¤Þ¤¹¡£
UnityAction ¤Ï¥Ç¥ê¥²¡¼¥È¤È¸Æ¤Ð¤ì¤ë C#¡¡¥×¥í¥°¥é¥à¤Îµ¡Ç½¤òÍøÍѤ·¤Æ¤¤¤ë½èÍý¤Ç¤¹¡£
¥Ç¥ê¥²¡¼¥È¤È¤Ï¥á¥½¥Ã¥É¤ò»²¾È¤¹¤ë·¿¤Î¤³¤È¤ò¸À¤¤¤Þ¤¹¡£
¡¡
¡¡¼ÂºÝ¤ËÍøÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¢¥á¥½¥Ã¥É¤òÅÐÏ¿¤·¤Æ¤ª¤±¤ëÊÑ¿ô¡¢¤È¤¤¤¦¥Ë¥å¥¢¥ó¥¹¤Ç¹Í¤¨¤Æ¤â¤é¤Ã¤Æ¤âÌäÂꤢ¤ê¤Þ¤»¤ó¡£
ÊÑ¿ô¤ÎÃͤȤ·¤Æ¥á¥½¥Ã¥É¤òÅÐÏ¿¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¤½¤ÎÊÑ¿ô¤ò¼Â¹Ô¤¹¤ë·Á¤Ç¡¢ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤¤ë½èÍý¤È¤È¤é¤¨¤ë¤È¤¤¤¤¤Ç¤¹¡£
¡¡¼ÂºÝ¤ËºîÀ®¤·¤Ê¤¬¤é½èÍý¤ò¸«¤Æ¤¤¤¤Þ¤¹¡£
¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë¤¿¤á¤ËɬÍפʾðÊó¤äµ½Ò¤ÎÊýË¡¤Ï³Ð¤¨¤Æ¤¤¤Þ¤¹¤«¡©
ȯŸ£² ¤Ë¾ÜºÙ¤Ê¼ê½ç¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢Éü½¬¤·¤Ê¤¬¤é½èÍý¤òµ½Ò¤·¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£
¡¡º£²ó¤Ï¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤ÆÍøÍѤ¹¤ëÌõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢List ¤äÆþ¤ì»Ò¥¯¥é¥¹¤Ê¤É¤ÎÀë¸À¤ÏÉÔÍפǤ¹¡£
Âå¤ï¤ê¤Ë¡¢º£¤Þ¤Ç EnemyController ¥¹¥¯¥ê¥×¥È¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤¿°ÜÆ°ÊýË¡¤Ë¤è¤Ã¤Æʬ´ô¤ò¹Ô¤¦¥á¥½¥Ã¥É¤È¡¢°ÜÆ°¤Î½èÍý¤ò¹Ô¤¦¥á¥½¥Ã¥É¤òµ½ÒÊýË¡¤òÊѤ¨¤ÆÍÑ°Õ¤·¤Þ¤¹¡£
¡¡ÊÑ¿ô¤Ç¤Ï const ¥¡¼¥ï¡¼¥É¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥¡¼¥ï¡¼¥É¤òÀë¸À¤·¤¿ÊÑ¿ô¤ÎÃͤÏÄê¿ô¤È¤·¤Æ°·¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¡¢¥²¡¼¥àÆâ¤Ç¤ÎÃͤÎÊѹ¹¤¬½ÐÍè¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥²¡¼¥àÆâ¤ÇÍøÍѤ¹¤ëºÝ¤ËÄêÃÍ(¥²¡¼¥à³«»Ï¤«¤é½ª¤ï¤ê¤Þ¤ÇÊѤï¤é¤Ê¤¤ÃÍ)¤ò°·¤¦¾ì¹ç¤Ë¤ÏÀë¸À¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢ÃͤÎÊѹ¹¤òËɤ°¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Microsoft const (C# ¥ê¥Õ¥¡¥ì¥ó¥¹)
https://docs.microsoft.com/ja-jp/dotnet/csharp/lan...
MoveEventSO.cs
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡Unity ¤Îº¸¾å¤Î¥á¥Ë¥å¡¼¤è¤ê¡¢Assets => Create => Create MoveEventSO ¤òÁªÂò¤·¤Þ¤¹¡£
¿·¤·¤¯ MoveEventSO ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£Ì¾Á°¤Ï¤½¤Î¤Þ¤Þ¤Ç¹½¤¤¤Þ¤»¤ó¡£
¡¡MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò Datas ¥Õ¥©¥ë¥À¤Ø°ÜÆ°¤·¤Æ¤¯¤À¤µ¤¤¡£
¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤¿¤é¡¢Datas ¥Õ¥©¥ë¥ÀÆâ¤Ç´ÉÍý¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡¥Ç¡¼¥¿¥Ù¡¼¥¹¤È¤·¤Æ¿ôÃͤò´ÉÍý¤¹¤ë¤¿¤á¤ËÍøÍѤ¹¤ëÌõ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤Î¤Ç¡¢ÀßÄê¤ÏÉÔÍפǤ¹¡£
MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò¸«¤Æ¤âÅÐÏ¿¤Ç¤¤ë¤è¤¦¤Ê¾ðÊó¤Ï¤¢¤ê¤Þ¤»¤ó¡£
£´¡¥EnemyGenerator ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤Æ¡¢MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤǤ¤ë¾õÂ֤ˤ¹¤ë
¡¡¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ï¤¤¤º¤ì¤«¤Î¥¹¥¯¥ê¥×¥È¤ËÊÑ¿ô¤òÍÑ°Õ¤¹¤ë¤³¤È¤ÇÍøÍѲÄǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÊýË¡¤òÀßÄꤷ¡¢°ÜÆ°½èÍý¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥¢¥»¥Ã¥È¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢º£²ó¤â EnemyGenerator ¥¹¥¯¥ê¥×¥È¤Ë
public ½¤¾þ»Ò¤Î MoveEventSO ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤ê¥¢¥µ¥¤¥ó¤Ç¤¤ë¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£
¡¡¤Ê¤ª¡¢·¿¤Ï MoveEventSO ·¿¤Ç¤ÎÀë¸À¤Ë¤Ê¤ê¤Þ¤¹¤¬¡¢¥¢¥µ¥¤¥ó²Äǽ¤Ê¤Î¤Ï¡¢MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£
MoveEventSO ¥¹¥¯¥ê¥×¥È¤ÏľÀÜ¥¢¥µ¥¤¥ó¤Ç¤¤Þ¤»¤ó¡£²¿¸Î¤Ê¤é¤Ð¡¢¥¢¥µ¥¤¥ó½ÐÍè¤ë¾ðÊó¤Ï¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤«¡¢ÆÃÄê¤Î¥¢¥»¥Ã¥È¤Ë¸Â¤é¤ì¤ë¤¿¤á¤Ç¤¹¡£
(º£¤Þ¤Ç¤Î¥¢¥µ¥¤¥ó¤ò»×¤¤½Ð¤·¤Æ¤¯¤À¤µ¤¤¡£¥Ò¥¨¥é¥ë¥¡¼¤Ë¤¢¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¢¤¢¤ë¤¤¤Ï¥×¥ì¥Õ¥¡¥Ö¤Î¤ß¤ò¥¢¥µ¥¤¥ó¤·¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹)
º®Æ±¤·¤ä¤¹¤¤¤Î¤Ç´Ö°ã¤¨¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¤Þ¤¿Ìµ»ö¤Ë¥¨¥Í¥ß¡¼¤Î¼ïÎऴ¤È¤Ë List ¤¬ºîÀ®¤µ¤ì¤ë¤³¤È¤¬³Îǧ¤Ç¤¤Þ¤·¤¿¤Î¤Ç¡¢
normalEnemyDatas ÊÑ¿ô¤È bossEnemyDatas ÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï pulbic ½¤¾þ»Ò¤Ç¤Ï¤Ê¤¯¡¢private ½¤¾þ»Ò¤ËÊѹ¹¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
EnemyGenerator.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡EnemyGenerator ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ò³Îǧ¤·¤Æ¡¢private ½¤¾þ»Ò¤ËÊѹ¹¤·¤¿ÊÑ¿ô¤Îɽ¼¨¤¬¤Ê¤¯¤Ê¤ê¡¢
¿·¤·¤¯ public ½¤¾þ»Ò¤ÇÀë¸À¤·¤¿ÊÑ¿ô¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£
EnemyGenerator ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü
¡¡MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥ÈÍѤÎÊÑ¿ô¤òÀë¸À¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Datas ¥Õ¥©¥ë¥À¤Ë¤¢¤ë
MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤ÆÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡MoveEventSO ¥¹¥¯¥ê¥×¥È¤ÏÅÐÏ¿¤Ç¤¤Þ¤»¤ó¡£¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ÎÊý¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£
EnemyGenerator ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡¡¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü
¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£¤³¤ì¤Ç MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤òÍøÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
£²£²¡¥¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÊýË¡¤Ë±þ¤¸¤Æ MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤ËÍÑ°Õ¤µ¤ì¤¿¥á¥½¥Ã¥É¤ò UnityAction ¤ËÅÐÏ¿¤·¤Æ°ÜÆ°¤ò¼Â¹Ô¤¹¤ë
¡¡¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ò¤¹¤Ù¤Æ MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Þ¤È¤á¤Æµ½Ò¤·¤Þ¤·¤¿¡£
¤³¤Á¤é¤ò¥¨¥Í¥ß¡¼¤Î¥Ç¡¼¥¿¤ò»²¾È¤·¤¿¤È¤¤Î¤è¤¦¤Ë¡¢¥¨¥Í¥ß¡¼¤Î MoveType ¤Î¼ïÎà¤Ë±þ¤¸¤Æ¡¢ÂоݤȤʤë°ÜÆ°Íѥ᥽¥Ã¥É¤ò¼èÆÀ¤·¤ÆÍøÍѽÐÍè¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡
¡¡¤³¤³¤Ç¤ÏÀè¤Û¤ÉÀâÌÀ¤·¤¿¡¢UnityAction ¤È¤¤¤¦µ¡Ç½¤òÍøÍѤ·¤Þ¤¹¡£¤³¤Î·¿¤òÊÑ¿ô¤òÍÑ°Õ¤¹¤ë¤³¤È¤Ç¡¢°ÜÆ°ÍѤΥ᥽¥Ã¥É¤òÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢EnemyController ¥¹¥¯¥ê¥×¥È¤Ë¤¢¤ë°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ò°ìÀڻȤ鷺¤Ë¡¢°ÜÆ°¤Î½èÍý¤ò¼Â¹Ô½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¼ê½ç¤È¤·¤Æ¤Ï¡¢¥¨¥Í¥ß¡¼¤Ë¤¢¤ë EnemData ¥¯¥é¥¹Æâ¤Ë¤¢¤ë MoveType ¤òÍøÍѤ·¤Æ¡¢¤É¤Î°ÜÆ°ÊýË¡¤Ë¤¹¤ë¤¬Ê¬´ô¤¹¤ëÉôʬ¤ÏƱ¤¸¤Ç¤¹¤¬¡¢
¤³¤³¤Ç¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ò UnityAction ·¿¤ÎÊÑ¿ô¤ËÅÐÏ¿¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
¡¡¤½¤Î¸å¡¢EnemyController ¥¹¥¯¥ê¥×¥È¤Ç¤ÏÅÐÏ¿¤µ¤ì¤¿¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£
¤³¤Î¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢EnemyController ¥¹¥¯¥ê¥×¥È¤Ë¤Ï¡¢°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ò½ñ¤¯¤³¤È¤Ê¤¯¡¢¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÊýË¡¤Ë±þ¤¸¤¿°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ò½èÍý½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ã¥í¥¸¥Ã¥¯¤Îή¤ì¡ä
¡¡£±¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤Ë UnityActon ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤¹¤ë ¡¡£²¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤«¤é¡¢MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î GetMoveEvent ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¡£°ú¿ô¤È¤·¤Æ¡¢¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÊýË¡(MoveType)¤òÅϤ¹ ¡¡¡¡¡¡¡¡¤³¤Î½èÍý¤ò¼Â¹Ô¤¹¤ë¤ËºÝ¤·¡¢GetMoveEvent ¥á¥½¥Ã¥É¤Ë¤ÏÌá¤êÃͤȤ·¤Æ UnityActon ·¿¤Ç°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ò¼èÆÀ¤·¤ÆÌᤷ¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢¼õ¤±¼è¤Ã¤ÆÅÐÏ¿¤¹¤ë¤¿¤á¤Î UnityActon ·¿¤ÎÊÑ¿ô¤òº¸ÊÕ¤ËÍÑ°Õ¤·¤Æ¤ª¤¯ ¡¡£³¡¥EnemyController ¥¹¥¯¥ê¥×¥È¤Ë¤Æ¡¢UnityActon ·¿¤ÎÊÑ¿ô¤ËÅÐÏ¿¤µ¤ì¤¿°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¡£¥¨¥Í¥ß¡¼¤Î°ÜÆ°ÊýË¡¤Ë±þ¤¸¤¿°ÜÆ°¤¬½èÍý¤µ¤ì¤ë
¡¡°Ê¾å¤Î¤è¤¦¤Êή¤ì¤Ë¤Ê¤ê¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
UnityAction
https://docs.unity3d.com/ja/current/ScriptReferenc...
Kan ¤Î¥á¥âÄ¢ ÍÍ
¥Ç¥ê¥²¡¼¥È(Delegate)¤ä¥¤¥Ù¥ó¥È(Event)¤È¤Ï¡ÚC#¡Û
https://kan-kikuchi.hatenablog.com/entry/Delegate
¡¡UnityActon ·¿¤òÀë¸À¤¹¤ë¤¿¤á¤Ë¤Ï using ¤ËÀë¸À¤ÎÄɲä¬É¬Íפˤʤê¤Þ¤¹¡£
¡¡UnityActon ·¿¤Ë¤Ï <T> ¤È¤¤¤¦¥¸¥§¥Í¥ê¥Ã¥¯·¿(Ǥ°Õ¤Î·¿)¤Ç¤Î·¿¥Ñ¥é¥á¡¼¥¿¤Î»ØÄ꤬½ÐÍè¤Þ¤¹¡£ºÇÂç¤Ç£´¤Ä¤Þ¤Ç»ØÄê¤Ç¤¤Þ¤¹¡£
º£²ó¤Ï UnityAction<Transform, float> ·¿¤È¤¤¤¦·¿¤Ë¤Ê¤ê¡¢½èÍý¤ò¼Â¹Ô¤¹¤ëºÝ¤Ë·¿¥Ñ¥é¥á¡¼¥¿¤Ç»ØÄꤷ¤¿·¿¤Î¾ðÊó¤¬É¬Íפˤʤê¤Þ¤¹¡£
EnemyController.cs
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡½èÍý¤ò½çÈÖ¤ËÆɤ߲ò¤¤¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¡ãEnemyController.cs¡ä
// ÊÑ¿ô¤òÍÑ°Õ¤¹¤ë private UnityAction<Transform, float> moveEvent;
¡¡¤³¤³¤Ë°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ò¼èÆÀ¤·¤ÆÂåÆþ¤·¤Þ¤¹¡£
// MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î GetMoveEvent ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢Ìá¤êÃͤǰÜÆ°ÍѤΥ᥽¥Ã¥É¤ò¼õ¤±¼è¤ë¡£¤³¤³¤Ç°ÜÆ°ÊýË¡¤ò·èÄê moveEvent = this.enemyGenerator.moveEventSO.GetMoveEvent(enemyData.moveType);
¡¡¢¡¡±¦ÊդνèÍý¤Ï¡¢°Ê²¼¤ÎÄ̤ê
¡ãMoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¡¡GetMoveEvent ¥á¥½¥Ã¥É¡£moveType ¤Çʬ´ô¤·¡¢UnityActon<Transform, float> ·¿¤ÇÃͤ¬Ìá¤ë¡ä
public UnityAction<Transform, float> GetMoveEvent(MoveType moveType) { ¡¡¡¡switch (moveType) { ¡¡¡¡case MoveType.Straight: ¡¡¡¡return MoveStraight; case MoveType.Meandering: return MoveMeandering; case MoveType.Boss_Horizontal: return MoveBossHorizontal; default: return Stop; } }
¡¡¡¡¢¡¡±¦ÊդνèÍý¤¬½ªÎ»¤¹¤ë¤È¡¢¥¨¥Í¥ß¡¼¤Î moveType ¤Ë±þ¤¸¤¿°ÜÆ°ÍѤΥ᥽¥Ã¥É¤¬£±¤Ä¤À¤±Ìá¤êÃͤȤ·¤Æ¼èÆÀ¤Ç¤¤ë
¡ãEnemyController.cs¡ä
// MoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î GetMoveEvent ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢Ìá¤êÃͤǰÜÆ°ÍѤΥ᥽¥Ã¥É¤ò¼õ¤±¼è¤ë¡£¤³¤³¤Ç°ÜÆ°ÊýË¡¤ò·èÄê ¡¡// ¤É¤Á¤é¤â UnityAction<Transform, float> ¤Ç¤¢¤ë¤Î¤Ç¡¢ÂåÆþ¤¬À®Î©¤¹¤ë moveEvent = UnityAction<Transform, float> ·¿¤Î¥á¥½¥Ã¥É¤¬£±¤ÄÌá¤Ã¤Æ¤¯¤ë
¡¡¡¡¢¡¡moveEvent ÊÑ¿ô¤Ë¤Ï°ÜÆ°ÍѤΥ᥽¥Ã¥É¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢Invoke ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¤Æ½èÍý¤ò¤¹¤ë
// Invoke ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤ë¤È¡¢moveEvent ÊÑ¿ô¤ËÅÐÏ¿¤µ¤ì¤¿¥á¥½¥Ã¥É(º£²ó¤Ï°ÜÆ°ÍѤΥ᥽¥Ã¥É)¤ò¼Â¹Ô¤¹¤ë¡£UnityActon <Transform, float>·¿¤Ê¤Î¤Ç¡¢¼Â¹Ô¤Ë¤¢¤¿¤Ã¤Æ¡¢»ØÄꤵ¤ì¤¿·¿¤Î¾ðÊó¤ò»ØÄꤹ¤ë moveEvent.Invoke(transform, enemyData.moveDuration);
¡¡ÊÑ¿ô¤ÎÃæ¤Ë¥á¥½¥Ã¥É¤¬ÅÐÏ¿¤Ç¤¤ë¡¢¤È¤¤¤¦¤Î¤ÏÉԻ׵Ĥ˻פ¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢°ÊÁ°¤«¤é¤³¤ì¤Ë¶á¤¤½èÍý¤Ï¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£
Button ¥¯¥é¥¹¤Î AddListener ¥á¥½¥Ã¥É¤¬¤³¤ì¤ËÅö¤¿¤ê¤Þ¤¹¡£°ú¿ô¤Ë¡¢¥Ü¥¿¥ó¤ò²¡¤·¤¿ºÝ¤Ë¼Â¹Ô¤·¤¿¤¤¥á¥½¥Ã¥É¤òÅÐÏ¿¤·¤Æ¤¤¤¿¤Ï¤º¤Ç¤¹¡£
¡¡º£²ó¤Î UnityAction ¤Îµ¡Ç½¤Ç¥Ý¥¤¥ó¥È¤È¤Ê¤ë¤Î¤Ï¡¢°ÜÆ°ÍѤΥ᥽¥Ã¥É¤ËÂФ·¤ÆɬÍפʰú¿ô¤Î¾ðÊó¤ò·¿¥Ñ¥é¥á¡¼¥¿¤È¤¤¤¦·Á¤Ç»ØÄꤷ¤Æ¤¤¤ë¤³¤È¤Ç¤¹¡£
UnityAction<Transform, float> ·¿¤È¤Ï¡¢¤¹¤Ù¤Æ¤Î°ÜÆ°ÍѤΥ᥽¥Ã¥É¤Ç»ÈÍѤ¹¤ë°ú¿ô¤Î·¿¤ò»ØÄꤷ¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ê¤Þ¤¹¡£
¡¡³Îǧ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¡ãMoveEventSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¡ä
public void MoveStraight(Transform tran, float duration) { //Debug.Log(tran); Debug.Log("ľ¿Ê"); tran.DOLocalMoveY(moveLimit, duration); }
¡¡¥Ç¥ê¥²¡¼¥È¤Ë¤ÏÊ£¿ô¤Î¥á¥½¥Ã¥É¤òÅÐÏ¿¤·¤Æ½çÈ֤˼¹Ԥ¹¤ë¤È¤¤¤¦µ¡Ç½¤â¤¢¤ê¤Þ¤¹¤·¡¢¼Â¹Ô¤¹¤ë¥¿¥¤¥ß¥ó¥°¤ò¼«Ê¬¤ÇÀßÄê¤Ç¤¤ë¤Î¤Ç¡¢³èÍѤǤ¤ë¤ÈÊØÍø¤Êµ¡Ç½¤Ë¤Ê¤ê¤Þ¤¹¡£
¾¯¤·¤º¤Ä³Ð¤¨¤Æ¤¤¤¤Þ¤·¤ç¤¦¡£¡¡
¡¡¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ò¤ª¤³¤Ê¤Ã¤¿¤Î¤Ç¡¢¥²¡¼¥à¾å¤Îµ¡Ç½¤Ï²¿¤âÊѤï¤ê¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢¤³¤Î½èÍý¤ò¼Â¹Ô¤·¤¿ºÝ¤Ë¡¢º£¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤ËÆ°¤¯¤³¤È¤¬ÂçÀڤǤ¹¡£
¡¡¤â¤·¤â°ÊÁ°¤Î¤è¤¦¤Ë¾å¼ê¤¯°ÜÆ°¤¬µ¡Ç½¤·¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¤½¤ì¤Ï¥ê¥Õ¥¡¥¯¥¿¥ê¥ó¥°¤ÎºÝ¤Ëµ½Ò¸í¤ê¤¬¤¢¤ê¤Þ¤¹¡£
½èÍý¤ò£±¤Ä¤º¤Ä½çÈÖ¤ËÄɤäƤ¤¤Ã¤Æ¡¢¤É¤ÎÉôʬ¤ÇÀµ¾ï¤ËÆ°¤¤¤Æ¤¤¤Ê¤¤¤«¤òÆÃÄꤷ¡¢¥¨¥é¡¼²Õ½ê¤òõ¤·¤Æ½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¼Ø¹Ô°ÜÆ°¤Î½èÍý¤Ë¤Ä¤¤¤ÆÊäÂÀâÌÀ¤·¤Þ¤¹¡£
private void MoveMeandering(UnityEngine.Transform tran, float duration) { Debug.Log("¼Ø¹Ô"); tran.DOLocalMoveX(tran.position.x + 150, 1f).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear); //<= ¤³¤³¡£DOLocalMoveX(tran.position.x + 150, 1f)¤ÇÆ°¤¯µ÷Î¥¤Ï¸ÇÄꤷ¤Æ¤¤¤ë tran.DOLocalMoveY(moveLimit, duration); }
¡¡¥½¡¼¥¹¥³¡¼¥É¤Ç¤Ïº¸±¦¤Î°ÜÆ°Éý¤Ï¸ÇÄꤷ¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¥²¡¼¥à¤ò¼Â¹Ô¤¹¤ë¤È¡¢Æ±¤¸Å¨¤Ç¤¢¤Ã¤Æ¤â°Û¤Ê¤ë°ÜÆ°Éý¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡ã¸¡¾ÚÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡¤³¤Î½èÍý¤ÏÆ°¤¤¤Æ¤Ï¤¤¤Þ¤¹¤¬¡¢¼Â¤Ï¡¢DOTween ¤ÎÂè1°ú¿ô¤ËÂФ·¤Æ¡¢Àµ¤·¤¯¤Ê¤¤»ØÄê¤ò¤ï¤¶¤È¤·¤Æ¤¤¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡
¡¡DOTween ¤ÇÍøÍѤ·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Ï¡¢DOLocalMoveX ¥á¥½¥Ã¥É¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢ËÜÍè¤Ç¤¢¤ì¤ÐÂè1°ú¿ô¤Ë¤Ï¡¢°ÜÆ°¤µ¤»¤¿¤¤¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î LocalPosition ¤ò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤³¤ì¤ÏÍøÍѤ¹¤ëDOTween ¤Î¥á¥½¥Ã¥É¤Ë¤è¤ê¡¢°ú¿ô¤Î»ØÄ꤬·è¤Þ¤ë¤¿¤á¤Ç¤¹¡£
¡¡¥Ý¥¤¥ó¥È¤ÏÍøÍѤ·¤Æ¤¤¤ë¥á¥½¥Ã¥É¤È°ú¿ô¤Î»ØÄê¤Ç¤¹¡£
DOMove ¥á¥½¥Ã¥É¤Ç¤¢¤ì¤ÐÂè1°ú¿ô¤Ï¥ï¡¼¥ë¥ÉºÂɸ(Ä̾ï¤Î Position) ¤ò»ØÄꤷ¤Þ¤¹¡£
¤¿¤À¤·¡¢DOLocalMove ¥á¥½¥Ã¥É¤Î¤è¤¦¤Ë¡¢Local ¤Îñ¸ì¤¬¥á¥½¥Ã¥É¤Ë¤¢¤ì¤Ð¡¢Âè1°ú¿ô¤Ë¤Ï¥í¡¼¥«¥ëºÂɸ(localPosition) ¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢ËÜÍè¤ÎÀµ¤·¤¤½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¤³¤ì¤Ï¾¤Î DOTween ¤Î¾ì¹ç¤âƱÍͤǤ¹¡£Ì¾Á°¤ò¥Ò¥ó¥È¤Ë¡¢ÍøÍѤ¹¤ë°ú¿ô¤¬ÊѤï¤ê¤Þ¤¹¡£
¡¡¤Ç¤¹¤¬º£²ó¤Ï¡¢tran.position ¤Î·Á¤Ç¡¢Local ¤Ç¤Ï¤Ê¤¯¡¢¥ï¡¼¥ë¥ÉºÂɸ¤Ç¤Î Position ¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£
tran.DOLocalMoveX(tran.position.x + 150, 1f).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear);
¡¡¤½¤Î¤¿¤á¡¢·×»»¤¬¤¦¤Þ¤¯¤¤¤«¤º¡¢°ÜÆ°¤ÎÉý¤¬¤½¤ÎÅÔÅÙ¡¢¤Á¤°¤Ï¤°¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤¿¤À¤·¡¢°ÜÆ°¼«ÂΤϤ¹¤ë¤Î¤È¡¢µ¬Â§À¤Î¤Ê¤µ¤¬Å¨¤Î°ÜÆ°¤Ã¤Ý¤¯¤Æ¤¤¤¤¤È´¶¤¸¤¿¤Î¤Ç
º£²ó¤Ï¤³¤ì¤ò¡¢Å¨¤Î¥é¥ó¥À¥àÀ¤È¤¤¤¦Éôʬ¤ÇÍøÍѤ·¤è¤¦¤È¤·¤Æ¡¢¤½¤Î¤Þ¤Þ¤ï¤¶¤ÈÀµ¤·¤¯¤Ê¤¤»ØÄê¤ò¤·¤Æ¤¤¤Þ¤¹¡£
¡¡°Ê¾å¤Î¤³¤È¤«¤é¡¢¥×¥í¥°¥é¥àÆâ¤ÇÄê¿ô¤Ç°ÜÆ°Éý¤ò¤·¤Æ¤¤¤ë¤Î¤Ë¡¢°ÜÆ°Éý¤¬¸ÇÄê¤Ç¤Ï¤Ê¤¯¤Ê¤¼ÊѤï¤ë¤Î¤«¡©¡¡¤È¤¤¤¦¤È
¡Ö°ú¿ô¤Î»ØÄêÀ褬Àµ¤·¤¯¤Ê¤¤¤¿¤á¡¢Ëè²ó¡¢ÉÔ°ÂÄê¤ÊµóÆ°¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡×¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡²¼µ¤Î¤è¤¦¤Ë DOLocalMoveX ¥á¥½¥Ã¥É¤ÎÂè1°ú¿ô¤òÀµ¤·¤¤»ØÄêÀè¤Ë½¤Àµ¤¹¤ë¤³¤È¤Ç¡¢Ëè²ó¡¢Æ±¤¸Éý¤À¤±¤ò°ÜÆ°¤¹¤ë½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
tran.DOLocalMoveX(tran.localPosition.x + 150, 1f).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear);
¡¡´ðËÜŪ¤Ë Canvas Æâ¤Ç¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÜÆ°¤Ï¡¢¾ï¤Ë Canvas ¤«¡¢¤¢¤ë¤¤¤Ï¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤â¤Î¤òÆ°¤«¤¹²ÄǽÀ¤¬¹â¤¤¤Î¤Ç¡¢
¿Æ¤«¤é¤ß¤¿ºÂɸ¤ÇÁêÂÐŪ¤Ë°ÜÆ°¤¬¤Ç¤¤ë Local ¤òÍøÍѤ¹¤ë¤Î¤¬Àµ¤·¤¤¤Ç¤¹¤·¡¢¤½¤¦¤¹¤ë¤³¤È¤Ç¤¹¤Ù¤ÆƱ¤¸µóÆ°¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤Þ¤¿¡¢Canvas ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ï Anchor ¤Î°ÌÃ֤ˤè¤Ã¤Æ¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¥¢¥ó¥«¡¼¤¬Ãæ±ûÃÍ(Middle¡¢Center) ¤Ç¤Ê¤¤¾ì¹ç¡¢DOLocalMove ¤Ç°ÜÆ°¤µ¤»¤ë¤Èͽ´ü¤·¤Ê¤¤Êý¸þ¤Ø°ÜÆ°¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
¡¡¤³¤ì¤ò²óÈò¤¹¤ë¤¿¤á¡¢DOTween ¤Ë¤Ï DOAnchorPos ¤È¤¤¤¦¡¢UI ÍѤΰÜÆ°¤Î¥á¥½¥Ã¥É¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤Á¤é¤òÍøÍѤ¹¤ë¤â¤Î£±¤Ä¤ÎÊýË¡¤Ç¤¹¡£¤³¤Á¤é¤â DOMove ¤ÈƱ¤¸¤Ç¡¢3¼´¤Þ¤È¤á¤ÆÆ°¤«¤¹¥á¥½¥Ã¥É¤È¡¢³Æ¼´¤ò»ØÄꤷ¤ÆÆ°¤«¤¹¥á¥½¥Ã¥É¤¬¤½¤ì¤¾¤ì¤¢¤ê¤Þ¤¹¡£
¡¡¤½¤Î¾ì¹ç¡¢¥á¥½¥Ã¥É¤ÎÌ¿ÎáÀè¤Ï Transform ¤Ç¤Ï¤Ê¤¯¤Æ¡¢RectTransform ¤ËÂФ·¤Æ¼Â¹ÔÌ¿Îá¤ò½Ð¤¹·Á¤Ë¤Ê¤ê¤Þ¤¹¡£
¤½¤ÎÂå¤ï¤ê¤Ë¡¢DOAnchorPos ¤Ç¤¢¤ì¤Ð¡¢Anchor ¤Î°ÌÃ֤˴ط¸¤Ê¤¯¡¢LocalPosition ¤Ç»ØÄꤷ¤¿°ÌÃÖ¤ËÀµ¤·¤¯°ÜÆ°¤Ç¤¤Þ¤¹¡£
¡¡²¼µ¤Î¤è¤¦¤ËÍøÍѤǤ¤Þ¤¹¡£»î¤·¤Ë½ñ¤´¹¤¨¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
private void MoveMeandering(UnityEngine.Transform tran, float duration) { Debug.Log("¼Ø¹Ô"); // DOAnchorPosX¡¢DOAnchorPosY ¤Î¾ì¹ç RectTransform rectTran = tran.GetComponent<RectTransform>(); rectTran.DOAnchorPosX(tran.localPosition.x + 150, 1f).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear); rectTran.DOAnchorPosY(moveLimit, duration); // DOLocalMoveX ¤Î¾ì¹ç //tran.DOLocalMoveX(tran.localPosition.x + 150, 1f).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear); //tran.DOLocalMoveY(moveLimit, duration); }
¡ã½¤Àµ¸å¤ÎÆ°²è¡¡¡¼Æ±¤¸°ÜÆ°Éý¤Ë¸ÇÄê²½¤µ¤ì¤ë¡¼¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
»²¹Í¥µ¥¤¥È
¸¶¥«¥Ð¥ó¤Ï³ó¤Î¤ªÅ¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ÍÍ
¡ÚUnity¡ÛDOTween¤ò»È¤Ã¤¿uGUI¥¢¥Ë¥á¡¼¥·¥ç¥ó
Zenn ¥ª¥ª¥Ð@ohbashunsuke ÍÍ
uGUI - RectTransform¤Î¥È¥¥¥¤¡¼¥ó¡Ã¡ÚUnity¡ÛDOTween¤Î¶µ²Ê½ñ¡Á¥¹¥¯¥ê¥×¥È¤Ç¥¢¥Ë¥á¡¼¥·¥ç¥ó¤òÁà¤ë¥Ð¥¤¥Ö¥ë¡Á
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡¼¡¤Ï¡¡È¯Å¸£±£²¡¡¥¨¥Í¥ß¡¼ÍѤΥХì¥Ã¥È¤ÎºîÀ®¤È¼«Æ°À¸À®½èÍý¤Î¼ÂÁõ¡Ý¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯