Issue Instantiating prefab in C#

HI There,

I’m trying to instantiate an object using C# to a specific spawn point. I want it to instantiate as a child of the script object as well…

My code so far is as follows:

using UnityEngine;
using System.Collections;

public class enemySpawn : MonoBehaviour {
	public float spawnTimer;
	public float spawnGap;
	public GameObject parentGameObject; 
	public GameObject enemyObject;
	public Transform spawnA; 
	public Transform spawnB; 
	public Transform spawnC; 	
	public Transform spawnD; 
	// Use this for initialization
	void Start () {
	spawnTimer = 0;
	spawnGap = 7.0f;
	// Update is called once per frame
	void Update () {
		if (spawnTimer > 0)
			spawnTimer -= Time.deltaTime;
		if(spawnTimer < 0)
			spawnTimer = 0;
			if(spawnTimer == 0){
			spawnTimer = spawnGap;
			GameObject go;
			go=Instantiate(enemyObject,spawnA.position, spawnA.rotation) as GameObject;	

This instantiates an object, but it’s instantiating it with a messed up scale. Rather than the objects scale of 0.6, it’s giving it ‘6.25e-05’

When you set the new object’s parent, its scale is recalculated to keep the original proportions; if the parent is huge, the object’s scale may become very small. If you just need all of these objects to be childed to a common parent, you can have an empty object for this purpose.

I always have trouble setting the spawned objects position and then parenting it. What I do is instantiate the spawned object at the parent objects position (like you are doing) and then use local position/rotation after I parent it. Like this:

go.transform.parent = transform;
go.transform.localPosition = new Vector3(0,0,0);
go.transform.localScale = new Vector3(1,1,1);
go.transform.localRotation = . . . . …