void Update() { // Slerp Camera towards TargetPos Camera.main.transform.position = Vector3.Slerp(Camera.main.transform.position, m_TargetCameraPosition, Time.deltaTime * 20.0f); // Detect Fingers, for mobile input DetectFingerInput(); #if UNITY_EDITOR || UNITY_STANDALONE DEBUG_MoveCameraInput(); // Is Placement Brush Active? if (MapManager.GetInstance().GetPlacementBrushActive()) { SetTemplateBuildingToGridPosition(); // Move Building with Camera RenderTemplateBuilding(); } // Is Removal Brush Active? else if (MapManager.GetInstance().GetRemovalBrushActive()) { // THIS ONLY WORKS ON PC if (Input.GetMouseButtonUp(0)) { RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, 20.0f, 1 << 0); if (hit.collider == null) { return; } // Debug.Log("Raycast2D hit: " + hit.transform.gameObject.name); // Should put buildings on seperate layer honestly... BaseBuildingsClass hitBuilding = hit.transform.parent.gameObject.GetComponent <BaseBuildingsClass>(); if (hitBuilding == null) { return; } // Can building be Removed? if (!hitBuilding.GetCanBeRemoved()) { return; } hit.transform.gameObject.GetComponent <SpriteRenderer>().color = Color.red; MapManager.GetInstance().AddBuildingToBeRemoved(hit.transform.parent.gameObject.GetComponent <BaseBuildingsClass>()); } //else if (Input.GetKeyUp(KeyCode.E)) // MapManager.GetInstance().RemoveBuildingsFromMapUnderList(); } // Is Movement Brush Active? else if (MapManager.GetInstance().GetMovementBrushActive()) { if (MapManager.GetInstance().GetBuildingToMove() == null) { // THIS ONLY WORKS ON PC if (Input.GetMouseButtonUp(0)) { RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero, 20.0f, 1 << 0); if (hit.collider == null) { return; } // Debug.Log("Raycast2D hit: " + hit.transform.gameObject.name); // Should put buildings on seperate layer honestly... BaseBuildingsClass hitBuilding = hit.transform.parent.gameObject.GetComponent <BaseBuildingsClass>(); if (hitBuilding == null) { return; } // Can building be Moved? if (!hitBuilding.GetCanBeMoved()) { return; } // Attach it and calculate offset MapManager.GetInstance().SetNewBuildingToMove(hitBuilding); m_MovingPlacedBuildingOffset = hitBuilding.transform.position - Camera.main.transform.position; } return; } // Make building to move follow camera and grid position SetMovingBuildingToGridPosition(); // PC INPUTS // Can place? if (MapManager.GetInstance().CanPlaceBuildingToMove()) { MapManager.GetInstance().GetBuildingToMove().transform.GetChild(0).GetComponent <SpriteRenderer>().color = Color.cyan; //// Confirm //if (Input.GetKeyUp(KeyCode.O)) //{ // MapManager.GetInstance().ConfirmRemovementOfBuilding(); //} } else { MapManager.GetInstance().GetBuildingToMove().transform.GetChild(0).GetComponent <SpriteRenderer>().color = Color.gray; } // Cancel if (Input.GetKeyUp(KeyCode.P)) { MapManager.GetInstance().CancelRemovementOfBuilding(); } } // Saving and Loading //if (Input.GetKeyUp(KeyCode.Z)) // SaveSystem.SaveToFile(); //else if (Input.GetKeyUp(KeyCode.X)) // SaveSystem.LoadFromFile(); #endif }