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

¡¡¤³¤Î¼ê½ç¤Ç¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°À©¸æ¤ò½¤Àµ¤·¡¢¥«¥á¥é¤ÎÀµÌÌÊý¸þ¤ò´ð½à¤È¤·¤¿°ÜÆ°ÊýË¡¤ò¿·¤¿¤Ë¼ÂÁõ¤·¤Þ¤¹¡£
¤Þ¤¿¡¢¤½¤ì¤È¹ç¤ï¤»¤Æ¡¢¥Þ¥¦¥¹¤Ë¤è¤ë¥«¥á¥é¤Î¾å²¼º¸±¦²óž¤Îµ¡Ç½¤âÄɲä·¡¢¥«¥á¥é¤È°ÜÆ°¤È¤òϢư¤µ¤»¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¤³¤ì¤Ë¤è¤ê¡¢¥«¥á¥é¤òº¸±¦Êý¸þ¤Ë²óž¤µ¤»¤¿¾ì¹ç¤Ç¤â¡¢¾ï¤Ë¥«¥á¥é¤ÎÀµÌ̤˸þ¤«¤Ã¤Æ°ÜÆ°¤¹¤ëµ¡Ç½¤¬¼ÂÁõ½ÐÍè¤Þ¤¹¡£

¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯

¼ê½ç£·¡¡¡¼¥«¥á¥é¤ÎÀµÌÌÊý¸þ¤ò´ð½à¤È¤·¤¿¡¢¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°µ¡Ç½¤Î¼ÂÁõ¡¼



¡¡¡¦Camera.main ÊÑ¿ô
¡¡¡¦Transform.forward ÊÑ¿ô/ Transform.right ÊÑ¿ô
¡¡¡¦Vector3.Scale ¥á¥½¥Ã¥É

¡¡¡¦Transform.RotateAround ¥á¥½¥Ã¥É
¡¡¡¦Transform.localEulerAngles ÊÑ¿ô



£±¡¥¥«¥á¥é¤ÎÀµÌÌÊý¸þ¤ò´ð½à¤È¤·¤¿¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°µ¡Ç½¤ò¼ÂÁõ¤¹¤ë

£±¡¥Àß·×


¡¡¸½ºß¤Î¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°ÊýË¡¤Î¾ì¹ç¡¢¥«¥á¥é¤Îº¸±¦²óž¤¬¤Ê¤¤¤¿¤á¡¢¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°À褬ÊѤï¤Ã¤Æ¤â¥«¥á¥é¤Ï²óž¤·¤Þ¤»¤ó¡£
¤½¤Î¤¿¤á¡¢¸ÇÄê²½¤µ¤ì¤Æ¤¤¤ë¥«¥á¥é¤Î¸µ¤Ç¥×¥ì¥¤¥ä¡¼¤¬Á°¸åº¸±¦¤Ë°ÜÆ°¤·¤Æ¤¤¤ë·Á¼°¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¡ÇòÇ­¥×¥í¥¸¥§¥¯¥È¤Ê¤É¿¤¯¤Î¥²¡¼¥à¤Î¾ì¹ç¡¢¥«¥á¥é¤Î¸þ¤­¤òº¸±¦²óž¤µ¤»¤ëµ¡Ç½¤¬¤¢¤ê¡¢
¤½¤Î²óžÀè¤ËÂФ·¤ÆÁ°¿Ê¤¹¤ë¤è¤¦¤Ê»ÅÁȤߤǥץ쥤¥ä¡¼¤Î°ÜÆ°¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤ò¼çÂΤȤ·¤¿°ÜÆ°¤Ç¤Ï¤Ê¤¯¤Æ¡¢¥«¥á¥é¤ÎÀµÌÌÊý¸þ¤Î¾ðÊó¤ò¼çÂΤȤ·¤¿°ÜÆ°¤ËÀÚ¤êÂؤ¨¤ë¤³¤È¤Ç¼ÂÁõ½ÐÍè¤Þ¤¹¡£

¡¡¤³¤Î¼ê½ç¤Ï¡¢¿·¤·¤¤¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Æ¡¢¥×¥ì¥¤¥ä¡¼¤Î°ÜÆ°ÊýË¡¤òÊѹ¹¤·¤Æ¤¤¤­¤Þ¤¹¡£

¡¡¤³¤Á¤é¤Î¥µ¥¤¥ÈÆâ¤Î¥¹¥¯¥ê¥×¥È¤Ï¡¢²¼µ­¤Îµ­»ö¤ò»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤¤¤Æ¤ª¤ê¤Þ¤¹¡£
¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
TechProjin ÍÍ
Unity¤Ç¥«¥á¥é¤Î¸þ¤­¤ò´ð½à¤Ë°ÜÆ°¤¹¤ëÊýË¡¤È¡¢Äɽ¾¤·¤Æ²óž¤Ç¤­¤ë¥«¥á¥é¤Î¼ÂÁõ
https://tech.pjin.jp/blog/2016/11/04/unity_skill_5...


£²¡¥PlayerController ¥¯¥é¥¹¤òºîÀ®¤¹¤ë


¡¡¥×¥ì¥¤¥ä¡¼¤Î¾ðÊó¤ò´ÉÍý¤¹¤ë¤¿¤á¤Î¥¹¥¯¥ê¥×¥È¤È¤·¤Æ PlayerController ¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤Î¥¹¥¯¥ê¥×¥ÈÆâ¤Ë¥«¥á¥é¤Î¾ðÊó¤ò¸µ¤Ë¤·¤¿°ÜÆ°¤Î½èÍý¤òµ­½Ò¤·¡¢¥×¥ì¥¤¥ä¡¼¤òÀ©¸æ¤·¤Þ¤¹¡£

¡¡¼ê½ç£µ¤ÇºîÀ®¤·¤¿ PlayerMove ¥¹¥¯¥ê¥×¥È¤È¤Î°ã¤¤¤Ï¡¢°ÜÆ°»þ¤ÎÀ©¸æÉôʬ(Move ¥á¥½¥Ã¥É¤ÎÆâÍÆ)¤Î¤ß¤Ç¤¹¡£
¤½¤Î¤¿¤á¡¢Àë¸À¤¹¤ëÊÑ¿ô¡¢ÄêµÁ¤¹¤ë¥á¥½¥Ã¥É¤Ê¤É¤ÏƱ¤¸¤Ç¤¹¡£
ÍøÍѤ·¤Æ¤¤¤ë½èÍý¤ÎÉü½¬¤Ë¤â¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢´°À®¤·¤Æ¤«¤é¸«Èæ¤Ù¤Æ¤ß¤ë¤È¤è¤¤³Ø½¬¤Ë¤Ê¤ê¤Þ¤¹¡£



PlayerController.cs

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



£³¡¥¡ãCamera.main ÊÑ¿ô¡ä


¡¡¥¹¥¯¥ê¥×¥ÈÆâ¤Ç Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤ò°·¤¦¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ëÊÑ¿ô¤Ç¤¹¡£
¤³¤ÎÃͤˤϡ¢Unity ¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤Ë¼èÆÀ¤µ¤ì¤¿¾ðÊó¤¬ÂåÆþ¤µ¤ì¤Æ¤ª¤ê¡¢¶ñÂÎŪ¤Ë¤Ï¡¢
¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¤¦¤Á¡¢"MainCamera" ¤Î¥¿¥°ÉÕ¤±¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë
ºÇ½é¤ÎÍ­¸ú¤Ê Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤ÎÃͤÏÆɤ߼è¤êÀìÍѤÎÊÑ¿ô¤Ç¤¹¤Î¤Ç¡¢»²¾È¤Ï²Äǽ¤Ç¤¹¤¬¡¢ÂåÆþ¤·¤¿¤ê¤¹¤ë¤³¤È¤Ï½ÐÍè¤Þ¤»¤ó¡£

