Работа с экспонентами - PullRequest
       3

Работа с экспонентами

0 голосов
/ 30 марта 2020

Я пытался получить массу того я sh, на котором работает мой сценарий. Я получил этот код:

mesh = gameObject.GetComponent<MeshFilter>().sharedMesh;
exponentMeshVolume = mesh.bounds.size.x * mesh.bounds.size.y * mesh.bounds.size.z;
Debug.Log("Volume: " + exponentMeshVolume.ToString());

Это дает мне такие числа, как:

Volume: 1.589856E-12
Volume: 1.201565E-11
Volume: 9.868388E-12
Volume: 6.849872E-12

Однако я никогда раньше не имел дело с числами экспонент, и я понятия не имею, что делать с ними. Мой финал таков: я хочу сыграть другой набор звуков, в зависимости от того, насколько велик я sh, поэтому меньшие из них получают звук 'dink', когда он ударяет по другому объекту, а более крупные - больше ударов.

Как правило, я бы делал оператор switch с подобным case 3: break; case: 9: break;, чтобы разбить их на разные группы. Возможно ли свести числа к более управляемому int? На аналогичной ноте, как бы я определил самый большой и самый маленький в пределах одного сценария, который применяется ко всем сеткам в сцене?

1 Ответ

1 голос
/ 30 марта 2020

Просто умножьте все числа на триллион или около того (чтобы поместить их в удобный диапазон), а затем используйте оператор if.

double volume = exponentMeshVolume * 1000000000000.0;
if (volume < 5) {
  // maybe this is quiet
} else if (volume < 10) {
  // a bit louder
} else if (volume < 25) {
  // etc.
} else {
  // loud
}
...