ゾンビとUnity

ゾンビネタとUnityでのゲーム制作について綴るブログです。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Unityで引っかかったところを書いてく1

※Unity 5以上では未検証。

マウスポインタの位置にオブジェクトを移動させる

C#

Vector3 screen_point = Input.mousePosition;
screen_point.z = 1.0f;
Vector3 world_point = Camera.main.ScreenToWorldPoint(screen_point);

Debug.Log(world_point); //Consoleウィンドウで確認したいなら

ScreenToWorldPoint() から帰ってくるベクトルが 0 になっちゃって引っかかった
screen_point.z に 0 より大きい値を入れておかないと、world_point の値が全て 0 になってしまう
メインカメラしか使わないなら Camera.main が使える、ベンリ!



Unity公式のチュートリアルをいじりつつ、ラケット視点の3Dブロック崩しにしてみたら意外とあっさりできた
ゲームとして遊べる段階にするには、色々と手を加えないといけない感じ

block3d_ss.png

ゲームのルール
手前の半透明のラケットをマウスで動かしてボールを弾きブロックに当てるのは一緒
ラケットの動きには癖があるので慣れが必要
ラケットを通過してもミスにはならず、ボールは画面奥に向かって勢い良く弾かれる
ボールに角度をつけたい場合はラケットで打たないとダメで、ラケットで打つ度に1点加算
ボールがブロックに当たると2点、ブロックが壊れると4点、3回当てるとブロックが消滅(合計10点)
60秒の制限時間があり、制限時間内にどれだけ得点を稼げるかを競う
時間がなくなってもプレイできるが、得点は増えない

多分、運ゲーじゃない
カメラは床から天井を眺めている状態なので、ボールは重力に従って落ちてくる
ラケットで弾いたときにボールに加わる力の強さと向きは常に一定なのと、配置されるブロックの位置は毎回同じなので運は絡まないはず
ラケットを通過してボールが弾かれる時にかかるベクトルも毎回一緒
ただし、ボールにかかっている力が一定以上になると、弾き返す力は働かなくなる(ラケットも)
後は全て物理演算任せ

多分、こんな戦略が必要
短時間でポイントを稼ぐには、ボールに勢いをつけないといけないから、何でもかんでもラケットで打つわけにはいかず、あえて通過させる必要がある
通過させてるだけではボールが垂直に打ち上がるだけなので、ラケットで打って角度をつけなきゃいけないから、ボールがどんな状態のときに、どうラケットを動かすか?どうやって素早くボールに勢いをつけるか?を細かく詰めていく感じではなかろうか

block 3dのプロジェクトファイル
スポンサーサイト

- 0 Comments

Add your comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。