¡¡½é´üÀßÄê¤È¤·¤Æ¡¢¥Ò¥¨¥é¥ë¥­¡¼¤Ë Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï MainCamera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¤ß¤Ç¤¢¤ê¡¢
¤Þ¤¿¡¢¤³¤Î MainCamera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤Ï MainCamera ¤Î¥¿¥°¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢Ê£¿ô¤Î¥«¥á¥é¤òÄɲä·¤¿¤ê¡¢¥¿¥°¤òÊѹ¹¤·¤Æ¤¤¤Ê¤¤¸Â¤ê¤Ï
MainCamera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤¬ Camera.main ÊÑ¿ô¤ÎÃͤȤʤê¤Þ¤¹¡£

¡¡¤³¤ÎÊÑ¿ô¤Ë¤è¤ê¡¢¥¹¥¯¥ê¥×¥ÈÆâ¤Ç Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤òÍøÍѤ·¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢
»öÁ°¤Ë GameObject.Find ¥á¥½¥Ã¥É¤Ç¥«¥á¥é¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¸«¤Ä¤±¤Æ¤­¤¿¤ê¡¢
¤½¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ GetComponent ¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¾ðÊó¤ò½àÈ÷¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£

¡¡Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÏÍøÍѤ¹¤ëµ¡²ñ¤¬Â¿¤¤¤Î¤Ç¡¢¤¹¤°¤ËÍøÍѤǤ­¤ë(¼èÆÀ¤ò¾Êά¤Ç¤­¤ë)¤¿¤á¤Ë¡¢Camera.main ÊÑ¿ô¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Camera.main
TechProjin ÍÍ
¡ÚUnity¡Û¥¹¥¯¥ê¥×¥È¤«¤éMain Camera¤ò¼èÆÀ¤¹¤ë¤Î¤Ï´Êñ¤À¤è


£´¡¥¡ãTransform.forward ÊÑ¿ô/ Transform.right ÊÑ¿ô¡ä


¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤­¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ëÊÑ¿ô¤Ç¤¹¡£
transform ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤­¤Î¾ðÊ󤬼èÆÀ½ÐÍè¤Þ¤¹¡£

¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀµÌ̤θþ¤­¤Ï¡¢Transform.forward ÊÑ¿ô¤Ç¼èÆÀ½ÐÍè¤Þ¤¹¡£
Scene ¥Ó¥å¡¼¤Ë¤¢¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤¿¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë¡¢Z ¼´¸þ¤­¡ÊÀÄ¿§)¤ÎÌð°õ(¥Ù¥¯¥È¥ë)¤ËÁêÅö¤¹¤ë¾ðÊó¤Ç¤¹¡£

¡¡¤³¤ÎÃͤϥ¥ë¥ÉºÂɸ·Ï¤ÇÀµµ¬²½(Ťµ¤¬ 1 ¤Îñ°Ì¥Ù¥¯¥È¥ë)¤µ¤ì¤¿¥Ù¥¯¥È¥ë¤Ç¤¢¤ê¡¢¤½¤ì¤¾¤ì¡¢(0, 0, 1) ¤ÎÃͤȤʤê¤Þ¤¹¡£

¡¡¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹¤Ë¤Ï¡¢Vector3.forward ÊÑ¿ô¤È¤Î°ã¤¤¤Ë¤Ä¤¤¤Æ¤âµ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£


¡ã¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹¤ÈËÝÌõ¡ä
Returns a normalized vector representing the blue axis of the transform in world space.
¡¡¡¡¥ï¡¼¥ë¥É¶õ´Ö¤Ç¤Î¥È¥é¥ó¥¹¥Õ¥©¡¼¥à¤ÎÀļ´¤òɽ¤¹Àµµ¬²½¤µ¤ì¤¿¥Ù¥¯¥È¥ë¤òÊÖ¤·¤Þ¤¹¡£

The example below shows how to manipulate a GameObject¡Çs position on the Z axis (blue axis) of the transform in world space.
¡¡¡¡°Ê²¼¤ÎÎã¤Ï¡¢¥ï¡¼¥ë¥É¶õ´Ö¤Ç¤Î¥È¥é¥ó¥¹¥Õ¥©¡¼¥à¤Î Z ¼´ (ÀĤ¤¼´) ¾å¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°ÌÃÖ¤òÁàºî¤¹¤ëÊýË¡¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£

