¡¡Cube¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ËPlayer¤ÎÌò³ä¤òÍ¿¤¨¤ë¤¿¤á¡¢CapsuleCollier¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÈRigidbody¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
CapsuleCollier¤ÎÂ礤µ¤ÏŬµ¹Êѹ¹¤·¤Þ¤¹¡£
Rigidbody¤ÏConstraints¤ÎÀßÄêÆâ¤ÎFreezeRotation¤Î³Æ¹àÌܤ˥Á¥§¥Ã¥¯¤òÆþ¤ì¤Æ¡¢°ÜÆ°»þ¤ËÅݤì¤Æ¤·¤Þ¤ï¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£¡¡
¡¡Rigidbody¤Ë¤è¤Ã¤Æ½ÅÎϤαƶÁ¤ò¼õ¤±¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢ÃÏÌ̤ÎÌò³ä¤ò»ý¤Ä¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ
3D Object => Plane ¤òÁªÂò¤·¤ÆCube¤Î²¼¤ËÊ̤Υ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òÇÛÃÖ¤·¤Þ¤·¤ç¤¦¡£
Plane¤ÏBoxCollier¤ò»ý¤Ã¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤ÇCube¤¬½ÅÎϤαƶÁ¤ò¼õ¤±¤¿¤È¤·¤Æ¤â¡¢¤³¤ÎPlane¤¬ÃÏÌ̤ÎÌò³ä¤ò²Ì¤¿¤¹¤³¤È¤Ç̵¸ÂÍî²¼¤òËɤ°¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
¡¡¤³¤Î¤Þ¤Þ¤Ç¤¹¤È¿¿¤ÃÇò¤ÊÃÏÌ̤ˤʤäƤ·¤Þ¤¤¡¢Cube¤¬°ÜÆ°¤·¤Æ¤¤¤ë¤Î¤«È½Ê̤¬Æñ¤·¤¯¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢
Material¤ò£±¤ÄºîÀ®¡Ê¤¢¤ë¤¤¤ÏŬµ¹¤Ê¤â¤Î¤òÍѰաˤ·¤Æ¡¢Plane¤ÎMeshuRenderer¤ÎMaetrial¤Ë¥¢¥¿¥Ã¥Á¤·¤Þ¤·¤ç¤¦¡£
¡¡°Ê¾å¤Î½àÈ÷¤¬À°¤Ã¤¿¤é¡¢¿·¤·¤¯Player¤ò°ÜÆ°¤µ¤»¤ë¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¡¢Cube¤Ë¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
¥¹¥¯¥ê¥×¥È̾¤ÏPlayerController¤Ë¤·¤Þ¤¹¡£
¡¡¥µ¥ó¥×¥ë¥³¡¼¥É¤Î¼ÂÁõÎã¤òµºÜ¤·¤Þ¤¹¡£
¡¡<= ¡Ü¥Ü¥¿¥ó¤ò²¡¤¹¤È³«¤¤Þ¤¹¤Î¤Ç¡¢¼«Ê¬¤Ê¤ê¤Î¼ÂÁõ¤ò¹Ô¤Ã¤¿¾å¤Ç³Îǧ¤ò¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
[Header("°Üư®ÅÙ")]
public float moveSpeed;
private Rigidbody rb;
void Start () {
rb = GetComponent<Rigidbody>();
}
void FixedUpdate () {
// ¥¡¼ÆþÎÏ
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
// °ÜÆ°
Move(x, z);
}
/// <summary>
/// Palyer¤ò°ÜÆ°¤¹¤ë
/// </summary>
/// <param name="x">X¼´¤Î°ÜÆ°ÃÍ</param>
/// <param name="z">Z¼´¤Î°ÜÆ°ÃÍ</param>
private void Move(float x, float z) {
// ÆþÎÏÃͤòÀµµ¬²½
Vector3 moveDir = new Vector3(x, 0, z).normalized;
// Rigidbody¤ÎAddforce¥á¥½¥Ã¥É¤òÍøÍѤ·¤Æ°ÜÆ°
rb.AddForce(moveDir * moveSpeed);
}
}
¡¡Cube¤Ë¥¢¥¿¥Ã¥Á¤¹¤ë¤ÈMoveSpeed¤¬¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¾å¤Ë¤ÆÀßÄê²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¤Î¤Ç¡¢¤Þ¤º¤Ï500¤È¤¤¤¦¿ô»ú¤ò²¾¤ËÆþ¤ì¤Æ¤ª¤¤Þ¤·¤ç¤¦¡£
¤³¤³¤Î¿ô»ú¤ÏPlayer¤Î°Üư®Å٤ˤʤê¤Þ¤¹¤Î¤Ç¡¢¸å¡¹¤âÄ´À°²Äǽ¤ÊÀ߷פˤ·¤Æ¤¤¤Þ¤¹¡£