2014年10月16日木曜日

Unity キャラクターの移動とジャンプ

スペースキーでジャンプ。矢印キーで移動します。
CharacterControllerクラスを使用したアクションゲームのサンプルソース。
動かしたいオブジェクトにRegitBodyとCharacterControllerと以下のスクリプトクラスを追加して使用してください。

基本オブジェクト以外を動かす場合はCharacterControllerの辺り判定を調整してください。

using UnityEngine;
using System.Collections;

public class ChareIdou : MonoBehaviour {

public float speed =   9.0f;
public float jumpspeed = 9.0f;
public float gravity = 20.0f;


private Vector3 moveDirection =  new Vector3();
private CharacterController controller;

public void Start()
{
controller =GetComponent("CharacterController")as CharacterController;
}

public void Update()
{
//CharacterController.isGroundedキャラクターが地面に接しているか?
if (controller.isGrounded)
{
moveDirection = new 
//TransformDirectionはローカルのTransform情報をワールド座標系に変換します
Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxisRaw("Vertical"));
moveDirection = transform.TransformDirection (moveDirection);
moveDirection *= speed;

if(Input.GetButton ( "Jump"))
{
moveDirection.y = jumpspeed;
}
}
//Time.deltaTimeは前フレームが呼び出されたときからの経過時間を取得出来ます
moveDirection.y -= gravity * Time.deltaTime;

controller.Move (moveDirection * Time.deltaTime);
}
}

0 件のコメント:

コメントを投稿