【3Dゲームエンジン】Unity総合スレッド27 [転載禁止]©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0737名前は開発中のものです。
2015/12/19(土) 16:55:52.91ID:M5sICOqlfor文の使い方がおかしい。というかこれビルド通るの?w
あとこれ、↑キーを押した時だけtransform.Translate(transform.forward* speed);
が呼ばれてるけど、
やりたいことは「↑キーを押した時だけ移動(長く押すほど速く)」なのか、「常に移動していて↑キーを押すと更に加速」なのかどっち?
それによってコードも全然変わってくるよ。
今回は「速度を上げる」って書いてあったから後者を想定するね。
Updateは60分の1秒ごとに呼ばれるから、「0.5ずつ」が1秒間を指す場合
void Update()
{
if (Input.GetKey (KeyCode.UpArrow)) {
//押してる時は加速
speed += (0.5f * Time.deltaTime);
} else {
//押されてない時は減速
speed -= (0.5f * Time.deltaTime);
}
//このままだと無限にspeedが増減するので最小最大値を設定する(手抜き)
speed = Mathf.Clamp(speed, 1.0f, 10.0f);
//速度の分だけ必ず移動する
transform.Translate(transform.forward * speed * Time.deltaTime);
}
こんな書き方になるよ。それぞれの初めて見た関数の意味はスクリプトリファレンスで調べてね
http://docs.unity3d.com/ja/current/ScriptReference/index.html
■ このスレッドは過去ログ倉庫に格納されています