private void OnTreeSelectionChanged(object sender, TreeSelectionArgs <ILevelEditorObject> e) { if (!selectedThroughObjectManager) { selectedThroughUI = true; selectedThroughObjectManager = false; } if (realLevelEditor != null) { realLevelEditor.Selection.SetSelection(e.New); } }
private void OnTreeSelectionChanged(object sender, TreeSelectionArgs <object> e) { if (e.New is LevelEditorResource resource) { if (generateAsync && creatingIcons) { StopCoroutine(createIconsRoutine); } creatingIcons = false; resource = LookupAsset(resource.TreeID); if (activeButtons.Count < resource.Children.Count) { for (int i = activeButtons.Count; i < resource.Children.Count; i++) { GetAssetButton(); } } else if (activeButtons.Count > resource.Children.Count) { for (int i = activeButtons.Count - 1; i >= resource.Children.Count; i--) { PoolAssetButton(activeButtons[i]); } } Assert.AreEqual(activeButtons.Count, resource.Children.Count); for (int i = 0; i < resource.Children.Count; i++) { activeButtons[i].Item = resource.Children[i]; activeButtons[i].Label.text = resource.Children[i].Name; #if UNITY_EDITOR activeButtons[i].gameObject.name = $"{assetButtonPrefab.name} - {resource.Children[i].Name} ({resource.Children[i].ID})"; #endif if (generateAsync) { activeButtons[i].Icon.sprite = null; activeButtons[i].Icon.color = Color.clear; } else { activeButtons[i].Icon.sprite = GetIcon(resource.Children[i], out Color iconColor); activeButtons[i].Icon.color = iconColor; } } if (generateAsync) { createIconsRoutine = StartCoroutine(GetIconsRoutine(resource.Children)); } } else if (e.New == null) { for (int i = activeButtons.Count - 1; i >= 0; i--) { PoolAssetButton(activeButtons[i]); } } }