자산 목록창 호버링 썸네일

This commit is contained in:
geondo55
2025-03-21 12:40:01 +09:00
parent 6c2c090329
commit 65583f6ac5
14 changed files with 3107 additions and 171 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ceec50a8b754b074398ef55ad9fced85
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -41,7 +41,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 176, y: -380} m_AnchoredPosition: {x: 176, y: -180}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6666370705478014690 --- !u!222 &6666370705478014690
@@ -460,96 +460,6 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!1 &1153233716581225581
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6411784210493857566}
- component: {fileID: 3078118051692569992}
- component: {fileID: 3962707715629481282}
- component: {fileID: 6609093613972653561}
m_Layer: 5
m_Name: ThumbnailArea
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6411784210493857566
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1153233716581225581}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4417642552463640056}
m_Father: {fileID: 7724524012160675479}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -152}
m_SizeDelta: {x: -32, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3078118051692569992
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1153233716581225581}
m_CullTransparentMesh: 1
--- !u!114 &3962707715629481282
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1153233716581225581}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 1b80a66acf95ce2469adf5eeaf791426, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &6609093613972653561
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1153233716581225581}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
--- !u!1 &1736974432791401321 --- !u!1 &1736974432791401321
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -974,78 +884,6 @@ MonoBehaviour:
m_hasFontAssetChanged: 0 m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0} m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &2128935713513258972
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4417642552463640056}
- component: {fileID: 3066338646041751314}
- component: {fileID: 6894648931711855464}
m_Layer: 5
m_Name: Image_Thumbnail
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4417642552463640056
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2128935713513258972}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6411784210493857566}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3066338646041751314
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2128935713513258972}
m_CullTransparentMesh: 1
--- !u!114 &6894648931711855464
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2128935713513258972}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!1 &2236880388246327258 --- !u!1 &2236880388246327258
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1951,7 +1789,6 @@ RectTransform:
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 6998202401820620409} - {fileID: 6998202401820620409}
- {fileID: 6411784210493857566}
- {fileID: 7377906147476933673} - {fileID: 7377906147476933673}
m_Father: {fileID: 4604531885542700645} m_Father: {fileID: 4604531885542700645}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@@ -0,0 +1,214 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3082980289152057432
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1657595473787132685}
- component: {fileID: 8742853186986633108}
- component: {fileID: 8473760126387393213}
m_Layer: 5
m_Name: Image_Thumbnail
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1657595473787132685
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3082980289152057432}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6501351405791455735}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8742853186986633108
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3082980289152057432}
m_CullTransparentMesh: 1
--- !u!114 &8473760126387393213
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3082980289152057432}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!1 &3686911163219566976
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7234094257532827523}
- component: {fileID: 6661766160841027816}
m_Layer: 0
m_Name: Panel_Thumbnail
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &7234094257532827523
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3686911163219566976}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6501351405791455735}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &6661766160841027816
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3686911163219566976}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f7b4da402202bc549855a51d91da927f, type: 3}
m_Name:
m_EditorClassIdentifier:
Image_Thumbnail: {fileID: 0}
--- !u!1 &6400492618694043990
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6501351405791455735}
- component: {fileID: 3372518875818760858}
- component: {fileID: 456980040998254017}
- component: {fileID: 6335160125036330044}
m_Layer: 5
m_Name: Mask
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6501351405791455735
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6400492618694043990}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1657595473787132685}
m_Father: {fileID: 7234094257532827523}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 150}
m_SizeDelta: {x: 322.0393, y: 200}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3372518875818760858
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6400492618694043990}
m_CullTransparentMesh: 1
--- !u!114 &456980040998254017
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6400492618694043990}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 1b80a66acf95ce2469adf5eeaf791426, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &6335160125036330044
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6400492618694043990}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5d311d6adf51c514388620c9c3c78ab4
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -116,8 +116,14 @@ namespace XED.Manage
canvas_static.panel_toolbar.onClickStartDrawWall += ()=>statusPanel.SetMode(ModePanel.ProgramMode.WallDrawing); canvas_static.panel_toolbar.onClickStartDrawWall += ()=>statusPanel.SetMode(ModePanel.ProgramMode.WallDrawing);
canvas_Windows.panel_assetlibrary.scrollView.onSelect.AddListener(canvas_Windows.panel_assetproperties.Open); canvas_Windows.panel_assetlibrary.scrollView.onSelect.AddListener(canvas_Windows.panel_assetproperties.Open);
canvas_Windows.panel_assetlibrary.scrollView.onHover.AddListener(canvas_Popup.panel_thumbnail.HandleOpenClose);
canvas_Windows.panel_assetlibrary.scrollRect.onExit.AddListener(canvas_Popup.panel_thumbnail.HandleOpenClose);
canvas_Windows.panel_assetproperties.onClickPreview += canvas_Windows.panel_predefinedtype.Open; canvas_Windows.panel_assetproperties.onClickPreview += canvas_Windows.panel_predefinedtype.Open;
canvas_Windows.panel_assetproperties.onOpen += saveLoadFBXData.GetCustomAssetData; canvas_Windows.panel_assetproperties.onOpen += saveLoadFBXData.GetCustomAssetData;
canvas_Popup.panel_thumbnail.onOpen += saveLoadFBXData.GetCustomAssetData;
canvas_Popup.panel_thumbnail.onGetPosition += canvas_Windows.panel_assetlibrary.GetPositionX;
} }
void StatusConnection() void StatusConnection()

