void ColorArrows(ColorButtonParams colorButtonParams) { for (int i = 0; i < arrowContainer.transform.childCount; i++) { SpriteRenderer spriteRenderer = arrowContainer.transform.GetChild(i).GetComponent <SpriteRenderer>(); if (spriteRenderer) { spriteRenderer.color = colorButtonParams.color; } else { arrowContainer.transform.GetChild(i).GetChild(0).GetComponent <SpriteRenderer>().color = colorButtonParams.color; } } if (textLambda) { textLambda.text = "" + colorButtonParams.lambda; } if (NewtonCirclesDrawer) { NewtonCirclesDrawer.lambda = colorButtonParams.lambda; NewtonCirclesDrawer.color = colorButtonParams.color; NewtonCirclesDrawer.ReinitCircleCanvas(); } }
// Use this for initialization void Start() { Debug.Assert(NewtonCirclesDrawer, "NewtonCirclesDrawer of " + name + " is lost"); Debug.Assert(arrowContainer, "arrowContainer of " + name + " is lost"); paramsCache = new ColorButtonParams[transform.childCount]; for (int i = 0; i < transform.childCount; i++) { ColorButtonParams colorButtonParams = new ColorButtonParams(); Button button = transform.GetChild(i).GetComponent <Button>(); colorButtonParams.color = button.GetComponent <Image>().color; colorButtonParams.lambda = button.GetComponent <ArrowColorParams>().lambdaValue; colorButtonParams.circlesScale = button.GetComponent <ArrowColorParams>().circlesScale; button.onClick.AddListener(() => ColorArrows(colorButtonParams)); paramsCache[i] = colorButtonParams; } ColorArrows(paramsCache[Random.Range(0, paramsCache.Length)]); }