//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ internal void Build(IHoverboardPanelState pPanelState, LayoutState pLayoutState, IItemVisualSettingsProvider pItemVisualSettProv) { Vector2 dir = pLayoutState.ItemLayout.Direction; Vector2 pos = Vector2.zero; Vector2 posMin = Vector2.zero; Vector2 posMax = Vector2.zero; for ( int i = 0 ; i < pLayoutState.FullItems.Length ; i++ ) { BaseItemState itemState = pLayoutState.FullItems[i]; IItemVisualSettings visualSett = pItemVisualSettProv.GetSettings(itemState.Item); GameObject itemObj = (GameObject)itemState.Item.DisplayContainer; UiItem uiItem = itemObj.AddComponent<UiItem>(); uiItem.Build(pPanelState, pLayoutState, itemState, visualSett); uiItem.transform.localPosition = new Vector3(pos.x, 0, pos.y)*UiItem.Size; var itemSize = new Vector2(itemState.Item.Width, itemState.Item.Height); posMin = Vector2.Min(posMin, pos); posMax = Vector2.Max(posMax, pos+itemSize); pos += Vector2.Scale(itemSize, dir); } Vector2 size = posMax-posMin; Bounds = new Rect(posMin.x, posMin.y, size.x, size.y); gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localRotation = Quaternion.identity; gameObject.transform.localScale = Vector3.one; }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ private void RefreshLayouts() { FullLayouts = new LayoutState[ItemPanel.Layouts.Length]; for (int i = 0; i < ItemPanel.Layouts.Length; i++) { var layout = new LayoutState(ItemPanel.Layouts[i], vSettings); FullLayouts[i] = layout; } }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public PanelState(ItemPanel pItemPanel, InteractionSettings pSettings) { ItemPanel = pItemPanel; vSettings = pSettings; DisplayStrength = 1; FullLayouts = new LayoutState[ItemPanel.Layouts.Length]; for ( int i = 0 ; i < ItemPanel.Layouts.Length ; i++ ) { var layout = new LayoutState(ItemPanel.Layouts[i], vSettings); FullLayouts[i] = layout; } Layouts = new ReadOnlyCollection<IHoverboardLayoutState>(FullLayouts); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public PanelState(ItemPanel pItemPanel, InteractionSettings pSettings) { ItemPanel = pItemPanel; vSettings = pSettings; DisplayStrength = 1; FullLayouts = new LayoutState[ItemPanel.Layouts.Length]; for (int i = 0; i < ItemPanel.Layouts.Length; i++) { var layout = new LayoutState(ItemPanel.Layouts[i], vSettings); FullLayouts[i] = layout; } Layouts = new ReadOnlyCollection <IHoverboardLayoutState>(FullLayouts); }
//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ private void RefreshLayouts() { FullLayouts = new LayoutState[ItemPanel.Layouts.Length]; for ( int i = 0 ; i < ItemPanel.Layouts.Length ; i++ ) { var layout = new LayoutState(ItemPanel.Layouts[i], vSettings); FullLayouts[i] = layout; } }