public void AddPrefabPreview(RTPrefab prefab) { GameObject previewButton = _previewButtonPool.GetPooledObject(); previewButton.name = "Preview_" + prefab.UnityPrefab.name; Image image = previewButton.GetComponent <Image>(); if (image != null) { image.sprite = prefab.PreviewSprite; } RTPrefabPreviewButton previewBtnScript = previewButton.GetComponent <RTPrefabPreviewButton>(); previewBtnScript.Prefab = prefab; previewBtnScript.Text = prefab.UnityPrefab.name; previewBtnScript.HoverEnter -= OnPrefabPreviewHoverEnter; previewBtnScript.HoverEnter += OnPrefabPreviewHoverEnter; previewBtnScript.HoverExit -= OnPrefabPreviewHoverExit; previewBtnScript.HoverExit += OnPrefabPreviewHoverExit; Button button = previewButton.GetComponent <Button>(); if (button != null) { button.onClick.RemoveListener(OnPreviewButtonClicked); button.onClick.AddListener(OnPreviewButtonClicked); } }
private void OnPreviewButtonClicked() { System.Collections.Generic.List <RaycastResult> hoveredUIElements = RTScene.Get.GetHoveredUIElements(); if (hoveredUIElements.Count != 0) { foreach (RaycastResult uiElement in hoveredUIElements) { RTPrefabPreviewButton prefabPreviewBtn = uiElement.gameObject.GetComponent <RTPrefabPreviewButton>(); if (prefabPreviewBtn != null) { if (PrefabPreviewClicked != null) { PrefabPreviewClicked(prefabPreviewBtn.Prefab); } break; } } } }
private void OnPreviewButtonClicked() { var hoveredUIElements = RTScene.Get.GetHoveredUIElements(); if (hoveredUIElements.Count != 0) { foreach (var uiElement in hoveredUIElements) { RTPrefabPreviewButton prefabPreviewBtn = uiElement.gameObject.GetComponent <RTPrefabPreviewButton>(); if (prefabPreviewBtn != null) { if (PrefabPreviewClicked != null) { PrefabPreviewClicked(prefabPreviewBtn.Prefab); } break; } } } }