View File

@@ -15,6 +15,7 @@ namespace XED
public Panel_PropertyViewer panel_propertyviewer; public Panel_PropertyViewer panel_propertyviewer;
public Panel_DragHandler panel_draghandler; public Panel_DragHandler panel_draghandler;
public Panel_AssetEdit panel_assetedit; public Panel_AssetEdit panel_assetedit;
public Panel_Thumbnail panel_thumbnail;
public override void AfterAwake() public override void AfterAwake()
{ {

View File

@@ -27,5 +27,10 @@ namespace XED.UI
scrollView.DeselectAll(); scrollView.DeselectAll();
gameObject.SetActive(false); gameObject.SetActive(false);
} }
public float GetPositionX()
{
return rectTransform.anchoredPosition.x;
}
} }
} }

View File

@@ -14,7 +14,6 @@ namespace XED.UI
public class Panel_AssetProperties : PanelBase public class Panel_AssetProperties : PanelBase
{ {
public TextMeshProUGUI Text_Name; public TextMeshProUGUI Text_Name;
public RawImage Image_Thumbnail;
public TextMeshProUGUI Text_CreateDate; public TextMeshProUGUI Text_CreateDate;
public TextMeshProUGUI Text_LastRevisionDate; public TextMeshProUGUI Text_LastRevisionDate;
public TextMeshProUGUI Text_UploadDate; public TextMeshProUGUI Text_UploadDate;
@@ -72,8 +71,6 @@ namespace XED.UI
Text_UploadDate.text = assetData.UploadDate; Text_UploadDate.text = assetData.UploadDate;
Text_Creator.text = assetData.Creator; Text_Creator.text = assetData.Creator;
Text_Manager.text = assetData.Manager; Text_Manager.text = assetData.Manager;
Image_Thumbnail.gameObject.SetActive(true);
Image_Thumbnail.texture = assetData.thumbnail;
} }
private void Init() private void Init()
@@ -84,7 +81,6 @@ namespace XED.UI
Text_UploadDate.text = string.Empty; Text_UploadDate.text = string.Empty;
Text_Creator.text = string.Empty; Text_Creator.text = string.Empty;
Text_Manager.text = string.Empty; Text_Manager.text = string.Empty;
Image_Thumbnail.gameObject.SetActive(false);
} }
} }
} }

View File

@@ -0,0 +1,63 @@
using Ookii.Dialogs;
using System;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.UIElements;
using XED.Hierarchy;
using XED.Util;
using XRLib.UI;
namespace XED.UI
{
public class Panel_Thumbnail : PanelBase
{
public RawImage Image_Thumbnail;
public Func<string, CustomAssetData> onOpen;
public Func<float> onGetPosition;
private CustomAssetData curCustomAssetData;
private Canvas canvas;
void Awake()
{
canvas = GetComponentInParent<Canvas>();
}
public void HandleOpenClose(HierarchyItem selectedItem)
{
if (selectedItem == null)
{
SetActive(false);
return;
}
curCustomAssetData = onOpen?.Invoke(selectedItem.name);
SetActive(curCustomAssetData != null);
SetUI(curCustomAssetData);
}
private void SetUI(CustomAssetData assetData)
{
if (assetData == null)
return;
Image_Thumbnail.texture = assetData.thumbnail;
}
private void Update()
{
RectTransformUtility.ScreenPointToLocalPointInRectangle(
canvas.transform as RectTransform,
Input.mousePosition,
canvas.worldCamera,
out Vector2 pos
);
rectTransform.anchoredPosition = new Vector2((float)onGetPosition?.Invoke(), pos.y);
}
private void OnDisable()
{
rectTransform.anchoredPosition = new Vector2(-Screen.width, 0);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: f7b4da402202bc549855a51d91da927f

View File

@@ -1,3 +1,4 @@
using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
@@ -8,7 +9,7 @@ using XED.UI;
namespace XED.Hierarchy namespace XED.Hierarchy
{ {
public class CustomScrollRect : ScrollRect, IPointerDownHandler, IPointerUpHandler public class CustomScrollRect : ScrollRect, IPointerDownHandler, IPointerUpHandler, IPointerExitHandler
{ {
public bool passDragToChildren = true; public bool passDragToChildren = true;
public UnityEvent<HierarchyItem, HierarchyItem> setToChildItem; public UnityEvent<HierarchyItem, HierarchyItem> setToChildItem;
@@ -22,6 +23,7 @@ namespace XED.Hierarchy
public HierarchyItem sourceItem; public HierarchyItem sourceItem;
private ScrollItemUI hoverItemUI; private ScrollItemUI hoverItemUI;
private Coroutine coroutinePendPopup; private Coroutine coroutinePendPopup;
public UnityEvent<HierarchyItem> onExit;
public override void OnBeginDrag(PointerEventData eventData) public override void OnBeginDrag(PointerEventData eventData)
{ {
if (eventData.button != PointerEventData.InputButton.Left) if (eventData.button != PointerEventData.InputButton.Left)
@@ -38,6 +40,7 @@ namespace XED.Hierarchy
base.OnBeginDrag(eventData); // Allow default scrolling if needed base.OnBeginDrag(eventData); // Allow default scrolling if needed
} }
} }
public override void OnDrag(PointerEventData eventData) public override void OnDrag(PointerEventData eventData)
{ {
if (eventData.button == PointerEventData.InputButton.Left) if (eventData.button == PointerEventData.InputButton.Left)
@@ -80,6 +83,8 @@ namespace XED.Hierarchy
} }
} }
public override void OnEndDrag(PointerEventData eventData) public override void OnEndDrag(PointerEventData eventData)
{ {
if (eventData.button == PointerEventData.InputButton.Left) if (eventData.button == PointerEventData.InputButton.Left)
@@ -206,5 +211,10 @@ namespace XED.Hierarchy
itemPopup.SetActive(true); itemPopup.SetActive(true);
yield return null; yield return null;
} }
public void OnPointerExit(PointerEventData eventData)
{
onExit?.Invoke(null);
}
} }
} }

