I'm having weird inconsistent behaviour with this function. I have two objects using the Random.insideUnitCircle and they are behaving in different ways. I can offset one using this and it behaves perfectly. It starts at the origin x = 0, z = 0 so I can move it using the code below to where I want it. Code example below. Code (CSharp): Tempprefabpos = Random.insideUnitCircle * 5 + TemporiginPos; PrefabPos.x = Tempprefabpos.x; PrefabPos.y = 0; PrefabPos.z = Tempprefabpos.y; Instantiate(BusinessPrefab, PrefabPos, Quaternion.identity); But on another object the origin is offset from 0,0 somehow, which means it moves off in weird tangents that I dont want when I try to offset it from the origin. I'm wondering how this could happen and what could effect it. It seems like the values are correct when I watch them in the debugger, but somehow during instantiation, or I don't know when its moving them to the wrong position. I'm wondering if anyone has any idea of what could be happening because I cant figure it out. I dont think its anything wrong with the code but I dont know. Is another object affecting it somehow?