Unlike Vector3.forward, Transform.forward moves the GameObject while also considering its rotation.
¡¡¡¡Vector3.forward ¤È¤Ï°Û¤Ê¤ê¡¢Transform.forward ¤Ï²óž¤â¹Íθ¤·¤Ê¤¬¤é GameObject ¤ò°ÜÆ°¤·¤Þ¤¹¡£

When a GameObject is rotated, the blue arrow representing the Z axis of the GameObject also changes direction.
¡¡¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬²óž¤¹¤ë¤È¡¢¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î Z ¼´¤òɽ¤¹ÀĤ¤Ìð°õ¤âÊý¸þ¤¬ÊѤï¤ê¤Þ¤¹¡£

Transform.forward moves the GameObject in the blue arrow¡Çs axis (Z).
¡¡¡¡Transform.forward ¤Ï¡¢GameObject ¤òÀĤ¤Ìð°õ¤Î¼´ (Z) ¤Ë±è¤Ã¤Æ°ÜÆ°¤·¤Þ¤¹¡£

For moving the GameObject on the Z axis while ignoring rotation, see Vector3.forward.
¡¡¡¡²óž¤ò̵»ë¤·¤Æ Z ¼´¾å¤Ç¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò°ÜÆ°¤¹¤ë¤Ë¤Ï¡¢Vector3.forward ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£


»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Transform-forward



¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î±¦¤Î¸þ¤­¤Ï Transform.right ÊÑ¿ô¤«¤é¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
Scene ¥Ó¥å¡¼¤Ë¤¢¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¤¿¤È¤­¤Ëɽ¼¨¤µ¤ì¤ë¡¢X ¼´¸þ¤­¡ÊÀÖ¿§)¤ÎÌð°õ(¥Ù¥¯¥È¥ë)¤ËÁêÅö¤¹¤ë¾ðÊó¤Ç¤¹¡£

¡¡¤³¤ÎÃͤϥ¥ë¥ÉºÂɸ·Ï¤ÇÀµµ¬²½¤µ¤ì¤¿(Ťµ¤¬ 1 ¤Îñ°Ì¥Ù¥¯¥È¥ë)¤µ¤ì¤¿¥Ù¥¯¥È¥ë¤Ç¤¢¤ê¡¢¤½¤ì¤¾¤ì¡¢(1, 0, 0) ¤ÎÃͤȤʤê¤Þ¤¹¡£
Vector3.up ¤È¤Î°ã¤¤¤â¡¢Transform.forward ÊÑ¿ô¤ÈƱ¤¸¤Ç²óž¾ðÊó¤ò»²¾È¤¹¤ë¤«¡¢¤·¤Ê¤¤¤«¤Ë¤¢¤ê¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Transform-right



¡¡¤³¤³¤Ç¤Ï¼è¤ê¾å¤²¤Þ¤»¤ó¤¬¡¢¾åÊý¸þ¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤ë Transform.up ÊÑ¿ô¤âÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
³Ð¤¨¤Æ¤ª¤¯¤ÈÊØÍø¤ÊÊÑ¿ô·²¤Ç¤¹¡£


»²¹Í¥µ¥¤¥È
¤Í¤³¤¸¤ã¤é¥·¥Æ¥£ ÍÍ
¡ÚUnity¡Û¥ª¥Ö¥¸¥§¥¯¥È¤Î¸þ¤­¤ò¼èÆÀ¤¹¤ë


£µ¡¥¡ãVector3.Scale ¥á¥½¥Ã¥É¡ä


¡¡Unity ¤Î Vector3 ¤Î°·¤¨¤ë¾ðÊó¤Î£±¤Ä¤Ç¤¹¡£