View File

@@ -36,6 +36,7 @@ namespace XED.Hierarchy
public UnityEvent<List<HierarchyItem>> onSelect; public UnityEvent<List<HierarchyItem>> onSelect;
public UnityEvent<HierarchyItem, HierarchyItem> onParentChanged; public UnityEvent<HierarchyItem, HierarchyItem> onParentChanged;
public UnityEvent<HierarchyItem> onHover;
public bool isSiblingEditable; public bool isSiblingEditable;
@@ -246,6 +247,7 @@ namespace XED.Hierarchy
itemUI.onClickMultiple.AddListener(OnSelectMultiple); itemUI.onClickMultiple.AddListener(OnSelectMultiple);
itemUI.onToggleExpand.RemoveAllListeners(); itemUI.onToggleExpand.RemoveAllListeners();
itemUI.onToggleExpand.AddListener(OnToggleExpand); itemUI.onToggleExpand.AddListener(OnToggleExpand);
itemUI.onHover.AddListener(OnHover);
return itemUI; return itemUI;
} }
public void OnSelect(List<HierarchyItem> items) public void OnSelect(List<HierarchyItem> items)
@@ -274,6 +276,10 @@ namespace XED.Hierarchy
lastSelectedItem = item; lastSelectedItem = item;
onSelect?.Invoke(selectedItems); onSelect?.Invoke(selectedItems);
} }
public void OnHover(HierarchyItem item)
{
onHover?.Invoke(item);
}
public void OnSelectAnother(HierarchyItem item) public void OnSelectAnother(HierarchyItem item)
{ {
if (selectedItems.Count == 1 && selectedItems[0] == item) if (selectedItems.Count == 1 && selectedItems[0] == item)

View File

@@ -9,7 +9,7 @@ using System;
namespace XED.Hierarchy namespace XED.Hierarchy
{ {
public class ScrollItemUI : UnityEngine.MonoBehaviour, IPointerClickHandler//, IBeginDragHandler, IEndDragHandler, public class ScrollItemUI : UnityEngine.MonoBehaviour, IPointerClickHandler, IPointerEnterHandler//, IBeginDragHandler, IEndDragHandler,
{ {
public TMP_Text nameText; public TMP_Text nameText;
public Image iconImage; public Image iconImage;
@@ -21,6 +21,7 @@ namespace XED.Hierarchy
public UnityEvent<HierarchyItem> onClickSingle; public UnityEvent<HierarchyItem> onClickSingle;
public UnityEvent<HierarchyItem> onClickAddSingle; public UnityEvent<HierarchyItem> onClickAddSingle;
public UnityEvent<HierarchyItem> onClickMultiple; public UnityEvent<HierarchyItem> onClickMultiple;
public UnityEvent<HierarchyItem> onHover;
public UnityEvent onToggleExpand; public UnityEvent onToggleExpand;
public UnityEvent<HierarchyItem> onDragStart; public UnityEvent<HierarchyItem> onDragStart;
public UnityEvent<HierarchyItem> onDragEnd; public UnityEvent<HierarchyItem> onDragEnd;
@@ -116,6 +117,11 @@ namespace XED.Hierarchy
} }
} }
} }
public void OnPointerEnter(PointerEventData eventData)
{
onHover?.Invoke(currentItem);
}
public void OnBeginDrag(BaseEventData data) public void OnBeginDrag(BaseEventData data)
{ {
Debug.Log("DragStart " + currentItem.name); Debug.Log("DragStart " + currentItem.name);