生成するオブジェクトにRigidBodyをつけて、力を加える方法が一番簡単に目的を果たせると思います。
CS
1using UnityEngine;
2
3public class ObjectGenerator : MonoBehaviour
4{
5 [SerializeField]
6 private GameObject m_cube = null;
7 [SerializeField]
8 private float m_force = 100.0f;
9 [SerializeField]
10 private float m_generateTime = 0.5f;
11
12 private float m_time = 0.0f;
13
14 void Start()
15 {
16 m_time = m_generateTime;
17 }
18
19 void Update()
20 {
21 m_time -= Time.deltaTime;
22 if( m_time <= 0.0f )
23 {
24 m_time = m_generateTime;
25 RandomGenerate();
26 }
27 }
28
29 void RandomGenerate()
30 {
31 // 半径5mの範囲内の位置にランダムでオブジェクトを生成する。
32 Vector3 pos = Random.insideUnitCircle * 5.0f;
33 pos.z = 10.0f;
34 var obj = Instantiate( m_cube, pos, Quaternion.identity ) as GameObject;
35
36 // 生成したオブジェクトにRigidbodyがあることが前提。
37 var rigidBody = obj.GetComponent<Rigidbody>();
38 var forceDir = Vector3.back;
39 rigidBody.AddRelativeForce( forceDir * m_force );
40 }
41
42} // class ObjectCreater
今回は各オブジェクトの進行方向や力は同一のものを使用していますが、その値もランダムにすることで更にバラつきを出すことができると思います。
ご参考になればと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/08 00:33