// Size of the level var bounds : Rect; var fallOutBuffer = 5.0; var colliderThickness = 10.0; // Sea Green For the Win! private var sceneViewDisplayColor = Color (0.20, 0.74, 0.27, 0.50); static private var instance : LevelAttributes; static function GetInstance() { if (!instance) { instance = FindObjectOfType(LevelAttributes); if (!instance) Debug.LogError("There needs to be one active LevelAttributes script on a GameObject in your scene."); } return instance; } function OnDisable () { instance = null; } function OnDrawGizmos () { Gizmos.color = sceneViewDisplayColor; var lowerLeft = Vector3 (bounds.xMin, bounds.yMax, 0); var upperLeft = Vector3 (bounds.xMin, bounds.yMin, 0); var lowerRight = Vector3 (bounds.xMax, bounds.yMax, 0); var upperRight = Vector3 (bounds.xMax, bounds.yMin, 0); Gizmos.DrawLine (lowerLeft, upperLeft); Gizmos.DrawLine (upperLeft, upperRight); Gizmos.DrawLine (upperRight, lowerRight); Gizmos.DrawLine (lowerRight, lowerLeft); } function Start () { createdBoundaries = new GameObject ("Created Boundaries"); createdBoundaries.transform.parent = transform; leftBoundary = new GameObject ("Left Boundary"); leftBoundary.transform.parent = createdBoundaries.transform; boxCollider = leftBoundary.AddComponent (BoxCollider); boxCollider.size = Vector3 (colliderThickness, bounds.height + colliderThickness * 2.0 + fallOutBuffer, colliderThickness); boxCollider.center = Vector3 (bounds.xMin - colliderThickness * 0.5, bounds.y + bounds.height * 0.5 - fallOutBuffer * 0.5, 0.0); rightBoundary = new GameObject ("Right Boundary"); rightBoundary.transform.parent = createdBoundaries.transform; boxCollider = rightBoundary.AddComponent (BoxCollider); boxCollider.size = Vector3 (colliderThickness, bounds.height + colliderThickness * 2.0 + fallOutBuffer, colliderThickness); boxCollider.center = Vector3 (bounds.xMax + colliderThickness * 0.5, bounds.y + bounds.height * 0.5 - fallOutBuffer * 0.5, 0.0); topBoundary = new GameObject ("Top Boundary"); topBoundary.transform.parent = createdBoundaries.transform; boxCollider = topBoundary.AddComponent (BoxCollider); boxCollider.size = Vector3 (bounds.width + colliderThickness * 2.0, colliderThickness, colliderThickness); boxCollider.center = Vector3 (bounds.x + bounds.width * 0.5, bounds.yMax + colliderThickness * 0.5, 0.0); bottomBoundary = new GameObject ("Bottom Boundary (Including Fallout Buffer)"); bottomBoundary.transform.parent = createdBoundaries.transform; boxCollider = bottomBoundary.AddComponent (BoxCollider); boxCollider.size = Vector3 (bounds.width + colliderThickness * 2.0, colliderThickness, colliderThickness); boxCollider.center = Vector3 (bounds.x + bounds.width * 0.5, bounds.yMin - colliderThickness * 0.5 - fallOutBuffer, 0.0); }