//////////////////////////////////////////////////////////////////////////////////////////////// /*--------------------------------------------------------------------------------------------*/ public void Awake() { vPrevItemType = _ItemType; BuildDataIfNeeded(); UpdateItemsManager(true); }
/*--------------------------------------------------------------------------------------------*/ private HoverItemData BuildData(HoverItemType pType) { switch (pType) { case HoverItemType.Selector: return(gameObject.AddComponent <HoverItemDataSelector>()); case HoverItemType.Sticky: return(gameObject.AddComponent <HoverItemDataSticky>()); case HoverItemType.Checkbox: return(gameObject.AddComponent <HoverItemDataCheckbox>()); case HoverItemType.Radio: HoverItemDataRadio radioData = gameObject.AddComponent <HoverItemDataRadio>(); radioData.InitDefaultGroupId(gameObject.transform.parent); return(radioData); case HoverItemType.Slider: return(gameObject.AddComponent <HoverItemDataSlider>()); case HoverItemType.Text: return(gameObject.AddComponent <HoverItemDataText>()); default: throw new InvalidEnumArgumentException("Unhandled type: " + pType); } }
/*--------------------------------------------------------------------------------------------*/ private void UpdateWithLatestItemTypeIfNeeded() { if (_ItemType == vPrevItemType) { return; } HoverItemData newData = BuildData(_ItemType); TransferData(newData); DestroyData(_Data, newData); _Data = newData; if (OnTypeChanged != null) { OnTypeChanged.Invoke(this); } vPrevItemType = _ItemType; }
/*--------------------------------------------------------------------------------------------*/ private void UpdateWithLatestItemTypeIfNeeded() { if ( _ItemType == vPrevItemType ) { return; } HoverItemData newData = BuildData(_ItemType); TransferData(newData); DestroyImmediate(_Data); _Data = newData; if ( OnTypeChanged != null ) { OnTypeChanged.Invoke(this); } vPrevItemType = _ItemType; }
/*--------------------------------------------------------------------------------------------*/ private HoverItemData BuildData(HoverItemType pType) { switch ( pType ) { case HoverItemType.Parent: HoverItemDataParent parentData = gameObject.AddComponent<HoverItemDataParent>(); parentData.InitChildGroup(GetChildItems); return parentData; case HoverItemType.Selector: return gameObject.AddComponent<HoverItemDataSelector>(); case HoverItemType.Sticky: return gameObject.AddComponent<HoverItemDataSticky>(); case HoverItemType.Checkbox: return gameObject.AddComponent<HoverItemDataCheckbox>(); case HoverItemType.Radio: HoverItemDataRadio radioData = gameObject.AddComponent<HoverItemDataRadio>(); radioData.InitDefaultGroupId(gameObject.transform.parent); return radioData; case HoverItemType.Slider: return gameObject.AddComponent<HoverItemDataSlider>(); case HoverItemType.Text: return gameObject.AddComponent<HoverItemDataText>(); default: throw new InvalidEnumArgumentException("Unhandled type: "+pType); } }