Question by
koral293a · Feb 02, 2020 at 06:02 PM ·
vector3transform.positiontransform.translate
transform position don't work with scaled parent
Hi, so i have a working script for Slot Machine. If Render mode is set to Screen Space everything works fine. The problem starts when i set render mode to World Space and scale this canvas. When i scale my canvas to small scale my child image position y is jumping so much that Unity is crashing. I can't figure this out how do i transform position of my image including scale of the parent object (canvas). My script look like this:
void Update()
{
if(Spin)
{
foreach(Transform image in transform)
{
image.transform.Translate(Vector3.down * Time.smoothDeltaTime * speed, Space.World);
if(image.transform.position.y <= 0)
{
image.transform.position = new Vector3(image.transform.position.x, image.transform.position.y + 600, image.transform.position.z);
}
}
}
}
public void Randomizer()
{
List<int> pos = new List<int>();
pos.Add(-300);
pos.Add(200);
pos.Add(-200);
pos.Add(100);
pos.Add(-100);
pos.Add(0);
foreach(Transform image in transform)
{
int rand = Random.Range(0, pos.Count);
image.transform.position = new Vector3(image.transform.position.x, pos[rand] + transform.parent.GetComponent<RectTransform>().transform.position.y, image.transform.position.z);
pos.RemoveAt(rand);
}
}
I really appreciate the help. Also I'm beginner so please precise your answers. Thanks.
Comment