Exception[0]

UnityとかPHPを使って色々やるとかやらないとか

【Unity】スマートボールぽいものを作ろう! - ①RigidbodyとCollider

Unityの名前は知っているけど、実際にゲームってどう作るの?な層に向けて記事書いてみたいなーと思って書いてみました。

 

まずはシンプルで、Unityの特色が出るスマートボールを作っていきたいと思います。

 

①RigidbodyとCollider

まずは起動画面。

どこに何のウインドウがあるか覚えましょう。

f:id:acguychan:20140906010134j:plain

 

次に、GameObject => Create Other => Cube を選択し、スマートボールの土台を作ります。

作成後、Hierarchyウインドウで先ほど作成されたCubeを選択し、Transformを以下のように変更します。

 

f:id:acguychan:20140906010259p:plain

 

これがスマートボールの土台となります。

土台ぽいものができたので次にボールを作りましょう。

 

GameObject => Create Other => Sphere を選択して球体を作ります。

Hierarchyウインドウで先ほど作成されたSphereを選択し、Transformを以下のように変更します。

 

f:id:acguychan:20140906010302p:plain

 

これでボールと土台らしき物ができました。

 

f:id:acguychan:20140906011304j:plain

 

一度、画面上部にあるf:id:acguychan:20140906010339p:plain(実行ボタン)を押して実行してみましょう。

 

…現状では球体に対して何も付加をしていないので特に動かない状態です。

実行ボタンを再度押して中止します。

 

次に、Unityの特徴的な機能であるRigidbodyを使います。

HierarchyウインドウでSphereを選択し、

Component => Physics => Rigidbody を選択します。

 

SphereのInspectorにRigidbodyが追加されていればOKです。

実行ボタンを押してみましょう。

 

f:id:acguychan:20140906010433g:plain

 

…動いた!止まった!!

Rigidbodyとは、和訳ですと剛体といい、

力を加えても変形しない仮想上の物体。

…簡単にいうとUnity内のモデルやオブジェクトに、現実と同じような重力や摩擦抵抗といった影響を受けるようにする為の物、です。

 

次に、MeshColliderとはなんなのか。

実行ボタンを再度押して中止し、HierarchyからCubeを選択します。

InspectorからBox Colliderのチェックを外して実行してみましょう。

 

f:id:acguychan:20140906010625g:plain

…落ちたァー!!

 

そう、Colliderとは物体と衝突判定を取る物、なんです。

Cubeの場合だとBox Collider、つまり四角形の物体と衝突判定を取る物、になります。

Sphereを選択した後、SceneウインドウのSphereの面に沿って出ている緑色の線がそのオブジェクトに属しているColliderとなります。

 

上記のは、CubeのBox Colliderのチェックが外されColliderが無効化され、重力の影響を受けて落ちてきたSphereSphere Colliderと衝突判定が取れなくなりそのまま落ちた。という事になります。

 

RigidbodyとColliderを簡単にまとめると

Rigidbody => オブジェクトが物理影響を受けるようになる物

Collider => オブジェクト同士の衝突判定をとる物

 

以上がRigidbodyとColliderの関係になります。

 

これで、ボールと土台の判定が取れるようになったので次は壁を作っていきましょう。

 

関連記事一覧:

【Unity】スマートボールぽいものを作ろう! - ②TextureとMaterial - Exception[0]

【Unity】スマートボールぽいものを作ろう! - ③PrefabからInstantiateで動的生成 - Exception[0]

【Unity】スマートボールぽいものを作ろう! - ④isTriggerとOnTriggerEnter - Exception[0]

【Unity】スマートボールぽいものを作ろう! - ⑤Particleを使ってみよう! - Exception[0]