public async Task Init(string robotId, UnityAction <string> onChangeCallback) { if (!SceneManager.Instance.SceneStarted || string.IsNullOrEmpty(robotId)) { Dropdown.Dropdown.dropdownItems.Clear(); gameObject.SetActive(false); return; } try { IRobot robot = SceneManager.Instance.GetRobot(robotId); Dropdown.Dropdown.dropdownItems.Clear(); List <string> arms = await robot.GetArmsIds(); PutData(arms, onChangeCallback); if (arms.Count == 1) { gameObject.SetActive(false); } else { gameObject.SetActive(true); } } catch (ItemNotFoundException ex) { Debug.LogError(ex); Base.NotificationsModernUI.Instance.ShowNotification("End effector load failed", "Failed to load end effectors, try again later"); } }