public TrayInputButtonGroup Create(TrayInputButtonGroup trayInputButtonGroupAsset, Transform parent) { TrayInputButtonGroup trayInputButtonGroup = Object.Instantiate(trayInputButtonGroupAsset, parent); if (trayInputButtonGroup.Buttons.Length != InputButtonDefinitions.Length) { Log.LogError(this, "Number of button containers does not match the number of button definitions"); } else { for (int i = 0; i < InputButtonDefinitions.Length; i++) { trayInputButtonGroup.Buttons[i].Index = i; if (InputButtonDefinitions[i] != null) { InputButtonDefinitions[i].SetUpButton(trayInputButtonGroup.Buttons[i]); if (ButtonStateOverrides != null && ButtonStateOverrides.Length > i && ButtonStateOverrides[i] != TrayInputButton.ButtonState.None) { trayInputButtonGroup.Buttons[i].InitializeView(ButtonStateOverrides[i]); } } else { trayInputButtonGroup.Buttons[i].InitializeView(TrayInputButton.ButtonState.Disabled); trayInputButtonGroup.Buttons[i].gameObject.SetActive(value: false); } } } return(trayInputButtonGroup); }
private IEnumerator replaceButtons(InputButtonGroupDefinition newButtonGroupDefinition) { AssetRequest <TrayInputButtonGroup> assetRequest = Content.LoadAsync(newButtonGroupDefinition.TemplateContentKey); yield return(assetRequest); if (!(RightContainer == null)) { if (RightContainer.childCount > 0) { clearChildren(RightContainer); } yield return(new WaitForEndOfFrame()); currentGroupDefinition = newButtonGroupDefinition; overrideDefinitions.Clear(); trayInputButtonGroup = newButtonGroupDefinition.Create(assetRequest.Asset, RightContainer); Service.Get <EventDispatcher>().DispatchEvent(default(ControlsScreenEvents.ControlLayoutLoadComplete)); } }