¡¡Âè1°ú¿ô¤Î³ÆÀ®Ê¬¤È¡¢Âè2°ú¿ô¤ÎƱ¤¸À®Ê¬¤ò¾è»»¤·¤¿·ë²Ì¤ò¡¢Ìá¤êÃͤȤ·¤Æ Vector3 ·¿¤Ç¼èÆÀ¤·¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢·×»»·ë²Ì¤òÂåÆþ¤¹¤ë Vector3 ·¿¤ÎÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

  // ¥«¥á¥é¤ÎÊý¸þ¤«¤é¡¢X-ZÊ¿Ì̤Îñ°Ì¥Ù¥¯¥È¥ë¤ò¼èÆÀ
  Vector3 cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized;

¡¡Camera.main.transform.forward ¤Ë¤Ï¡¢(0, 0, 1) ¤ÎÃͤ¬ÂåÆþ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤ËÂФ·¤Æ¡¢new Vector3(1, 0, 1)¤ò¾è»»¤·¤Þ¤¹¡£
¾åµ­¤Î¾ì¹ç¡¢(0 * 1, 0 * 1, 1 * 1)¡¡¤È¤¤¤¦·×»»¤¬¹Ô¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡X ¼´¤È Y ¼´¤Ë¤Ï¾ï¤Ë 0 ¤ÎÃͤ¬¾è»»¤µ¤ì¤ë¤¿¤á¡¢½èÍý¤Î·ë²Ì¤È¤·¤Æ¡¢Z ¤Î¾ðÊó¤Ï¤½¤Î¤Þ¤Þ¡¢X ¤È Y ¤Ï 0 ¤È¤¤¤¦·ë²Ì¤¬Ìá¤êÃͤȤ·¤ÆÆÀ¤é¤ì¤Æ¡¢
¤½¤ÎÃͤ¬ cameraForward ¤ÎÃͤËÂåÆþ¤µ¤ì¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢Camera.main.transform.forward ¤ÎÃͤ«¤é X À®Ê¬¤È Y À®Ê¬¤ò½üµî¤·¡¢0 ¤Ë¤¹¤ë¤³¤È¤¬½ÐÍè¤Æ¤¤¤Þ¤¹¡£

¡¡¤½¤Î¸å¡¢³ÆÀ®Ê¬¤Î·×»»·ë²Ì¤ËÂФ·¤Æ¡¢normalized ÊÑ¿ô¤¬Å¬ÍѤµ¤ì¡¢Ã±°Ì¥Ù¥¯¥È¥ë¤ÎÃͤËÊÑ´¹¤µ¤ì¤Æ¤¤¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Vector3.Scale
¤Í¤³¤¸¤ã¤é¥·¥Æ¥£ ÍÍ
¡ÚUnity¡Û¥Ù¥¯¥È¥ëAPI¤ÎÆâÉô·×»»¼°¤Þ¤È¤á


£¶¡¥¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë PlayerController ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤¹¤ë


¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Ë¤¢¤ë¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¡¢PlayerMove ¥¹¥¯¥ê¥×¥È¤ò Remove(ºï½ü)¤·¤Þ¤¹¡£
¤½¤Î¸å¡¢Àè¤Û¤ÉºîÀ®¤·¤¿ PlayerController ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£

¡¡¥Ò¥¨¥é¥ë¥­¡¼¤Î¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÁªÂò¤·¡¢¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤òɽ¼¨¤·¤Æ¡¢PlayerController ¥¹¥¯¥ê¥×¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò³Îǧ¤·¤Þ¤¹¡£

¡¡MoveSpeed ÊÑ¿ô¤ÎÃͤϥ¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤êÄ´À°¤Ç¤­¤Þ¤¹¡£¤³¤ÎÃͤ¬¥×¥ì¥¤¥ä¡¼ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î°Üư®ÅÙ¤ÎÃͤˤʤê¤Þ¤¹¤Î¤Ç¡¢Å¬µ¹Ä´À°¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£


¡ã¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü¡ä



¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£


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


