GameObject 変数 = GameObject.CreatePrimitive( <PrimitiveType> ); (例) GameObject obj = GameObject.CreatePrimitive (PrimitiveType.Cube);引数には、PrimitiveTypeの値を指定。
Sphere / Capsule / Cylinder / Cube / Plane
GameObject emptyGameObject = new GameObject("GameObject Name");
<GameObject> .AddComponent ("Rigidbody");コンポーネントの追加は、GameObjectの「AddComponent」で行う。
GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Cube); obj.tag = "ob_wall"; obj.transform.localScale = new Vector3 (3, 3, 3); obj.transform.position = new Vector3 (10, 1, 10); obj.GetComponent<Renderer>().material.mainTexture = txtr; obj.GetComponent<Renderer>().material.color = new Color(1, 0, 0, 0.5f); obj.GetComponent<Renderer>().shader = Shader.Find("Transparent/Diffuse"); obj.AddComponent<Rigidbody>(); obj.GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezePositionY; obj.GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation; obj.GetComponent<Collider>().isTrigger = true; obj.AddComponent("TestScript"); // Ver4の書き方
GameObject.Destroy ( <GameObject> ); GameObject.Destroy ( <GameObject>, 秒数 );
// 自身を消す場合 GameObject.Destroy ( gameObject ); GameObject.Destroy ( gameObject, 5f );
public class myscript : MonoBehaviour { GameObject[] cubes = new GameObject[4]; GameObject[] gos = new GameObject[4]; void Start () { } void Update () { AddForceAll (); } // 作ったボールが近寄ってくる void AddForceAll(){ GameObject[] objs = GameObject.FindGameObjectsWithTag ("sphere"); // sphereタグがついたスフィアを1つずつ処理していく foreach(GameObject obj in objs){ // 作ったボールのtransformをvecに保管 Vector3 vec = obj.transform.position; // 現在地から作ったボールの位置を引き、相手の位置から自分の位置に向かうベクトルを得る // 自分の位置から相手の位置を引くと、「相手の位置から自分の位置に向かうベクトル」を得ることができる。 Vector3 dir = transform.position - vec; // ベクトルを弾を動かす力にする(力を1/10に弱めて) obj.GetComponent<Rigidbody> ().AddForce (dir * 0.1f); } } void OnTriggerEnter(Collider collider){ if (collider.gameObject.name.StartsWith ("Cube")) { for (int i = 0; i < 4; i++) { if (cubes [i] == collider.gameObject) { ParticleSystem ps = (ParticleSystem)gos [i].GetComponent ("ParticleSystem"); ps.Play (); Vector3 p = cubes[i].transform.position; cubes[i].SetActive(false); // CreatePrimitiveでスフィアを作成 GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Sphere); obj.AddComponent<Rigidbody>(); // rigidbodyを与える obj.transform.position = p; // 元々あったtransformに設定 obj.GetComponent<Renderer>().material.color = Color.cyan; // 色を変更 obj.tag = "sphere"; // タグ付け } } } } }