Cannot set localScale of GameObject by script.

var vertices = new List();

 GameObject mol = new GameObject();
 mol.name = "Mol";
 mol.transform.localScale = new Vector3(1, 1, 1);
 mol.transform.position = new Vector3(0, 0, 0);
 
 Mesh mesh = new Mesh();
 mesh.vertices = vertices.ToArray();
 
 mol.AddComponent<MeshFilter>();
 mol.GetComponent<MeshFilter>().sharedMesh = mesh;
 mol.AddComponent<SphereCollider>();
 SphereCollider coll = mol .GetComponent<SphereCollider>();
 coll.radius = 0.5f;
 
 mesh.RecalculateNormals();
 mesh.RecalculateBounds();
 
   for(int i = 0; i < vertices.Count(); i++)
         {
             GameObject ins = Instantiate(obj, vertices*, Quaternion.identity);*

ins.transform.SetParent(mol .transform);
}
I have a list of vertices which stored the coordinate(in Vector3) of each atom of the molecule and I have to generate a sphere to each vertices (in order to generate the molecule). I created an empty GameObject and set it as the parent of spheres that I Instantiated.
mol.transform.localScale = new Vector3(1, 1, 1);
I set the localScale of the GameObject and the number of scale also show on the inspector as i set. (i.e. I set the localScale as (0.5, 0.5, 0.5) and the inspector of mol show (0.5, 0.5, 0.5) ) but the problem is no matter localScale I set to the GameObject, The molecule size that show in the monitor is the same size.
Anyways, when I run the project, I set the scale on the inspector and the size GameObject that shows in the monitor is changed.
I tried many ways to set the scale but it didn’t work. What is going on with it? How can I set the localScale of GameObject?
Thanks!

When you run it cames to 1 again? if is that, you may change this line and set it on the Start() mol.transform.localScale = new Vector3(1, 1, 1);
if its not, i dont know seing that code sorry :slight_smile: