RigidBody.Velocityを使わない加速減速

マウスの横移動だけで加速減速します.マウスを戻しても逆走はしません.brakeの係数を変えることで減速率が変わりますが,単なる引き算なのであまりきれいではありません.

可能であれば加速に使用しているべき乗

Mathf.Pow(計算したい数値, 乗数);

のような関数を使うか,二次元関数や三角関数を使って減算してみるのもいいかもしれませんね.

 

スクリプト

using UnityEngine;
using System.Collections;

public class mousei : MonoBehaviour {

	public GameObject boatObj;
	public float sensitivity = 0.1f;
	public float brake = 0.05f;
	float firstPos;


	// Use this for initialization
	void Start () {
		firstPos = 0f;
	
	}
	
	// Update is called once per frame
	void Update () {

		float mouse_move_x = Input.GetAxis("Mouse X") * sensitivity;

		if (mouse_move_x > 0.1) {
			Mathf.Pow(mouse_move_x, 2);
			boatObj.transform.position += new Vector3 (mouse_move_x, 0f, 0f);
			firstPos += mouse_move_x;
		} else {
			if(firstPos > 0){
				firstPos -= brake;
			boatObj.transform.position += new Vector3 (firstPos, 0f, 0f);
			}
		}


	}
		


}

 

実行動画