Unity Rigidbody
Unityの物理モデルシミュレーションをするときにRigidbodyがよく使われます。これまでAlgodooやProcessingを使ったものを扱ってきましたが、いよいよ本格的な環境で試してみます。
作成する3D Objectは、Shpere 1つ、Cube 3つです。
またGameObjectにスクリプトコンポーネントを追加します。
Shpere
Physics/Rigidbodyコンポーネントを追加します。
Cube(2)
下から順に3つCubeを作成します。ボールを転がす板になるようにサイズ向きを調整します。
GameObjectのスクリプト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewBehaviourScript : MonoBehaviour { public GameObject sphere; void Start() { } void Update() { if(Time.frameCount % 600 == 0){ var sph = Instantiate(sphere, transform.position + new Vector3(Random.Range(-2f, 2f),5f,Random.Range(-2f, 2f)), transform.rotation); sph.GetComponent<MeshRenderer>().material.color = new Color(Random.Range(0f,1f), Random.Range(0f, 1f), Random.Range(0f, 1f), 1f); } } } |
1秒ごとに、色を乱数で変えながらボールを生成します。このとき位置も乱数で微妙にづらし、さまざまな方向に転がるようにしています。
スクリプトは、start()が初回のみ、update()が各フレームごとに繰り返し呼ばれます。(Processingのsetup(), draw()と同じですね)
Rigidbodyのおかげで、Unityの世界を楽しくコーディングできることがよくわかります。
ちょっと前にVisualScriptiongを試しましたが、C#がそれほどハードルが高いものでないことを実感できるのではないでしょうか。
Category: 3D