2014年10月18日土曜日

Unity オブジェクトを移動させる方法色々

オブジェクトの移動にはtransform.positionを使う方法がありますが他にも


があります。

velocityはオブジェクトの速度を設定します。
AddForceはオブジェクトに力を加えます。
動かしてみると分かりますがvelocityは速度を直接指定しているので摩擦がかからずに一定速度になります。一方AddForceは地面では摩擦で動きが遅いですが、ジャンプさせると加速し続けます。

具体的な使用方法は以下のサンプルソースを参考にしてください。
リジットボディも必要です。
using UnityEngine;
using System.Collections;

public class Sousa : MonoBehaviour {

public float speed =   9.0f;
public float jumpspeed = 9.0f;
public float gravity = 20.0f;
private bool jimen = false;

private Vector3 idou =  new Vector3();

public void Start()
{
jimen = true;//地面判定は自作しないと
}

public void Update()
{
if (jimen)
{
idou = new Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxisRaw("Vertical"));
idou = transform.TransformDirection (idou);
idou *= speed;

if(Input.GetButton ( "Jump"))
{
idou.y = jumpspeed;
}
}
idou.y -= gravity * Time.deltaTime;
//transform.rigidbody.AddForce(moveDirection);//力を加えて移動
rigidbody.velocity = idou;//直接加速度を設定すつ


}
}

0 件のコメント:

コメントを投稿