protected override void OnHide(bool isShutdown, object userData) { base.OnHide(isShutdown, userData); entityDataRadiusVisualiser = null; transform.localPosition = Vector3.zero; radiusVisualizer.localScale = Vector3.zero; }
public static EntityDataRadiusVisualiser Create(float radius, object userData = null) { EntityDataRadiusVisualiser entityData = ReferencePool.Acquire <EntityDataRadiusVisualiser>(); entityData.Radius = radius; return(entityData); }
public void ShowPreviewTower(TowerData towerData) { if (towerData == null) { return; } previewTowerData = towerData; uiMaskFormSerialId = GameEntry.UI.OpenUIForm(EnumUIForm.UIMask); entityLoader.ShowEntity <EntityTowerPreview>(towerData.PreviewEntityId, (entity) => { previewTowerEntity = entity; previewTowerEntityLogic = entity.Logic as EntityTowerPreview; if (previewTowerEntityLogic == null) { Log.Error("Entity '{0}' logic type invaild, need EntityTowerPreview", previewTowerEntity.Id); return; } TowerLevelData towerLevelData = towerData.GetTowerLevelData(0); if (towerLevelData == null) { Log.Error("Tower '{0}' Level '{1}' data is null.", towerData.Name, 0); } EntityDataRadiusVisualiser entityDataRadiusVisualiser = EntityDataRadiusVisualiser.Create(towerLevelData.Range); entityLoader.ShowEntity <EntityRadiusVisualizer>(EnumEntity.RadiusVisualiser, (entityRadiusVisualizer) => { GameEntry.Entity.AttachEntity(entityRadiusVisualizer, previewTowerEntity); }, entityDataRadiusVisualiser); isBuilding = true; }, EntityDataTowerPreview.Create(towerData)); }
protected override void OnShow(object userData) { base.OnShow(userData); radiusVisualizer.localEulerAngles = localEuler; entityDataRadiusVisualiser = userData as EntityDataRadiusVisualiser; if (entityDataRadiusVisualiser == null) { Log.Error("EntityDataRadiusVisualiser data is invalid."); return; } radiusVisualizer.localScale = Vector3.one * entityDataRadiusVisualiser.Radius * 2.0f; var visualizerRenderer = radiusVisualizer.GetComponent <Renderer>(); if (visualizerRenderer != null) { visualizerRenderer.material.color = color; } }