目指せ!圧倒的な実力差

圧倒的な実力差を目指して日々の活動を記録します。情報技術やゲームについての雑記も記録

現行プロジェクト

  • 初めてのUnityでルーレットゲームを製作中

【Unity】 ルーレットの球を打ち出す

今回はルーレットの球をSpaceキーで再度打ち出しが出来るようにしました。

f:id:soutencloud:20140202001212p:plain

Unity Web Player | Casino

↑で再生。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 [キータ]

マウスの位置にオブジェクトを移動させる - 強火で進め

Unity Rigidbody 加速度 | Blog for Smartphone Seminar 2013

UnityのC#で乱数を生成する。 « GONZNOTE