¡¡¥­¡¼ÆþÎϤò¹Ô¤Ã¤¿ºÝ¤Ë¡¢¥×¥ì¥¤¥ä¡¼¤¬¼ÂºÝ¤Ë°ÜÆ°¤¹¤ë¤«¡¢Æ°ºî³Îǧ(¥Ç¥Ð¥Ã¥°)¤ò¹Ô¤¤¤Þ¤¹¡£
¤³¤Î»þÅÀ¤Ç¡¢¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë°ÜÆ°½èÍý¤¬½ÐÍè¤Æ¤¤¤ì¤ÐÌäÂꤢ¤ê¤Þ¤»¤ó¡£


¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡Àµ¾ï¤ËÆ°ºî¤·¤¿¾ì¹ç¡¢¤½¤ì¤Ç½ª¤ï¤ê¡¢¤Ç¤Ï¤Ê¤¯¤Æ¡¢¥×¥í¥°¥é¥à¤òÆɤßľ¤·¡¢
¤É¤Î¤è¤¦¤Ê½èÍý¤Ë¤è¤Ã¤Æ¡¢º£²ó¤Î°ÜÆ°¤ÎÀ©¸æ¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤«¤ò¡¢¤·¤Ã¤«¤ê¤ÈÆɤ߲ò¤±¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£


£²¡¥¥¹¥¯¥ê¥×¥È¤Ë¤è¤ë¥«¥á¥é(Cinemachine)¤ÎÀ©¸æµ¡Ç½¤ò¼ÂÁõ¤¹¤ë

£±¡¥Àß·×


¡¡¥«¥á¥é¤ÎÀµÌ̤ÎÊý¸þ¤ËÂФ·¤Æ°ÜÆ°¤¹¤ëµ¡Ç½¤¬¼ÂÁõ¤Ç¤­¤Þ¤·¤¿¤Î¤Ç¡¢¤³¤Î¼ê½ç¤Ç¤Ï¥«¥á¥é¤Î²óžµ¡Ç½¤òºîÀ®¤·¤Þ¤¹¡£

¡¡¥Þ¥¦¥¹¤Î±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¤¤¤ë´Ö¤À¤±¡¢¥«¥á¥é¤¬¾å²¼º¸±¦¤Ë²óž¤¹¤ë¤è¤¦¤ÊÀ߷פˤ·¤Þ¤¹¡£
¥«¥á¥é¤ò²óž¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢²óž¤Î¼ç¼´¤ò¹Í¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£º£²ó¤Ï¡¢¥×¥ì¥¤¥ä¡¼¤ò¼ç¼´¤Ë¤·¤Þ¤¹¡£
¤½¤·¤Æ¡¢¤½¤Î¥×¥ì¥¤¥ä¡¼¤ò¼´¤È¤·¤Æ¡¢¥«¥á¥é¤Î°ÌÃÖ¤ò¾å²¼º¸±¦¤Ë²óž¤µ¤»¤Þ¤¹¡£¤³¤Î¥«¥á¥é¤Î²óž¤Ï¸øž²óž¤È¤Ê¤ê¤Þ¤¹¡£


£²¡¥CameraControllerFromCinemachine ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¡ÊCinemachine ¤Ë¤è¤ë¥«¥á¥é¤Î¾ì¹ç¡Ë


¡¡Cinemachine ¤òÍøÍѤ¹¤ë¾ì¹ç¤Î¥¹¥¯¥ê¥×¥È¤Ç¤¹¡£

