initial commit
This commit is contained in:
75
Assets/Scripts/Lesson_2/DensityCube.cs
Normal file
75
Assets/Scripts/Lesson_2/DensityCube.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user