public void setWeight() { float weightPerSquareMeter = 0.135f; // We calculate with ways being 10cm thick MeshArea meshArea = gameObject.GetComponent <MeshArea>(); float squareMeters = meshArea.area * 1000f; Rigidbody rigidbody = gameObject.GetComponent <Rigidbody>(); rigidbody.mass = squareMeters * weightPerSquareMeter; }
// Update is called once per frame void FixedUpdate() { GameObject[] gos = GameObject.FindGameObjectsWithTag("Ball"); foreach (GameObject go in gos) { MeshArea area = go.GetComponent <MeshArea>(); Rigidbody rb = go.GetComponent <Rigidbody>(); float speed = windSpeed / 3.6f; float surface = area != null ? area.Area : 1.0f; rb.AddForce((0.5f * Mathf.Pow(speed, 2) * surface / 2) * windDirection.normalized); } }
private void setBuildingWeight() { // Calculate weight, based on area of roof * height * weight / sq. meters MeshArea roofMeshArea = roof.gameObject.GetComponent <MeshArea>(); float squareMeters = roofMeshArea.area * 1000f; float floors = getTargetHeight() / 0.09f / 4f; // Each 0.09z ≈ 1m, calculated on each floor being 4m high float buildingWeightPerSquareMeter = 0.140f; // ~ 140kg per square meter and floor float buildingWeight = squareMeters * buildingWeightPerSquareMeter * floors; Rigidbody buildingRigidBody = this.gameObject.GetComponent <Rigidbody>(); buildingRigidBody.mass = buildingWeight; }
public MeshRenderer getOuterMeshRenderer() { MeshArea meshArea = GetComponentInChildren <MeshArea> (); return(meshArea.gameObject.GetComponent <MeshRenderer> ()); }