¡¡Äɽ¾¤Î½èÍý¤Ë¤Ä¤¤¤Æ¤Ï Cinemachine ¤Î Follow ¤ËÄɽ¾ÂоݤòÀßÄꤷ¤Æ¤¤¤ëÁÛÄê¤Ç¤¹¡£
¤Þ¤¿¡¢X ¼´¤Î²ÄÆ°°è¤Ë¤Ä¤¤¤Æ¤â½èÍý¤¬°Û¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤é¤ÎÃͤˤĤ¤¤Æ¤Ï¡¢¼Â¹Ô¤·¤Ê¤¬¤éÄ´À°¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¥Þ¥¦¥¹¤Î±¦¥Ü¥¿¥ó¤ò²¡¤·Â³¤±¤ë(¥É¥é¥Ã¥°¤·¤Æ¤¤¤ë)´Ö¡¢¥«¥á¥é¤Î¾å²¼º¸±¦¤Î¸øž²óž¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢µ­»ö¤ÎÆâÍƤ˲䨤ơ¢¥«¥á¥é¤Î¾å²¼¤Î²ÄÆ°°è(X ¼´¤ËÀ©¸Â)¤òÀߤ±¤Æ¤¤¤Þ¤¹¡£º¸±¦¤Ï 360 ÅÙ²óž²Äǽ¤Ç¤¹¡£


CameraControllerFromCinemachine.cs

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


¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
Virtual Studio ¤Ç¤Ï¥·¥ç¡¼¥È¥«¥Ã¥Èµ¡Ç½¤¬¤¢¤ê¡¢Ctrl + Shift + S ¥­¡¼¤ÎƱ»þ²¡¤·¤Ç³«¤¤¤Æ¤¤¤ë¤¹¤Ù¤Æ¤Î¥¹¥¯¥ê¥×¥È¤ò¤Þ¤È¤á¤Æ¥»¡¼¥Ö¤¬¤Ç¤­¤Þ¤¹¡£

¡¡¤³¤Î CameraControllerFromCinemachine ¥¹¥¯¥ê¥×¥È¤Ï MainCamera ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤Ê¤¯¡¢
CinemachineVirtualCamera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤Æ¤¯¤À¤µ¤¤¡£


£³¡¥¡ãTransform.RotateAround ¥á¥½¥Ã¥É¡ä


¡¡¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¡¢»ØÄꤷ¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÃæ¿´¼´¤È¤·¤Æ²óž¤µ¤»¤Þ¤¹¡£
Î㤨¤ë¤È¡¢Ãϵå¤ËÂФ·¤Æ¤Î·î¤Î¸øž²óž¤Î¤è¤¦¤Ê²óž¤ò¹Ô¤¦µ¡Ç½¤ò»ý¤Ä¥á¥½¥Ã¥É¤Ç¤¹¡£

¡ã¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹¤è¤ê¡ä
¡¡¥ï¡¼¥ë¥ÉºÂɸ¤Î point ¤òÃæ¿´¤È¤·¤¿¼´( axis )¤Ç angle Åٲ󞤵¤»¤Þ¤¹¡£
¤³¤ì¤Ï Transform ¤Î°ÌÃ֤Ȳ󞤬Ʊ»þ¤ËÊѹ¹¤µ¤ì¤Þ¤¹¡£



¡¡º£²ó¤Ï¤³¤Á¤é¤Î¸øž²óž¤Îµ¡Ç½¤ò³èÍѤ·¡¢¥×¥ì¥¤¥ä¡¼¤òÃϵå¤È¤·¤Æ¹Í¤¨¤¿¤È¤­¡¢¥«¥á¥é¤ò·î¤Î¤è¤¦¤Ë¸øž²óž¤µ¤»¤Æ¤¤¤Þ¤¹¡£

¡¡// ¥«¥á¥é¤òÄɽ¾Âоݤμþ°Ï¤ò¸øž²óž¤µ¤»¤ë
  transform.RotateAround(targetObj.transform.position, Vector3.up, x * Time.deltaTime * cameraRotateSpeed);


¡ã»²¹Í¥µ¥¤¥È¡ä
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Transform.RotateAround
MR¤¬³Ú¤·¤¤ ÍÍ
»ØÄê¤Î¥È¥é¥ó¥¹¥Õ¥©¡¼¥à¤òÃæ¿´¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤ò²óž¤µ¤»¤ë
¥Õ¥¿¥Ð¥¼¥ß ÍÍ
¥¿¡¼¥²¥Ã¥È¤Î¼þ°Ï¤ò±ß·Á¤Ë°ÜÆ°¤¹¤ë


