void Awake() { //Set Shared Instance if (sharedInstance != null && sharedInstance != this) { Destroy(this.gameObject); } else { sharedInstance = this; } //Check Array Length is Correct if (boundaryTriggers.Length != 4) { Debug.LogError("Invalid number of boundaryTriggers detected. Please ensure 4 boundaryTriggers are present and referenced in the Editor!"); } else { //Scale Boundary Triggers for (int i = 0; i < boundaryTriggers.Length; i++) { if (i < 2) //Index positions 0/1 = vertical boundaries { boundaryTriggers[i].size = new Vector2((arenaXSize + colliderBuffer), colliderWidth); //Set vertical size } else if (i >= 2) //Index positions 2/3 = horizontal boundaries { boundaryTriggers[i].size = new Vector2(colliderWidth, (arenaYSize + colliderBuffer)); //Set horizontal size } } //Set Position of Boundary Triggers boundaryTriggers[0].transform.position = startingPos + new Vector3(0, (arenaYSize / 2) + (colliderWidth / 2), 0); //Index Pos 0 = top boundary boundaryTriggers[1].transform.position = startingPos - new Vector3(0, (arenaYSize / 2) + (colliderWidth / 2), 0); //Index Pos 1 = bottom boundary boundaryTriggers[2].transform.position = startingPos - new Vector3((arenaXSize / 2) + (colliderWidth / 2), 0, 0); //Index Pos 2 = left boundary boundaryTriggers[3].transform.position = startingPos + new Vector3((arenaXSize / 2) + (colliderWidth / 2), 0, 0); //Index Pos 3 = right boundary //Define Line Renderers topLineRenderer = boundaryTriggers[0].gameObject.GetComponent <LineRenderer>(); bottomLineRenderer = boundaryTriggers[1].gameObject.GetComponent <LineRenderer>(); leftLineRenderer = boundaryTriggers[2].gameObject.GetComponent <LineRenderer>(); rightLineRenderer = boundaryTriggers[3].gameObject.GetComponent <LineRenderer>(); //Set Line Renderers Vector 3 Vector3[] topLineRendererCoordinates = { new Vector3((arenaXSize + colliderBuffer) / 2, boundaryTriggers[0].gameObject.transform.position.y, 0), new Vector3(-((arenaXSize + colliderBuffer) / 2), boundaryTriggers[0].gameObject.transform.position.y, 0) }; Vector3[] bottomLineRendererCoordinates = { new Vector3((arenaXSize + colliderBuffer) / 2, boundaryTriggers[1].gameObject.transform.position.y, 0), new Vector3(-((arenaXSize + colliderBuffer) / 2), boundaryTriggers[1].gameObject.transform.position.y, 0) }; Vector3[] leftLineRendererCoordinates = { new Vector3(boundaryTriggers[2].gameObject.transform.position.x, (arenaYSize + colliderBuffer) / 2, 0), new Vector3(boundaryTriggers[2].gameObject.transform.position.x, (-(arenaYSize + colliderBuffer) / 2), 0) }; Vector3[] rightLineRendererCoordinates = { new Vector3(boundaryTriggers[3].gameObject.transform.position.x, (arenaYSize + colliderBuffer) / 2, 0), new Vector3(boundaryTriggers[3].gameObject.transform.position.x, (-(arenaYSize + colliderBuffer) / 2), 0) }; topLineRenderer.SetPositions(topLineRendererCoordinates); bottomLineRenderer.SetPositions(bottomLineRendererCoordinates); leftLineRenderer.SetPositions(leftLineRendererCoordinates); rightLineRenderer.SetPositions(rightLineRendererCoordinates); } }
private void Awake() { instance = this; }