- Home /
Spawn object at a random predeterminated(transform) position
I don`t think doing this right, but i have create a array to store different transform`s and i need to make the script pick a random one.
 void Start () {
 
         Transform[] array = new Transform[8];
         array[0] = Spawner0;
         array[1] = Spawner1;
         array[2] = Spawner2;
         array[3] = Spawner3;
         array[4] = Spawner4;
         array[5] = Spawner5;
         array[6] = Spawner6;
         array[7] = Spawner7;
 
     }
 
     void Spawnar()
     {
                          //HERE I NEED TO PICK A ARRAY that contains the transform, how?
         GameObject clone = Instantiate(Enemy, array[Random.Range(0,7)].position, Quaternion.identity);
 
         //
         Vector2 origin = clone.transform.position;
         Vector2 target = Target.position;
 
         //
         Vector2 direction = new Vector2(target.x - origin.x, target.y - origin.y);
         clone.transform.up = direction;
         clone.GetComponent<Rigidbody2D>().AddRelativeForce(Vector2.up * Time.deltaTime * 100 * 8);
     }
               Comment
              
 
               
              Answer by bolkay · May 04, 2018 at 07:37 PM
Your code should look like this.
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class Spawn : MonoBehaviour {
     public Transform[] array = new Transform[5];
     int random;
     public GameObject generate;
     public Transform Target;
     // Use this for initialization
     void Start () {
         random = Random.Range(0, array.Length);
         Spawner();
     }
     void Spawner() {
         GameObject clone = Instantiate(generate, array[random].transform.position, array[random].transform.rotation) as GameObject;
         Vector2 origin = clone.transform.position;
         Vector2 target = Target.position;
 
         //
         Vector2 direction = new Vector2(target.x - origin.x, target.y - origin.y);
         clone.transform.up = direction;
         clone.GetComponent<Rigidbody2D>().AddRelativeForce(Vector2.up * Time.deltaTime * 100 * 8);
     }
     // Update is called once per frame
     void Update () {
         
     }
 }
 
Your answer
 
 
             Follow this Question
Related Questions
Load random gameobject to specific coordinates (2D) 0 Answers
Position an array of objects randomly 1 Answer
How do I make a object from position to position randomly and quickly in an array? 0 Answers
problem moving a prefab object in script (c#) 0 Answers
move enemy to random transform array 2 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                