£´¡¥¡ãTransform.localEulerAngles ÊÑ¿ô¡ä


¡¡Transform ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Ï²óž¾ðÊó¤ò Rotation ÊÑ¿ô¤È¤·¤Æ´ÉÍý¤·¤Æ¤¤¤Þ¤¹¡£
¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ï Vector3 ·¿¤Î (x, y, z) ¤Çɽ¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢¤³¤ÎÃͤÏÆâÉôŪ¤Ë¤Ï Quaternion ·¿¤Ç¤¢¤ë¤¿¤á¡¢
²óž¾ðÊó¤ò¹¹¿·(ÂåÆþ)¤¹¤ë¤¿¤á¤Ë¤Ï¡¢Quaternion ·¿¤ÎÃͤò»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

¡¡¤½¤ÎÊýË¡¤È¤ÏÊ̤ˡ¢¥¹¥¯¥ê¥×¥È¤Ç¤Ï¡¢Vector3 ·¿¤ÎÃͤò¤½¤Î¤Þ¤ÞÂåÆþ¤·¤Æ¡¢Rotation ¤ÎÃͤò¹¹¿·¤¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
¤½¤Î¤¿¤á¤ËÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¤Î¤¬ Transform.localEulerAngles ÊÑ¿ô¤Ç¤¹¡£

¡¡¤³¤Î Transform.localEulerAngles ÊÑ¿ô¤Ï¡¢¿Æ¤Î Transform ¥ª¥Ö¥¸¥§¥¯¥È¤«¤é¸«¤¿¡¢ÁêÂÐŪ¤Ê¥ª¥¤¥é¡¼³Ñ¤È¤·¤Æ¤Î²óžÃͤǤ¹¡£

¡¡¤³¤ÎÊÑ¿ô¤òÍøÍѤ¹¤ë¤È¡¢Vector3 ·¿¤Î¾ðÊó¤ò¥ª¥¤¥é¡¼³Ñ¤È¤·¤ÆÍøÍѤ·¤Æ¡¢²óž¾ðÊó¤Î¹¹¿·¤¬¹Ô¤¨¤Þ¤¹¡£
¥ª¥¤¥é¡¼³Ñ¤Ë¤è¤Ã¤Æ Vector3 ·¿¤Î²óž¾ðÊó¤òɽ¸½¤¹¤ë¤È 0 ÅÙ¡Á 360 Å٤ˤʤê¤Þ¤¹¤Î¤Ç¡¢Ä¾´¶Åª¤Ë¤ï¤«¤ê¤ä¤¹¤¤·Á¤Ç¤ÎÂåÆþ½èÍý¤òµ­½Ò¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

¡¡// ¥«¥á¥é¤Î²óž
  transform.localEulerAngles = localAngle;

¡¡¤³¤³¤Ç¤Ï¿¨¤ì¤Þ¤»¤ó¤¬¡¢Transform.eulerAngles ÊÑ¿ô¤â¤¢¤ê¤Þ¤¹¡£


¡ã»²¹Í¥µ¥¤¥È¡ä
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Transform.localEulerAngles


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


¡¡½èÍý¤ÎÆâÍƤò¸«Ä¾¤·¤¿¤¦¤¨¤Ç¡¢¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤·¤Þ¤¹¡£

¡¡¥«¥á¥é¤Î¾å²¼º¸±¦¤Î²óž¤ò³Îǧ¤·¤Ä¤Ä¡¢¥×¥ì¥¤¥ä¡¼¤ò°ÜÆ°¤µ¤»¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¥«¥á¥é¤Î¸þ¤¤¤Æ¤¤¤ëÊý¸þ¤Ë¥×¥ì¥¤¥ä¡¼¤¬Á°¿Ê¤·¤Æ¤¤¤±¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£


¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯



¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£

¡¡¼¡¤Ï¡¡¼ê½ç£¸¡¡¡¼¥¸¥ã¥ó¥×¤Î¼ÂÁõ¡Ý¡¡¤Ç¤¹¡£

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


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

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

Menu



´ðÁÃ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private



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

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