/*--------------------------------------------------------------------------------------------*/ private void BuildRowNavItem(GameObject pRowGo, string pId, string pLabel, GameObject pNavToRowGo) { GameObject itemGo = BuildRowItem(pRowGo, pId, pLabel, HoverItem.HoverItemType.Selector); HoverpanelInterface inter = gameObject.GetComponent <HoverpanelInterface>(); bool isBack = (pNavToRowGo == null); HoverItemDataSelector data = itemGo.GetComponent <HoverItemDataSelector>(); data.Action = (isBack ? SelectorActionType.NavigateOut : SelectorActionType.NavigateIn); #if UNITY_EDITOR UnityEditor.Events.UnityEventTools.AddPersistentListener( data.OnSelectedEvent, inter.OnRowSwitched); #else data.OnSelectedEvent.AddListener(inter.OnRowSwitched); #endif HoverpanelRowSwitchingInfo rowSwitch = itemGo.AddComponent <HoverpanelRowSwitchingInfo>(); rowSwitch.NavigateBack = isBack; rowSwitch.NavigateToRow = (isBack ? null : pNavToRowGo.GetComponent <HoverLayoutRectRow>()); rowSwitch.RowEntryTransition = (isBack ? HoverpanelRowSwitchingInfo.RowEntryType.SlideFromFront : HoverpanelRowSwitchingInfo.RowEntryType.SlideFromBack ); if (!isBack) { HoverCanvas can = itemGo.GetComponentInChildren <HoverCanvas>(); can.Alignment = HoverCanvas.CanvasAlignmentType.TextLeftAndIconRight; } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public void OnRowSwitched(IItemDataSelectable pItemData) { HoverpanelRowSwitchingInfo switchInfo = pItemData.gameObject.GetComponent <HoverpanelRowSwitchingInfo>(); if (switchInfo == null) { Debug.LogError("Selected item requires a '" + typeof(HoverpanelRowSwitchingInfo).Name + "' component.", pItemData.gameObject); return; } if (PreviousRow != null) { PreviousRow.gameObject.SetActive(false); } if (switchInfo.NavigateBack) { NavigateBack(switchInfo.RowEntryTransition); } else { NavigateToRow(switchInfo.NavigateToRow, switchInfo.RowEntryTransition); } }