void Start() { circle = GameObject.FindGameObjectWithTag("Circle").GetComponent <RadiusCircle>(); targetRadius = _Tower.radius; circle.SetScale(targetRadius); circle.SetColor(Color.white, false); }
public void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "Dummy" && collision is BoxCollider2D) { circleChange = GameObject.FindGameObjectWithTag("Circle").GetComponent <RadiusCircle>(); //print("Cannot place dummy here"); canPlace.canBePlaced = false; circleChange.SetColor(Color.red, false); } }
//regions good! https://enterprisecraftsmanship.com/posts/c-regions-is-design-smell/ #region Check Placeability public void CheckPlaceability() { if (hasItemInHand && canBePlaced.canBePlaced) { Vector3 mousePosition = getCursorPosition(); Vector2 itemSize; itemSize = dummyItem.GetComponentInChildren <BoxCollider2D>().size; Vector2 closestRigbodBound = road.GetComponent <Rigidbody2D>().ClosestPoint(mousePosition); float distance2 = Vector2.Distance(mousePosition, closestRigbodBound); //DEBUG//print("Distance 2: " + distance2); //Find diagonal of Item / absolute value float itemDiagonal = Mathf.Sqrt( Mathf.Pow(itemSize.x, 2) + Mathf.Pow(itemSize.y, 2) ); //Should be divided by 2, but dividing by 3 gives more accurate answer float itemRadius = itemDiagonal / 3; if (distance2 >= itemRadius) { canBePlaced.canBePlaced = true; radiusCircleScript.SetColor(Color.green, false); Place(); } else { radiusCircleScript.SetColor(Color.red, false); //canBePlaced.canBePlaced = false; //^called in placeabletrigger instead } } }