private void PlaceObstacleRandomly(int row, int type) { var instance = GameObject.CreatePrimitive((type == 0) ? PrimitiveType.Sphere : PrimitiveType.Cube); instance.transform.parent = transform; instance.transform.eulerAngles = transform.eulerAngles; instance.transform.localPosition = new Vector3(Random.Range(-14f, 14f) + newestRowShift * 5, 2, row * 10 + Random.Range(-4f, 4f)); var scale = Random.Range(2f, 5f); if (type < 2) { instance.transform.localScale = new Vector3(scale, scale, scale); } else { instance.transform.localScale = new Vector3(Random.Range(0.5f, 3f), Random.Range(0.5f, 3f), Random.Range(0.5f, 3f)); } instance.transform.Rotate(Vector3.up * Random.Range(0f, 360f)); //instance.SetColor(Random.ColorHSV(0, 1, 0, 0.1f, 0.9f, 1, 1, 1)); var anim = AnimatedTexture.AddToGameObject(instance, obstacleTexture); anim.StartAnimation(Random.Range(0f, 2f)); var rb = instance.AddComponent <Rigidbody>(); rb.mass = scale * 3; }