【3Dゲームエンジン】Unity総合スレッド27at GAMEDEV【3Dゲームエンジン】Unity総合スレッド27 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト742:名前は開発中のものです。 15/12/19 16:31:29.02 Al2EB1wK.net 速度を上げる文を書こうとしているのですがいまいちわかりません。 speed=1fを10fまで0.5ずつ上げたいのですが・・・ float speed=1f; void Start () { } void Update () { if (Input.GetKey (KeyCode.UpArrow)) { transform.Translate(transform.forward* speed); { for(float speed=1f ;speed <10f; speed+=0.5); } 現在こうなっていますorz 743:名前は開発中のものです。 15/12/19 16:55:52.91 M5sICOql.net >>737 for文の使い方がおかしい。というかこれビルド通るの?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 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch