76 lines
1.9 KiB
C#
76 lines
1.9 KiB
C#
using UnityEngine;
|
|
|
|
public class DensityCube : MonoBehaviour
|
|
{
|
|
public float mass;
|
|
public float density;
|
|
public float cubeVolume;
|
|
public Material[] cubeColorMaterials;
|
|
|
|
public enum CubeMaterial
|
|
{
|
|
beton,
|
|
iron,
|
|
aluminum,
|
|
copper,
|
|
silver,
|
|
gold
|
|
}
|
|
|
|
public CubeMaterial cubeMaterial;
|
|
|
|
private void Start()
|
|
{
|
|
SetCubeDensity();
|
|
SetCubeMass();
|
|
}
|
|
|
|
private void OnValidate()
|
|
{
|
|
SetCubeDensity();
|
|
SetCubeMass();
|
|
}
|
|
|
|
private void SetCubeDensity()
|
|
{
|
|
switch (cubeMaterial)
|
|
{
|
|
case CubeMaterial.beton:
|
|
density = 2.4f;
|
|
GetComponent<Renderer>().material = cubeColorMaterials[0];
|
|
break;
|
|
case CubeMaterial.iron:
|
|
density = 7.85f;
|
|
GetComponent<Renderer>().material = cubeColorMaterials[1];
|
|
break;
|
|
case CubeMaterial.aluminum:
|
|
density = 2.7f;
|
|
GetComponent<Renderer>().material = cubeColorMaterials[2];
|
|
break;
|
|
case CubeMaterial.copper:
|
|
density = 8.96f;
|
|
GetComponent<Renderer>().material = cubeColorMaterials[3];
|
|
break;
|
|
case CubeMaterial.silver:
|
|
density = 10.5f;
|
|
GetComponent<Renderer>().material = cubeColorMaterials[4];
|
|
break;
|
|
case CubeMaterial.gold:
|
|
density = 19.3f;
|
|
GetComponent<Renderer>().material = cubeColorMaterials[5];
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void SetCubeMass()
|
|
{
|
|
float cubeWidth = transform.localScale.x;
|
|
float cubeHeight = transform.localScale.y;
|
|
float cubeLength = transform.localScale.z;
|
|
|
|
cubeVolume = cubeWidth * cubeHeight * cubeLength;
|
|
|
|
mass = cubeVolume * density;
|
|
}
|
|
}
|