コード例 #1
0
    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;
    }
コード例 #2
0
ファイル: Wind.cs プロジェクト: polytech-tnice/unity-client
 // 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);
     }
 }
コード例 #3
0
    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;
    }
コード例 #4
0
    public MeshRenderer getOuterMeshRenderer()
    {
        MeshArea meshArea = GetComponentInChildren <MeshArea> ();

        return(meshArea.gameObject.GetComponent <MeshRenderer> ());
    }