キャラクターを speed
付きで動かします。
Y軸に沿った速度は無視されます。 スピードは「メートル/秒」です。重力は自動的に適用されます。 キャラクターが接地しているかどうかを返します。 これは1フレームごとにMoveまたはSimpleMoveを呼び出すためだけに使用することをオススメします。
var speed : float = 3.0; var rotateSpeed : float = 3.0; function Update () { var controller : CharacterController = GetComponent(CharacterController); // Rotate around y - axis transform.Rotate(0, Input.GetAxis ("Horizontal") * rotateSpeed, 0); // Move forward / backward var forward : Vector3 = transform.TransformDirection(Vector3.forward); var curSpeed : float = speed * Input.GetAxis ("Vertical"); controller.SimpleMove(forward * curSpeed); } @script RequireComponent(CharacterController)
using UnityEngine; using System.Collections; [RequireComponent(typeof(CharacterController))] public class ExampleClass : MonoBehaviour { public float speed = 3.0F; public float rotateSpeed = 3.0F; void Update() { CharacterController controller = GetComponent<CharacterController>(); transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed, 0); Vector3 forward = transform.TransformDirection(Vector3.forward); float curSpeed = speed * Input.GetAxis("Vertical"); controller.SimpleMove(forward * curSpeed); } }
import UnityEngine import System.Collections [RequireComponent(typeof(CharacterController))] public class ExampleClass(MonoBehaviour): public speed as float = 3.0F public rotateSpeed as float = 3.0F def Update() as void: controller as CharacterController = GetComponent[of CharacterController]() transform.Rotate(0, (Input.GetAxis('Horizontal') * rotateSpeed), 0) forward as Vector3 = transform.TransformDirection(Vector3.forward) curSpeed as float = (speed * Input.GetAxis('Vertical')) controller.SimpleMove((forward * curSpeed))