private void Start() { moduleId = _moduleIdCounter++; KMSelectable selfSelectable = GetComponent <KMSelectable>(); selfSelectable.Children = new KMSelectable[DIGITS_COUNT + 1]; for (int i = 0; i < DIGITS_COUNT; i++) { SelectableDigit digit = Instantiate(SelectableDigitPrefab); digit.transform.parent = Display.transform; float x = DIGITS_INTERVAL * (i - (DIGITS_COUNT - 1) / 2f); digit.transform.localPosition = new Vector3(x, DIGITS_HEIGHT, 0f); digit.transform.localRotation = new Quaternion(); digit.transform.localScale = Vector3.one; digit.Actualized += () => OnDigitActualized(); KMSelectable digitSelectable = digit.GetComponent <KMSelectable>(); digitSelectable.Parent = selfSelectable; selfSelectable.Children[i] = digitSelectable; int digitIndex = i; digitSelectable.OnInteract += () => OnDigitPressed(digitIndex); digits[i] = digit; } selfSelectable.Children[DIGITS_COUNT] = SkipButton; selfSelectable.UpdateChildren(); SkipButton.OnInteract += () => OnSkipPressed(); GetComponent <KMBombModule>().OnActivate += () => Activate(); }
private void UpdateDigit(int digitIndex, bool log = false) { SelectableDigit digit = digits[digitIndex]; if (digit.disabled) { return; } digit.value = values[digitIndex]; int value = GetDigitAt(digitIndex); digit.character = (char)(value + '0'); if (log) { Debug.LogFormat("[Eight #{0}] Digit #{1} new rendered value: {2}", moduleId, digitIndex + 1, value); } }