ºÇ½ª¹¹¿·¡§
orika_ex_miyako 2023ǯ01·î04Æü(¿å) 22:49:20ÍúÎò
¿·¤·¤¯³Ø½¬¤¹¤ëÆâÍƤ¬Èó¾ï¤Ë¿¤¤¤¿¤á¡¢£±¤Ä¤º¤Ä¡¢Íý²ò¤·¤Ê¤¬¤é¿Ê¤á¤Æ¤¤¤¯¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¥×¥í¥°¥é¥à¤Ï¡¢»öÁ°¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëµ¡Ç½¤ò³èÍѤ·¡¢¤½¤ì¤ò¾å¼ê¤¯ÁȤßΩ¤Æ¤ë¤³¤È¤Ç¥í¥¸¥Ã¥¯¤òºî¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¤è¤Ã¤Æ£±¤Ä£±¤Ä¤Îµ¡Ç½¤¬Íý²ò¤Ç¤¤Æ¤¤¤Ê¤¤¤È¡¢½èÍýÁ´ÂΤòÆɤ߲ò¤±¤Ê¤¯¤Ê¤ê¤Þ¤¹¤·¡¢¼«Ê¬¤Ç¥í¥¸¥Ã¥¯¤òºî¤ë¤³¤È¤âÆñ¤·¤¯¤Ê¤ê¤Þ¤¹¡£
¡¡¤æ¤Ã¤¯¤ê¤È³Ø½¬¤·¡¢É¬ÍפǤ¢¤ì¤ÐÉü½¬¤ò¤ª¤³¤Ê¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¼ê½ç£µ¡¡¡¼¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°µ¡Ç½¤Î¼ÂÁõ¡¼
¡¡¡¦RequireComponent(typeof(¥¯¥é¥¹Ì¾/¥³¥ó¥Ý¡¼¥Í¥ó¥È̾))]°À ¡¡¡¦SerializeField °À ¡¡¡¦TryGetComponent ¥á¥½¥Ã¥É¤È out ¥¡¼¥ï¡¼¥ÉÀë¸À ¡¡¡¦Input.GetAxis ¥á¥½¥Ã¥É ¡¡¡¦FixedUpdate ¥á¥½¥Ã¥É ¡¡¡¦Rigidbody.velocity ÊÑ¿ô¤È velocity ÊÑ¿ô¤òÍøÍѤ·¤¿°ÜÆ° ¡¡¡¦Summary¡Ê¥µ¥Þ¥ê¡¼¡Ëµ¡Ç½
¡¡¡¦Rigidbody.velocity.normalized ÊÑ¿ô ¡¡¡¦Vector3.zero ÊÑ¿ô ¡¡¡¦Quaternion.LookRotation ¥á¥½¥Ã¥É ¡¡¡¦³Ø½¬¤Î¤¿¤á¤Î¹©É×
¡¡£³£Ä¶õ´Ö¤Ë¤ª¤±¤ë¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°¤Ë¤Ä¤¤¤Æ¤Ï¡¢Á°¸åº¸±¦Êý¸þ¤Î°ÜÆ°¤ò¹Ô¤¦·Á¤Î¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£
¾å²¼Êý¸þ(£Ù¼´)¤Î°ÜÆ°¤Ï¼ç¤Ë¥¸¥ã¥ó¥×¤äÍî²¼¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤ìÊÌÅӤΰ㤦¼ê½ç¤ÇÊýË¡¤òÀâÌÀ¤·¤Þ¤¹¡£
¡¡¤Þ¤º¤ÏºÇ½é¤Ë¥×¥ì¥¤¥ä¡¼¤Îʬ¿È¤È¤Ê¤ë£³£Ä¥¥ã¥é¥¯¥¿¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥²¡¼¥à²èÌ̤ËÇÛÃÖ¤·¤Þ¤¹¡£
¤½¤Î¸å¡¢°ÜÆ°ÍѤΥ¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¡¢¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¡¡¤Ê¤ª¡¢¤³¤Î°ÜÆ°ÊýË¡¤Ï´ðËÜŪ¤Ê°ÜÆ°ÊýË¡¤Ç¤¹¡£ÌÜŪ¤Ç¤¢¤ëÇòÇ¥×¥í¥¸¥§¥¯¥È¤Î¤è¤¦¤Ê¥²¡¼¥à¤Ë¤ª¤±¤ë°ÜÆ°¤Î¾ì¹ç¤Ë¤Ï¡¢
¥²¡¼¥àÆâ¤Î¥«¥á¥é¤Î¥¢¥ó¥°¥ë¤â²ÃÌ£¤·¤¿¾å¤Ç¥×¥ì¥¤¥ä¡¼¤ò°ÜÆ°¤µ¤»¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡¡¤è¤Ã¤Æ¡¢¤Þ¤º¤Ï¤³¤Î¼ê½ç¤Ç´ðËÜŪ¤Ê°ÜÆ°ÊýË¡¤ò³Ø½¬¤·¡¢¥«¥á¥é¤Îµ¡Ç½¤ò³Ø½¬¤·¤Æ¤«¤é¡¢¿·¤·¤¤°ÜÆ°ÊýË¡¤ò³Ø½¬¤·¤Æ¤¤¤¯Î®¤ì¤Ç¿Ê¤á¤Þ¤¹¡£
¡¡¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥¹¥¯¥ê¥×¥È¤È¤·¤Æ PlayerMove ¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤Î¥¹¥¯¥ê¥×¥ÈÆâ¤Ë°ÜÆ°¤Î½èÍý¤òµ½Ò¤·¡¢¥×¥ì¥¤¥ä¡¼¤òÀ©¸æ¤·¤Þ¤¹¡£
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤¤¤¯ºÝ¤Ë¤Ï¡¢À衹¤Î¤³¤È¤ò¹Í¤¨¤Æ¡¢»öÁ°¤Ë¥Õ¥©¥ë¥À¤òºîÀ®¤·¡¢¤½¤ÎÃæ¤Ë¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¤¤¤¯¤³¤È¤ò¤ª´«¤á¤·¤Þ¤¹¡£
¡¡Assets ¥Õ¥©¥ë¥ÀÆâ¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¯¤È¡¢Create => Folder ¤È¤¤¤¦¥³¥Þ¥ó¥É¤¬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤Ç¿·¤·¤¤¥Õ¥©¥ë¥À¤òºîÀ®¤Ç¤¤Þ¤¹¡£
Scripts ¤Î¤è¤¦¤Ê¤ï¤«¤ê¤ä¤¹¤¤¤Ç¥Õ¥©¥ë¥À¤òºîÀ®¤·¡¢¤½¤Î¥Õ¥©¥ë¥À¤ÎÃæ¤ÇºÆÅÙ±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¡¢Create => C# Script ¤òÁªÂò¤·¤Æ
¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢Ì¾Á°¤ò PlayerMove ¤ËÊѹ¹¤·¤Æ¤¯¤À¤µ¤¤¡£
¥Õ¥©¥ë¥ÀºîÀ®

