public void CreateClapperboard(string clapperboardId, AIRLab.Mathematics.Point2D location, SideColor color) { var clapperboard = GameObject.CreatePrimitive(PrimitiveType.Cube); clapperboard.transform.position = new Vector3((float)location.X, 7, (float)location.Y); clapperboard.transform.localScale = new Vector3(16, 10, 5); clapperboard.GetComponent<Renderer>().material.color = Color.black; var cap = GameObject.CreatePrimitive(PrimitiveType.Cube); cap.transform.position = new Vector3((float)location.X, 14.5f, (float)location.Y); cap.transform.Translate(openClapperCapOffset); cap.transform.rotation = Quaternion.Euler(0, 0, 60); cap.transform.localScale = new Vector3(16, 5, 5); cap.GetComponent<Renderer>().material.color = UnityColor[color]; cap.name = clapperboardId; }
public void CreateLight(string lightId, AIRLab.Mathematics.Point2D location) { var radius = 3.2f; var light = GameObject.CreatePrimitive(PrimitiveType.Sphere); light.transform.position = new Vector3((float)location.X, radius, (float)location.Y); light.transform.localScale = new Vector3(radius * 2, radius * 2, radius * 2); light.GetComponent<Renderer>().material.color = Color.yellow; light.AddComponent<Rigidbody>(); light.GetComponent<Rigidbody>().drag = light.GetComponent<Rigidbody>().angularDrag = 4f; light.GetComponent<Rigidbody>().useGravity = true; light.GetComponent<Rigidbody>().mass = 0.2f; light.name = lightId; }
public void CreateStartingArea(AIRLab.Mathematics.Point2D centerLocation, SideColor color) { var offset = new Vector3((float)centerLocation.X, 1.5f, (float)centerLocation.Y); var top = GameObject.CreatePrimitive(PrimitiveType.Cube); top.transform.position = new Vector3(0, 0, 40 / 2) + offset; var bottom = GameObject.CreatePrimitive(PrimitiveType.Cube); bottom.transform.position = new Vector3(0, 0, -40 / 2) + offset; top.transform.localScale = bottom.transform.localScale = new Vector3(40, 3, 3); bottom.GetComponent<Renderer>().material.color = top.GetComponent<Renderer>().material.color = UnityColor[color]; }
public void CreateStand(string standId, AIRLab.Mathematics.Point2D location, SideColor color) { var stand = GameObject.CreatePrimitive(PrimitiveType.Cylinder); stand.transform.position = new Vector3((float)location.X, 3.5f, (float)location.Y); stand.transform.localScale = new Vector3(6, 3.45f, 6); stand.GetComponent<Renderer>().material.color = UnityColor[color]; stand.AddComponent<Rigidbody>(); stand.GetComponent<Rigidbody>().drag = stand.GetComponent<Rigidbody>().angularDrag = 4; stand.GetComponent<Rigidbody>().useGravity = true; stand.GetComponent<Rigidbody>().mass = 0.3f; stand.GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationZ; stand.name = standId; }
public void CreateStairs(string stairsId, AIRLab.Mathematics.Point2D centerLocation, SideColor color) { var offset = new Vector3((float)centerLocation.X, 0, (float)centerLocation.Y); float ySize = 7; Func<float, float> getYSize = y => -ySize / (7 * 4) * (y - 39) + ySize; float width = 50; float bottomLength = 60; float topLength = bottomLength - 21; int stairsCount = 3; var stairStep = (bottomLength - topLength) / stairsCount; for (var length = topLength; length <= bottomLength; length += stairStep) { var height = getYSize(length); var stair = GameObject.CreatePrimitive(PrimitiveType.Cube); stair.transform.position = new Vector3(0, 0, (bottomLength - length) / 2); stair.transform.Translate(offset + Vector3.up * height / 2); stair.transform.localScale = new Vector3(width, height, length); stair.GetComponent<Renderer>().material.color = UnityColor[color]; stair.name = length == topLength ? stairsId : "wall"; } Action<float> addBorder = x => { var border = GameObject.CreatePrimitive(PrimitiveType.Cube); border.transform.localScale = new Vector3(3, ySize + 2.2f, bottomLength); border.transform.position = new Vector3(x, (ySize + 2.2f) / 2, 0) + offset; border.GetComponent<Renderer>().material.color = Color.blue; }; addBorder(width / 2); addBorder(-width / 2); }
public void CreatePopCornDispenser(string dispenserId, AIRLab.Mathematics.Point2D location) { var dispenser = GameObject.CreatePrimitive(PrimitiveType.Cube); dispenser.transform.position = new Vector3((float)location.X, 14, (float)location.Y); dispenser.transform.localScale = new Vector3(6, 28, 6); dispenser.GetComponent<Renderer>().material.color = Color.blue; dispenser.name = dispenserId; }
public void CreatePopCorn(string popcornId, AIRLab.Mathematics.Point2D location) { var popcorn = GameObject.CreatePrimitive(PrimitiveType.Cylinder); popcorn.transform.position = new Vector3((float)location.X, 7, (float)location.Y); popcorn.transform.localScale = new Vector3(9.5f, 7, 9.5f); popcorn.GetComponent<Renderer>().material.color = Color.white; popcorn.AddComponent<Rigidbody>(); popcorn.GetComponent<Rigidbody>().drag = popcorn.GetComponent<Rigidbody>().angularDrag = 4; popcorn.GetComponent<Rigidbody>().useGravity = true; popcorn.GetComponent<Rigidbody>().mass = 0.2f; popcorn.GetComponent<Rigidbody>().centerOfMass = new Vector3(0, -1.5f, 0); popcorn.name = popcornId; }