void Update() { if (!this.canHandleInput) { return; } if (EventSystem.current.IsPointerOverGameObject()) { return; } if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity, this.buildingLayerMask)) { BuildingVisual buildingVisual = hit.collider.GetComponent <BuildingVisual>(); if (buildingVisual != null) { buildingVisual.SpawnPopup(); } } } }
public void UpdateVisual() { if (Visual == null) { Visual = new BuildingVisual(this); } Visual?.VisualUpdate(); }
public void Initialize(ShopItemData _itemData) { m_itemData = _itemData; m_visual = Instantiate(ShopItemManager.Instance.buildingVisualPrefab, transform, false); m_visual.SetSprite(_itemData.Sprite); _audioSource = GetComponent <AudioSource>(); _audioSource.PlayOneShot(m_itemData.PlacementSfx); StartCoroutine(LateStart(1)); }
private void Start() { // GameSave gameSave = DataLoader.LoadOrCreateGame(); GameSave gameSave = new GameSave(new ResourceManager(new[] { new Resource("Food", 0, 10, 0, true), new Resource("Wood") }), new BuildingManager(new[] { new Building("Farm", "Produces food", new BuildingCost[0], new BuildingEffect[] { new IncreaseProduction(0, 0.1f) }, 0, true, true), new Building("Sawmill", "Produces wood", new[] { new BuildingCost(0, 10) }, new BuildingEffect[] { new IncreaseProduction(1, 1) }) })); ResourceVisual resourceVisual = new ResourceVisual(gameSave.GetResourceManager, resourcePrefab, resourceParent); // TODO: Remove having a copy. Best would be to have it static all the way BuildingEffectManager buildingEffectManager = new BuildingEffectManager(gameSave.GetResourceManager); BuildingVisual buildingVisual = new BuildingVisual(gameSave.GetBuildingManager, gameSave.GetResourceManager, buildingButtonReferencePrefab, buildingButtonParent); }