PlayerMove.cs
¡¡[] ¤Ç½ñ¤«¤ì¤¿¾ðÊó¤Ï°À¡ÊAttribute¡Ë¤È¸Æ¤Ð¤ì¤ë¤â¤Î¤Ç¤¹¡£
°À¤òÉÕÍ¿¤¹¤ë»ö¤Ç¾¤ÎÊÑ¿ô¤È¶èÊ̤·¤¿¤ê¡¢ÆÃÊ̤ʵóÆ°¤òÀßÄꤹ¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
[RequireComponent(typeof(Rigidbody))] public class PlayerMove : MonoBehaviour {
¡¡¤³¤ÎRequireComponent(¥ê¥¯¥ï¥¤¥¢¡¦¥³¥ó¥Ý¡¼¥Í¥ó¥È)°À¤Ï¡¢¥¯¥é¥¹Ì¾¤Î£±¹Ô¾å¤Ëµ½Ò¤¹¤ë°À¤Ç¤¹¡£
¡¡¤³¤Î°À¤Î(°ú¿ô)¤Ç»ØÄꤷ¤¿¥¯¥é¥¹¤ä¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¡¢¤³¤Î¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¡¢Console ¥Ó¥å¡¼¤Ë¥¨¥é¡¼¤¬½Ð¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¡¡
¡¡¤Þ¤¿¤³¤Î°À¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¹¥¯¥ê¥×¥È¤ò¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤È¡¢°ú¿ô¤Ç»ØÄꤷ¤Æ¤¤¤ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¼«Æ°Åª¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Þ¤¹¡£(º£²ó¤Ï Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È)
¤Ä¤Þ¤ê¤³¤Îµ¡Ç½¤Ï¡¢¥¹¥¯¥ê¥×¥È¤òÀµ¾ï¤ËÆ°ºî¤µ¤»¤ë¤¿¤á¤ËɬÍפʥ³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¶¯À©Åª¤ËÍÑ°Õ¤·¤Æ¤¯¤ì¤ëÆâÍƤˤʤäƤ¤¤Þ¤¹¡£
¡¡
¡¡º£²ó¤³¤Î PlayerMove ¥¹¥¯¥ê¥×¥È¤Ë¤è¤ê Player ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò°ÜÆ°¤µ¤»¤ë¤Ë¤Ï Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬É¬Íפˤʤê¤Þ¤¹¡£
[RequireComponent(typeof(Rigidbody))]°À¤òÄɲ乤뤳¤È¤Ë¤è¤Ã¤Æ¡¢¼«Æ°Åª¤Ë¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥¢¥¿¥Ã¥Á¤ò¹Ô¤¦¤È¤È¤â¤Ë¡¢¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤Ï¥¨¥é¡¼¤¬½Ð¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
RequireComponent
¡¡ÊÑ¿ô¤ÎÀë¸À¤Ë¹ç¤ï¤»¤ÆÀë¸À¤Ç¤¤ë¡¢Â°À¾ðÊó¤È¸Æ¤Ð¤ì¤ë¤â¤Î¤Î£±¤Ä¤Ç¤¹¡£ÊÑ¿ô¤ÎÀë¸À¤ÎÁ°¤Ë [ ] ÉÕ¤¤Ç½ñ¤«¤ì¤¿ÆâÍƤ¬Â°À¾ðÊó¤È¤Ê¤ê¤Þ¤¹¡£
¡¡º£²óÍøÍѤ·¤Æ¤¤¤ë°À¤Ï SerializeField ¤È¤¤¤¦Â°À¾ðÊó¤Ç¤¹¡£¤³¤Îµ¡Ç½¤Ï¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤ËÊÑ¿ô¤òɽ¼¨¤µ¤»¤ë¡¢¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£
¡¡¼ç¤Ë private ½¤¾þ»Ò¤È¥»¥Ã¥È¤ÇÍѤ¤¤é¤ì¡¢¥¢¥µ¥¤¥ó¤ò¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ç²Äǽ¤Ë¤¹¤ë¤â¤Î¤Î¡¢ÊÑ¿ô¤Î»²¾ÈÀ褬³°Éô¤Î¥¹¥¯¥ê¥×¥È¤Ë¤Ê¤¤(public¤ÎɬÍפ¬¤Ê¤¤)¾ì¹ç¤ËÍøÍѤ·¤Þ¤¹¡£
¡¡¤¿¤È¤¨¤Ð Button¥³¥ó¥Ý¡¼¥Í¥ó¥È¤äText¥³¥ó¥Ý¡¼¥Í¥ó¥È¤È¤¤¤Ã¤¿¡¢¥¢¥µ¥¤¥ó¤Ï¤¹¤ë¤â¤Î¤Î¡¢¤½¤ÎÊÑ¿ô¤ÎÍøÍÑÀ褬¾¤Î¥¹¥¯¥ê¥×¥È¤Ë¤Ï¤Ê¤¤¤è¤¦¤Ê¤â¤Î¡¢¤Ë¤ÏÍøÍѤ·¤ä¤¹¤¤¤Ç¤¹¡£
¡¡º£²ó¤Ï¥×¥ì¥¤¥ä¡¼¤Î°Üư®ÅÙ¤òÀßÄꤹ¤ë¤¿¤á¤ÎÊÑ¿ô¤ÎÀë¸À¤Ë°À¾ðÊó¤òÉÕÍ¿¤·¤Æ¤¤¤Þ¤¹¡£
°Üư®Å٤ξðÊó¤ò¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤Ëɽ¼¨¤µ¤»¤ë¤³¤È¤Ë¤è¤ê¡¢°Üư®ÅÙ¤ÎÄ´À°¤Ë¤¢¤¿¤ê¡¢
¥¹¥¯¥ê¥×¥ÈÆâ¤Ç¤½¤ÎÅÔÅÙ½ñ¤Ä¾¤µ¤Ê¤¯¤Æ¤â¤è¤¤¤è¤¦¤Ë¤¹¤ëÌÜŪ¤ÇÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
¡¡Unity2019.2°Ê¹ß¤ËÄɲ䵤줿¥á¥½¥Ã¥É¤Ç¤¹¡£½èÍý·ë²Ì¤È¤·¤Æ bool ·¿¤ÇÌá¤êÃͤòÊÖ¤·¤Æ¤¯¤ì¤Þ¤¹¡£
¤³¤Î¤È¤¤Î½èÍý·ë²Ì¤È¤¤¤¦¤Î¤Ï¡¢»ØÄꤷ¤¿¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î·¿¤Î¼èÆÀ¤ò¹Ô¤¤¡¢¤½¤ì¤¬¼èÆÀ¤Ç¤¤ì¤Ðtrue¡¢¼èÆÀ¤Ç¤¤Ê¤±¤ì¤Ðfalse¤¬Ìá¤ê¤Þ¤¹¡£
¡¡¤Þ¤¿ out ¥¡¼¥ï¡¼¥É¤Ë¤è¤ëÀë¸À¤¬¤¢¤ê¤Þ¤¹¡£
¡¡out ¥¡¼¥ï¡¼¥ÉÀë¸À¤ò¹Ô¤¦¤È¡¢out ¤òÉÕ¤±¤¿°ú¿ô¤Ç»ØÄꤷ¤¿ÊÑ¿ô¤Ï¥á¥½¥Ã¥ÉÆâ¤Çɬ¤º·ë²Ì¤¬Æþ¤ë¤³¤È¤¬Êݾڤµ¤ì¤ë¤â¤Î¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢½èÍý·ë²Ì¤ÎÌá¤êÃͤ¬ true ¤Î¾ì¹ç¤Ë¤Ïɬ¤º¡¢¤³¤Î out ¤Î¸å¤ËÀë¸À¤·¤¿ÊÑ¿ôÆâ¤Ë·¿¤¬ÂåÆþ¤µ¤ì¤Þ¤¹¡£
¡¡Ã¼Åª¤Ë¤¤¤¦¤Ê¤é¤Ð¡¢GetComponent ¥á¥½¥Ã¥É¤Î½èÍý¤Ë²Ã¤¨¤Æ¡¢¤½¤Î½èÍý¤ÎÀ®ÈÝȽÄê(¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¼èÆÀ½ÐÍ褿¤«¡¢½ÐÍè¤Ê¤«¤Ã¤¿¤«)¤òƱ»þ¤Ë¹Ô¤Ã¤Æ¤¯¤ì¤ë¥á¥½¥Ã¥É¤Ë¤Ê¤ê¤Þ¤¹¡£
¡ã¼ÂÁõÎã¡¡ä
private Rigidbody rb; TryGetComponent(out rb);
¡ã¼ÂÁõÎ㢡¡Ìá¤êÃͤò³èÍÑ¡ä
if(col.gameObject.TryGetComponent(out Rigidbody rigid)) { // ½èÍý¤ò½ñ¤¯ }
¡¡º£²ó¤Ï¼ÂÁõÎ㡤νèÍý¤È¤·¤ÆÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£¥¹¥¯¥ê¥×¥ÈÆâ¤Ë TryGetComponent ¥á¥½¥Ã¥É¤òľÀܵ½Ò¤·¤¿¾ì¹ç¡¢GetComponent ¥á¥½¥Ã¥É¤ÈƱÍͤˡ¢
¤³¤Î¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤·¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤«¤é»ØÄꤵ¤ì¤Æ¤¤¤ë¼ïÎà¤Î¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¼èÆÀ¤·¤Æ¤Þ¤¹¡£
¤½¤ì¤ò out ¥¡¼¥ï¡¼¥É¸å¤Î rb ÊÑ¿ô¤ËÂåÆþ¤·¤Æ¤¤¤Þ¤¹¡£GetComponent ¥á¥½¥Ã¥É¤Î¤è¤¦¤Ë<·¿°ú¿ô>¤ò»ØÄꤷ¤Æ¤¤¤Ê¤¤¤Î¤Ï¡¢rb ÊÑ¿ô¤Ë¤è¤Ã¤Æ·¿¤ò¿äÏÀ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¢¤ë¤¿¤á¤Ç¤¹¡£
¡¡out ¥¡¼¥ï¡¼¥É°Ê¹ß¤Ë¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¼èÆÀ¤·¤¿¤¤·¿¤ÈÊÑ¿ô¤òÀë¸À¤·¤Þ¤¹¡£º£²ó¤Î¤è¤¦¤Ë»öÁ°¤ËÊÑ¿ô¤ÎÀë¸À¤ò¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ÊÑ¿ô¤Î¤ß¤òÍÑ°Õ¤·¤Æ¤ª¤¯¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¼ÂÁõÎ㢤ξì¹ç¤Ï¡¢¤â¤·¤â¤³¤Î TryGetComponent ¥á¥½¥Ã¥É¤Î½èÍý·ë²Ì¤¬¼Â¹Ô²Äǽ¤Ê¤é¤Ð¡¢¤Ä¤Þ¤ê¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢
out ¤È¤·¤ÆÍÑ°Õ¤·¤¿ rigid ÊÑ¿ô¤Ë Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤Þ¤¹''¡£¤Þ¤¿¡¢true ¤ÎÃͤ¬¡¢¤½¤ì¤È¤ÏÊ̤˽èÍý·ë²Ì¤È¤·¤ÆÌá¤ê¤Þ¤¹¡£
out ¤ËÍÑ°Õ¤·¤¿ÊÑ¿ô¤¬»öÁ°¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤Î¾ì¹ç(Î㤨¤Ð rb ÊÑ¿ô)¤Ë¤Ï¡¢Àë¸À¤µ¤ì¤Æ¤¤¤¿ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Þ¤¹¡£
¤³¤ÎÊÕ¤ê¤ÏÊÑ¿ô¤Î¥¹¥³¡¼¥×¤ò¹Í¤¨¤Æ¼ÂÁõ¤ò¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
¡¡TryGetComponent ¥á¥½¥Ã¥É¤Î½èÍý·ë²Ì¤¬ false ¤Î¾ì¹ç¤Ë¤Ï Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¼èÆÀ¤¬¤Ç¤¤Ê¤«¤Ã¤¿¤¿¤á¡¢rigid ÊÑ¿ô¤Ï null ¤Î¤Þ¤Þ¤Ç¡¢false ¤¬½èÍý·ë²Ì¤È¤·¤ÆÌá¤ê¤Þ¤¹''¡£
¡¡¤Ê¤ª TryGetComponent ¥á¥½¥Ã¥É¤Ë¤ÏÊ£¿ô¤Î½ñ¼°¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Á¤é¤Ï²¼µ¤Î¥ê¥Õ¥¡¥ì¥ó¥¹¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Component.TryGetComponent
¡¡Ê̤ε»ö¤Ç¾Ü¤·¤¯²òÀ⤷¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò³Îǧ¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡¡=>¡¡Input.GetAxis¥á¥½¥Ã¥É¤ÈInputManager¤Î´ØÏ¢À
¡¡Rigidbody ¤Ë¤è¤ëʪÍý±é»»¤Î½èÍý¤ò·Ñ³Ū¤Ë½èÍý¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢Update ¥á¥½¥Ã¥É¤Ç¤Ï¤Ê¤¯¤Æ FixedUpdate ¥á¥½¥Ã¥É¤òÍøÍѤ·¤ÆÀ߷פò¹Ô¤¤¤Þ¤¹¡£
¡¡FixedUpdate ¥á¥½¥Ã¥É¤Ï½é´üÀßÄê¤Ç¤Ï 0.02ÉÃ(1Éô֤Ë50²ó)¤´¤È¤Î¸ÇÄê¥Õ¥ì¡¼¥à¥ì¡¼¥È¤Ç¡¢ÊªÍý±é»»¤Î½èÍý¤Î¹¹¿·¤ò¹Ô¤¦Ä¾Á°¤Ë¼«Æ°Åª¤Ë¸Æ¤Ó¤À¤µ¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¹¡£
¡¡Update ¥á¥½¥Ã¥É¤Ï¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥ÈÅù¤ÎÆ°ºî¤Î¥ì¥ó¥À¥ê¥ó¥°Á°¤ËËè¥Õ¥ì¡¼¥à¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢
½èÍý¤Î¼Â¹Ô¥¿¥¤¥ß¥ó¥°¤È¥Õ¥ì¡¼¥à¤Î¸Æ¤Ó½Ð¤·¤¬¸ÇÄ꤫¤É¤¦¤«¤¬ Update ¥á¥½¥Ã¥É¤È FixedUpdate ¥á¥½¥Ã¥É¤Î°ã¤¤¤Ç¤¹¡£
¡¡°Ê¾å¤Î¤³¤È¤«¤é¡¢FixedUpdate ¥á¥½¥Ã¥É¤ÏʪÍýµóÆ°¤Î¹¹¿·¤ÎľÁ°¤Ë¸Æ¤Ð¤ì¤ë¥á¥½¥Ã¥É¤Ç¤¢¤ë¤¿¤á¡¢ÊªÍý±é»»¤Î½èÍý¤ò¹Ô¤¦¤³¤È¤ËŬ¤·¤Æ¤¤¤Þ¤¹¤Î¤Ç
Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤òÍøÍѤ·¤¿ÊªÍý±é»»¤òÍѤ¤¤¿°ÜÆ°½èÍý¤Ë¤Ä¤¤¤Æ¤Ï¡¢FixedUpdate ¥á¥½¥Ã¥É¤Ë¤Æ¹Ô¤¦¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
SamuraiBlog ÍÍ
¡ÚUnityÆþÌç¡ÛUpdate¥á¥½¥Ã¥É¤È¤Ï?FixedUpdate¤È¤Î°ã¤¤¤âÅ°Äì²òÀâ!
¤«¤á¤¯¤á ÍÍ
Unity¤ÎUpdate¤ÈFixedUpdate¡¢LateUpdate¥á¥½¥Ã¥É¤Ë¤Ä¤¤¤Æ
¡¡¥¥ã¥é¤Î°ÜÆ°¤Ë¤Ï¿§¡¹¤ÊÊýË¡¤¬¤¢¤ê¤Þ¤¹¤¬¡¢º£²ó¤Ï¡¢Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î´ÉÍý¤·¤Æ¤¤¤ë¡¢Velocity¡Ê¥Ù¥í¥·¥Æ¥£¡£Â®Å٥٥¯¥È¥ë¡Ë¤Î¾ðÊó¤òÁàºî¤·¤Æ¡¢¥¥ã¥é¤ò°ÜÆ°¤µ¤»¤Þ¤¹¡£
Rigidbody ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È(º£²ó¤Ï¥¥ã¥é)¤ËÂФ·¤Æ¡¢Â®ÅÙ¾ðÊó¤òÍ¿¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢¥¥ã¥é¤Î°ÜÆ°¤ò¹Ô¤¦¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£
¡¡velocity(¥Ù¥í¥·¥Æ¥£)¤È¤ÏRigidbody¥¯¥é¥¹¤Î»ý¤Ä¾ðÊó¤Î£±¤Ä¤Ç¡¢³Æ¼´(x,y,z)¤Î®Å٥٥¯¥È¥ë¤òɽ¤·¤Æ¤¤¤Þ¤¹¡£
¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬Ää»ß¤·¤Æ¤¤¤ë¾ì¹ç¡¢velocity¤ÎÃͤϤ¹¤Ù¤Æ 0 ¤Ç¤¹¡£(velocity = 0, 0, 0)
// °ÜÆ°Êý¸þ¤Ë¥¹¥Ô¡¼¥É¤ò³Ý¤±¤Æ°ÜÆ° ¡¡rb.velocity = new Vector3(moveX, rb.velocity.y, moveZ) * moveSpeed;
¡¡X ¼´¤È Z ¼´¤Ë¤Ä¤¤¤Æ¤Ï¡¢³Æ¥¡¼ÆþÎϤÎÃÍ¤È moveSpeed ÊÑ¿ô¤Î·×»»·ë²Ì¤¬Æþ¤ê¡¢¤½¤Î¼´¤ÎÊý¸þ¤Ø°ÜÆ°¤ò¹Ô¤¤¤Þ¤¹¡£
y ¼´¤Ï velocity ÊÑ¿ô¤Î y ¤ÎÃͤ¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢½ÅÎϤ˱ƶÁ¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¥Þ¥¤¥Ê¥¹Êý¸þ¤Ø¤Î®ÅÙ¤¬Æþ¤ê¡¢
¤½¤Î·ë²Ì¡¢ÃÏÌ̤˸þ¤«¤Ã¤ÆÍî²¼¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡½èÍý¤Îľ¸å¤Ë Debug.Log¥á¥½¥Ã¥É¤òÆþ¤ì¤Æ¤ª¤¯¤³¤È¤Ç¡¢Console ¥Ó¥å¡¼¤òÄ̤¸¤Æ¡¢¤³¤Î velocity ¤ÎÃͤÎÆ°¤¤ò´Ñ»¡¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥¡¼ÆþÎϤò¹Ô¤¤¤Ê¤¬¤é¡¢¤É¤Î¤è¤¦¤Ê½èÍý¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Rigidbody-velocity
SamuraiBlog ÍÍ
¡ÚUnityÆþÌç¡ÛRigidbody¤Ç¼«ºß¤Ë°ÜÆ°!velocity¤Î³èÍÑÊýË¡!
¡¡´Ø¿ô¡Ê¥á¥½¥Ã¥É¡Ë¤ä¥¯¥é¥¹¤òºîÀ®¤·½ª¤ï¤ê¤Þ¤·¤¿¤é¡¢É¬¤º¤½¤Î´Ø¿ô¤ä¥¯¥é¥¹¤ÎÀâÌÀ¤ò½ñ¤¯¤è¤¦¤Ë¿´¤¬¤±¤Þ¤·¤ç¤¦¡£½ñ¤¯¾ì½ê¤Ï´Ø¿ô̾¡¢¤¢¤ë¤¤¤Ï¥¯¥é¥¹Ì¾¤Î£±¹Ô¾å¤ÎÉôʬ¤Ç¤¹¡£
Ⱦ³Ñ¥¹¥é¥Ã¥·¥å¤ò3¸ÄϢ³¤Çµ½Ò¤¹¤ë¤ÈÀâÌÀÍѤΥ³¥á¥ó¥È¤Ç¤¢¤ë¥µ¥Þ¥ê¡¼(³µÍ×)¤¬¼«Æ°Åª¤Ëµ½Ò¤µ¤ì¤Þ¤¹¡£
/// <summary> /// °ÜÆ° /// </summary> private void Move() {
¡¡Ê̤ε»ö¤Ç¾Ü¤·¤¯²òÀ⤷¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò³Îǧ¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£
¡¡=>¡¡ÃΤäƤª¤¤¿¤¤Æ¦Ãμ±
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Ë¤¢¤ë¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¡¢Àè¤Û¤ÉºîÀ®¤·¤¿ PlayerMove ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¡¡¥Ò¥¨¥é¥ë¥¡¼¤Î¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤òɽ¼¨¤·¤Æ¡¢PlayerMove ¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£
¡¡MoveSpeed ÊÑ¿ô¤ÎÃͤϥ¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤êÄ´À°¤Ç¤¤Þ¤¹¡£¤³¤ÎÃͤ¬¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°Üư®ÅÙ¤ÎÃͤˤʤê¤Þ¤¹¤Î¤Ç¡¢Å¬µ¹Ä´À°¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£
¡ã¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¡ä

¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£
¡¡¥¡¼ÆþÎϤò¹Ô¤Ã¤¿ºÝ¤Ë¡¢¥×¥ì¥¤¥ä¡¼¤¬¼ÂºÝ¤Ë°ÜÆ°¤¹¤ë¤«¡¢Æ°ºî³Îǧ(¥Ç¥Ð¥Ã¥°)¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¥²¡¼¥à¤ò¼Â¹Ô¤·¡¢Ìð°õ¥¡¼¤Î¾å²¼º¸±¦¡¢¤¢¤ë¤¤¤Ï W¡¢S¡¢A¡¢D ¥¡¼¤ò²¡¤·Â³¤±¤Æ¤¯¤À¤µ¤¤¡£
»ØÄꤷ¤¿Êý¸þ¤Ë°ÜÆ°¤¹¤ì¤Ð¡¢À©¸æ¤ÏÀ®¸ù¤Ç¤¹¡£
¡¡¤¿¤À¤·¡¢¸½»þÅÀ¤Ç¤Ï¥«¥á¥é¤Ï¥×¥ì¥¤¥ä¡¼¤òÄɽ¾¤·¤Þ¤»¤ó¤Î¤Ç¡¢¥×¥ì¥¤¥ä¡¼¤Î¤ß¤¬°ÜÆ°¤¹¤ëÀ©¸æ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢¥×¥ì¥¤¥ä¡¼¤Î¸þ¤(³ÑÅÙ)¤âÊѲ½¤·¤Þ¤»¤ó¡£
¡¡¤³¤ì¤é¤Ï¤¤¤º¤ì¤â¡¢¤½¤ì¤é¤ÎÆ°ºî¤ËÂФ·¤Æ¤ÎÀ©¸æ¤¬¹Ô¤ï¤ì¤Æ¤¤¤Ê¤¤¤¿¤á¤Ç¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡Àµ¾ï¤ËÆ°ºî¤·¤¿¾ì¹ç¡¢¤½¤ì¤Ç½ª¤ï¤ê¡¢¤Ç¤Ï¤Ê¤¯¤Æ¡¢¥×¥í¥°¥é¥à¤òÆɤßľ¤·¡¢
¤É¤Î¤è¤¦¤Ê½èÍý¤Ë¤è¤Ã¤Æ¡¢º£²ó¤Î°ÜÆ°¤ÎÀ©¸æ¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤«¤ò¡¢¤·¤Ã¤«¤ê¤ÈÆɤ߲ò¤±¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¡¡¤Ç¤Ï³¤±¤Æ¡¢°ÜÆ°¤Ë¹ç¤ï¤»¤Æ¥×¥ì¥¤¥ä¡¼¤Î¸þ¤(³ÑÅÙ)¤òÊѹ¹¤¹¤ëÉôʬ¤Ë¤Ä¤¤¤Æ½¤Àµ¤ò¹Ô¤¤¤Þ¤¹¡£
£²¡¥PlayerMove ¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¡¢¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°ÊýË¡¤È¥×¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤(³ÑÅÙ)¤ò°ìÃפµ¤»¤ë 
¡¡¥×¥ì¥¤¥ä¡¼¤ÎÍÑ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ï°ÜÆ°¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¤¬¡¢°ÜÆ°¤¹¤ë¤À¤±¤Ç¤¢¤Ã¤Æ¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤¤ÏÊѹ¹¤µ¤ì¤Þ¤»¤ó¡£
¤Ä¤Þ¤ê¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤(³ÑÅÙ)¤ò°ìÃפµ¤»¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ò½ñ¤«¤Ê¤¤¤È¡¢¼«Æ°Åª¤Ë¸þ¤¤ò¹ç¤ï¤»¤Æ¤¯¤ì¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¡¡¤³¤Î¤è¤¦¤Ë¡¢¤¤¤Ä¤âÍ·¤ó¤Ç¤¤¤ë¥²¡¼¥à¤ÇÅö¤¿¤êÁ°¤ËÆ°¤¤¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤ë¤â¤Î¤â¡¢
¤¹¤Ù¤Æ¡¢ÆâÉô¤Î¥×¥í¥°¥é¥à¤Ë¤è¤Ã¤ÆÀ©¸æ¤ò¤·¤Æ¤¤¤ë¡¢¤È¤¤¤¦¤³¤È¤òǧ¼±¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Ã¤Æ¤¯¤À¤µ¤¤¡£
¡¡¤³¤³¤Ç¤Ï¥×¥ì¥¤¥ä¡¼¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÀ©¸æ¤¹¤ë¤¿¤á¤ËºîÀ®¤·¤¿ PlayerMove ¥¹¥¯¥ê¥×¥È¤Ë½èÍý¤òÄɲä·¡¢
¥×¥ì¥¤¥ä¡¼¤¬°ÜÆ°¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¤½¤Î°ÜÆ°¤·¤Æ¤¤¤ëÊý¸þ¤Ë¹ç¤ï¤»¤Æ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È(¥×¥ì¥¤¥ä¡¼)¤Î¸þ¤¤òÊѤ¨¤ë¤¿¤á¤Î¥×¥í¥°¥é¥à¤òÄɲä·¤Þ¤¹¡£
¡¡¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°¤Î½èÍý¤Ï¡¢ÆâÉôŪ¤Ë¤ß¤ì¤Ð¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎºÂɸ¤Î°ÌÃ֤ι¹¿·¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢
¥×¥ì¥¤¥ä¡¼¤Î¸þ¤¤òÊѤ¨¤ë½èÍý¤Ï¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î³ÑÅ٤ι¹¿·¤Ë¤è¤Ã¤ÆÀ©¸æ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£
PlayerMove.cs
¡¡¤³¤Î¾ðÊó¤Ï¡¢velocity ¤Î¥Ç¡¼¥¿·¿¤Ç¤¢¤ë Vector3 ¤Ë´ð¤Å¤¤¤Æ¤¤¤ë¾ðÊó¤Ç¤¹¡£
velocity ÊÑ¿ô¤Ï Vector3 ·¿¤Ç¤¢¤ë¤¿¤á¡¢Vector3 ·¿¤Ë´ØÏ¢¤¹¤ë¾ðÊó¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤½¤Î¤¿¤á¡¢¤³¤Î Rigidbody.velocity.normalized ÊÑ¿ô¤È¤Ï¡¢¿·¤·¤¤·¿¤Î¾ðÊó¤Ê¤Î¤Ç¤Ï¤Ê¤¯¤Æ
Rigidbody Æâ¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë Vector3 ·¿¤Î velocity ÊÑ¿ô¤¬¤¢¤ê¡¢¤½¤Î velocity ÊÑ¿ô¤È¤Ï Vector3 ·¿¤Ç¤¢¤ë¤¿¤á¡¢
Vector3 ·¿¤«¤é¼èÆÀ¤Ç¤¤ë normalized ÊÑ¿ô¤Î¾ðÊó¤ò¼èÆÀ¤·¤Æ¤¤¤ë(Vector3.normalized ÊÑ¿ô¤Ç¤¢¤ë)¡¢¤È¤¤¤¦½èÍý¤Îή¤ì¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡ÊÑ¿ô̾¤ËÏǤ蘆¤ì¤Ê¤¤¤è¤¦¤Ë¡¢¥Ç¡¼¥¿·¿¤ÎÆâÍƤò¸«¶Ë¤á¤Æ¤¤¤¯¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç½èÍý¤¬Æɤ߲ò¤±¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤Ê¤ª Vector3.normalized ÊÑ¿ô¤Ë¤Ä¤¤¤Æ¤Ï¤¹¤Ç¤Ë³Ø½¬ºÑ(Unity ¤Î¶µ²Ê½ñ¤Ê¤É)¤Ç¤¢¤ë¤¿¤á¡¢¼«Ê¬¤ÇºÆÅÙÄ´¤Ù¤ÆÉü½¬¤·¤Æ¤ª¤¯¤È¤è¤¤¤Ç¤·¤ç¤¦¡£
¡ã»²¹Í¥µ¥¤¥È¡ä
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¡¦¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3.normalized
TechProjinÍÍ
Unity¤ÎVector3¤Ç¤è¤¯»È¤¦¤â¤Î¤Þ¤È¤á
¡¡normalized ÊÑ¿ô¤ÈƱ¤¸¤è¤¦¤Ë¡¢Vector3 ·¿¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëÃͤǤ¹¡£
¤³¤Î zero ÊÑ¿ô¤Ï¿·¤·¤¯ (0, 0, 0) ¤ÎÃͤò¥¤¥ó¥¹¥¿¥ó¥¹¤·¤Þ¤¹¡£
¡¡Vector3 ·¿¤Ë¤Ï¾¤Ë¤âÊØÍø¤ÊÊÑ¿ô¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢³Ð¤¨¤Æ¤ª¤¯¤È¸úΨ¤Î¤è¤¤¥×¥í¥°¥é¥à¤òµ½Ò¤¹¤ë¤³¤È¤¬½ÐÍè¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¤Þ¤º¤Ï¸ø¼°¥µ¥¤¥È¤Î¥Þ¥Ë¥å¥¢¥ë¤ä¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹¤ËÌܤòÄ̤ëÊʤò¤Ä¤±¤Þ¤·¤ç¤¦¡£
»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3 .zero
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3
¡¡Quaternion ¹½Â¤ÂΤËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò²óž¤µ¤»¤ë static ¥á¥½¥Ã¥É¤Ç¤¹¡£
LookRotation ¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢°ú¿ô¤Ë»ØÄꤷ¤¿ Vector3 ·¿¤Î¾ðÊó¤ò Quaternion ·¿¤ËÊÑ´¹¤·¤Þ¤¹¡£(Ìá¤êÃͤη¿¤¬ Quaternion ·¿¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹)
transform.rotation = Quaternion.LookRotation(rb.velocity.normalized);
¡¡transform.rotation ÊÑ¿ô¤Ï Vector3 ·¿¤Ç¤Ï¤Ê¤¯¡¢Quaternion ·¿¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢Vector3 ·¿¤ÎÃͤò¤½¤Î¤Þ¤Þ transform.rotation ÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤»¤ó¡£
¡¡¾åµ¤Î¤è¤¦¤Ë¡¢Quaternion.LookRotation ¥á¥½¥Ã¥É¤ò³èÍѤ¹¤ë¤³¤È¤Ç¡¢Vector3 ·¿¤Î¾ðÊó¤ò Quaternion ·¿¤ËÊÑ´¹¤·¡¢ÂåÆþ½èÍý¤òÀ®Î©¤µ¤»¤Æ¤¤¤Þ¤¹¡£
¡¡¤Ê¤ª¡¢Vector3 ·¿¤Î¾ðÊó¤ò¤½¤Î¤Þ¤Þ²óž¾ðÊó¤È¤·¤ÆÂåÆþ¤¹¤ë¤Ë¤Ï¡¢Quaternion.LookRotation ¥á¥½¥Ã¥É¤Ç¤Ï¤Ê¤¯¡¢Transform.eulerAngles ÊÑ¿ô¤òÍøÍѤ·¤Þ¤¹¡£
»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Quaternion.LookRotation
hildsoft¤Î¥³¡¼¥ÉÃÖ¤¾ì ÍÍ
Unity¤ÇÂоݤȤʤ륪¥Ö¥¸¥§¥¯¥È¤ò¸þ¤¯¤è¤¦¤Ë²óž¤µ¤»¤¿¤¤(Quaternion.LookRotation)
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Transform-eulerAngles
¡¡Äɲä·¤¿½èÍý¤ÎÆâÍƤò¸«Ä¾¤·¡¢½èÍý¤ÎÆâÍƤòÍý²ò¤·¤¿¾å¤Ç¥²¡¼¥à¤ò¼Â¹Ô¤·¤Æ¡¢Æ°ºî¤Î³Îǧ¤ò¹Ô¤¤¤Þ¤¹¡£
¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯
¡¡¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°¤Ë¹ç¤ï¤»¤Æ¡¢¸þ¤¤¬ÊѤï¤ê¡¢¾ï¤Ë°ÜÆ°¤¹¤ëÊý¸þ¤ò¸þ¤¯¤è¤¦¤Ë¤Ê¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£
(¥«¥á¥é¤ÎÄɽ¾À©¸æ¤Ï¤Þ¤À¤Ç¤¹)
¡¡¤Ê¤ª¡¢³ÑÅÙ¤ÎÀ©¸æ¤¹¤ë½èÍý¤Ë¤Ï if ʸ¤Ë¤è¤ëʬ´ô¤¬¤¢¤ê¤Þ¤·¤¿¡£
¤³¤Îʬ´ô¤ÎÍýͳ¤ò³Î¤«¤á¤ë¤¿¤á¤Ë¤â¡¢°ìÅÙ¡¢Ê¬´ô¤ÎÉôʬ¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
³ÑÅÙ¤ÎÀ©¸æ¤Ë¤Ä¤¤¤Æ¡¢Í½´ü¤·¤Æ¤¤¤Ê¤¤½èÍý¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤ï¤«¤ë¤È»×¤¤¤Þ¤¹¡£
¡ã¥¹¥¯¥ê¥×¥È¤Ë¤è¤ëÀ©¸æ¤Î³Îǧ¡ä
//if (rb.velocity.normalized != Vector3.zero) { // if ʸ¤Ë¤è¤ëʬ´ô¤ò¤Ê¤¯¤·¡¢¤³¤Î½èÍý¤ò¡¢¾ï¤ËÆ°¤¯½èÍý¤ËÊѹ¹¤·¤Æ¤ß¤ë transform.rotation = Quaternion.LookRotation(rb.velocity.normalized); //}
¡¡µ¤¤Ë¤Ê¤Ã¤¿Éôʬ¤Ï¤³¤Î¤è¤¦¤Ë¤·¤Æ¡¢½èÍý¤Î¥³¥á¥ó¥È¥¢¥¦¥È¤Ê¤É¤ò¤¹¤ë¤³¤È¤Ç¡¢¤É¤¦¤¤¤Ã¤¿½èÍý¤¬Æ°¤¤¤Æ¤¤¤ë¤Î¤«¤òÍý²ò¤¹¤ë¾å¤ÇÌòΩ¤Á¤Þ¤¹¡£
³Ø½¬¤Ë¤Ï¹©Éפ¬É¬ÍפǤ¹¡£¥×¥í¥°¥é¥à¤Ø¤ÎÍý²ò¤ò¿¼¤á¤Æ¤¤¤¯¤¿¤á¤Ë¤Ï¤É¤¦¤¤¤Ã¤¿¤³¤È¤ò¹Í¤¨¤ì¤Ð¤¤¤¤¤Î¤«¡¢¼«Ê¬¤Ê¤ê¤Ë¹Í¤¨¤Æ¤¤¤¯¤³¤È¤¬½ÅÍפǤ¹¡£
¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£
¡¡=>¡¡¼¡¤Ï¡¡¼ê½ç£¶¡¡¡¼¥«¥á¥é¤ÎÄɽ¾µ¡Ç½¤Î¼ÂÁõ¡¼¡¡¤Ç¤¹¡£
- ¥«¥Æ¥´¥ê¡§
- ¿Ê³Ø/¥¹¥¯¡¼¥ë
- ¥×¥í¥°¥é¥ß¥ó¥°
¥³¥á¥ó¥È¤ò¤«¤¯