void CheckChangeUnits() { if (currentScale < 1f || currentScale > 1E3f) { currentScale = Mathf.Clamp(currentScale, 1f, 1E3f); Units newUnits = ScaleUtility.GetNextScale(currentUnits, currentScale > 1f ? 1 : -1); currentScale = currentScale * ScaleUtility.ConvertUnitMultiplier(currentUnits, newUnits); currentUnits = newUnits; } }
public static float ConvertUnitMultiplier(Units fromUnits, Units toUnits) { return(ScaleUtility.MultiplierFromMeters(toUnits) / ScaleUtility.MultiplierFromMeters(fromUnits)); }
public static float ToMeters(float number, Units fromUnits) { return(number / ScaleUtility.MultiplierFromMeters(fromUnits)); }
void SetScale() { transform.localScale = size * ScaleUtility.MultiplierFromMeters(factory.container.units) / ScaleUtility.MultiplierFromMeters(units) * Vector3.one; }
float avogadro = 6.022E23f; // agents/mol int NumberOfAgentsForConcentration(float concentration) { float volume = 4f / 3f * Mathf.PI * Mathf.Pow(spawnRadius * ScaleUtility.ConvertUnitMultiplier(currentUnits, Units.Centimeters), 3f) * 1E-3f; //liters return(Mathf.RoundToInt(concentration * volume * avogadro)); }