Random Spawner not working properly
Okay basically my problem is that i want to be able to randomly spawn objects from the side, like flappybirds where pipes spawn at the side. For some reason the Original obstacle which the spawning script is set to does not make my planes spawn from the side, yet it seems to be spawning it dead in the middle of the screen, and makes it not be able to function, yet the original obstacle which i put on to the screen manually is fully functional. The first screenshot here is the original plane moving, while the second screenshot shows the spawned/cloned plane stuck in the middle not functioning. Also if you look at the inspector at the second screenshot it shows the cloned planes have no script components or rigidbody or whatever while obviously the original plane does.
Okay. Here is my code for the spawner:
using UnityEngine; using System.Collections;
public class RandomSpawner : MonoBehaviour {
public GameObject plane;
// Use this for initialization
void Start()
{
InvokeRepeating("CreateObstacle", 1f, 1.5f);
}
void CreateObstacle()
{
Instantiate(plane);
}
// Update is called once per frame
void Update()
{
}
}
And here for the movement of the obstacle:
using UnityEngine; using System.Collections;
public class obstacle : MonoBehaviour {
public Vector2 velocity = new Vector2(-6, 0);
public float range = 4;
// Use this for initialization
void Start()
{
GetComponent<Rigidbody2D>().velocity = velocity;
transform.position = new Vector3(transform.position.x, transform.position.y - range * Random.value, transform.position.z);
}
// Update is called once per frame
void Update () {
}
}
Thanks for the help! Oh and btw if you decide to give me code please make sure its in c#!
Answer by Nazirzadeh · May 06, 2016 at 06:26 AM
Instantiate(plane, your desired position, Quaternion.identity);
for example:
Instantiate(plane, new Vector3(-8, -2, 0), Quaternion.identity);
Okay thank you, but that only fixes where it spawns. When it enters the actual scene, it just stops moving, how do i fix that?
You should add force to the rigidbody: http://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html
This does not fix my problem. The instantiating copies the gameObject but doesn't seem to copy the components along with it, or it seems to delete the components as soon as the plane enters the scene on the far right for some reason.
Your answer
![](https://koobas.hobune.stream/wayback/20220612080240im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Editor crashes immediately 0 Answers
Variable changing from other script does not work. 1 Answer
c# - error CS0103: The name `hit' does not exist in the current context (cardboard switching) 1 Answer
Parse issue, despite the data being pulled from database 2 Answers
I need help with my code please 1 Answer