前回で、振り子を作成しました。
2つのオブジェクト、Cube (支点) とSphere はHinge Jointで連動して動くようになりましたが、これだと、離れた位置にある2つのオブジェクトであり、振り子には見えませんので。
■ 振り子の紐の作成
ということで、紐的なものでつなぐ方法がないかを探していると…
「Line Renderer」というものを使えばよさそうです。
とりあえず今の状態を保存しておくためにも、まずはもとのオブジェクト(Cube+Sphere)を Prefab(プレハブ)化。
Prefab化しておけば、状態を保存した状態になり、複製(復元)も簡単。
Prefab化したオブジェクトを複製(コピー)して、X座標だけずらせば、こうやって3つにするのも簡単ですからね。
それでは、Sphereオブジェクトに、Create Emptyで空オブジェクトを生成。
これを「Line」として、「Line Renderer」を「Line」に追加。
Line Renderer (ラインレンダラー) コンポーネントは、3D 空間の 2 つ以上の点の配列をとり、それぞれの間に直線を描きます。1 つのラインレンダラーを使用して、単純な直線から複雑な螺旋まで、どんなものでも描画することができます。
このLine Rendererに色々と設定をしていけばいいようです。
「Materials」の「Element 0」には、「Default-Line」を設定。
「Width」には適当に「0.05」を設定。(これで線の太さが変わるようです)
続いて、「Sphere(球)」に「Line」の位置を設定するスクリプトを追加。
[SphereCs.cs]
Sphereの位置が変わるにつれて、位置を自動調整更新してもらわないといけないため、Update() にオブジェクトの座標を再設定する処理を記述。
そして、オブジェクトを設定。
- Line_objには「Line(Line Renderer)」を設定。
- Cube_objには「Cube(Transform)」を設定。
これでOKです。
さっそく動かしてみると…
おお、紐が付きました。いい感じですね。