【Unity】 ルーレットの球を打ち出す
今回はルーレットの球をSpaceキーで再度打ち出しが出来るようにしました。
↑で再生。SPACEキーで再度打ち出し
入力の受付
入力は
Input.GetKey(KeyCode.~~)
をif文で囲めばOK。
GetKeyは押している間、GetKeyDownで押し下げの瞬間になる。
打ち出す毎に初速度を乱数で変えるようにした
乱数生成はRandom.valueで0.0f ~ 1.0fまで生成してくれるようです。
Unityは基本的にフロート型なのかな?
初速度の与え方を rigidbody.AddForce(x, y, z)からrigidbody.velocityに変えた
AddForceだと今の加速度に更に加える形になるので、初期化として機能しないので変更しました。
打ち出し位置のリセット
transformのpositionの変更は
transform.position = new Vector3(x, y, z)
で変更できた。リファレンスによってはnewがかかれてないこともあるけど、基本的にインスタンス生成して突っ込む感じになるらしい。
モデルを更に変更を加えてもらった
前のモデルの外周は36角形になっていて、壁に当たるように内側へ落とされていたが、それをなるべく円に近い形に変更してもらいました。
さらに、外周に球がハマるようにしてもらいました。
すり鉢状に変形してもらいましたが、Unity上でさらに縦に引き伸ばして調整しました。
だいぶ安定感のある打ち出しになったと思います。
次回はカメラ視点の変更をしたいと思います。
参考サイト
ActionScript入門Wiki - Unity - 入力情報を取得する
UnityをC#で超入門してみる #5 時間と入力の章 - Qiita [キータ]