private void Hide() { foreach (var propertyView in _propertiesViews) { Destroy(propertyView.gameObject); } _propertiesViews.Clear(); _tooltipVm.Properties.CollectionChanged -= PropertiesOnCollectionChanged; _tooltipVm = null; gameObject.SetActive(false); }
private void Show(ITooltipViewModel tooltipVm) { _textTitle.text = tooltipVm.Name; _textDescription.text = tooltipVm.Description; _tooltipVm = tooltipVm; _tooltipVm.Properties.CollectionChanged += PropertiesOnCollectionChanged; foreach (var propertyVm in tooltipVm.Properties.Values) { _propertiesViews.Add(ViewManager.Instantiate <TooltipPropertyView, ITooltipPropertyViewModel>( propertyVm, _propertyPrefab, _propertiesTransform)); } gameObject.SetActive(true); Canvas.ForceUpdateCanvases(); // force to recompute the ContentSizeFitter immediatly for correct height. var position = Camera.main.WorldToScreenPoint(tooltipVm.Target.position); transform.position = new Vector3(position.x + RectTransform.rect.width / 2 + tooltipVm.PixelRadius, position.y + RectTransform.rect.height / 2 + tooltipVm.PixelRadius, position.z); }