ref, out и params являются модификаторами параметров.

Модификатор ref означает, что аргумент будет передаваться по ссылке а не по значению. При передаче по ссылке изменения аргумента в вызываемом методе будут отражаться в вызывающем методе.

Аргумент, передаваемый в параметр ref, перед передачей должен быть инициализирован.

Модификатор out работает так же как и ref, но при этом значение аргумента не инициализируется и необходимо, что бы в вызываемом методе значение аргументу было присвоено.

Модификатор params указывает на передачу неопределённого количества параметров. В вызывающем методе в качестве параметров вызываемого метода с модификатором params, можно будет указать либо отдельные аргументы, либо массив либо вообще не указывать аргументы.

Math — это класс математических методов в C Sharp входящих в библиотеку System.

Mathf — класс математических методов библиотеки UnityEngine.

System.Math использует тип данных doubles а UnityEngine.Mathf тип данных floats. При использовании в Unity Math появляется необходимость постоянно конвертировать знания doubles/floats, но в тоже время тесты на ПК показывают, что методы System.Math отрабатывают быстрее чем UnityEngine.Mathf  даже с постоянной конвертацией значений. Но так же  mathf из библиотеки  UnityEngine содержит дополнительные специализированных методов.

Тип данных doubles имеет область значений ±5*10-324 до ±1,7*10306, размер 8 байтов и точность — 16 разрядов;

floats  имеет область значений ±1,5*10-45 до ±3,4*1033, размер  4 байта и точность — 7 разрядов:


UnityEngine.Mathf

Mathf.Sin — возвращает синус от угла f в радианах.

Mathf.Cos — возвращает косинус от угла f в радианах.

Mathf.Tan — возвращает тангенс от угла f в радианах.

Mathf.Asin — возвращает арксинус  f —  угол в радианах, арксинус которого равен f.

Mathf.Acos — возвращает арккосинус —  угол в радианах, арккосинус которого равен f.

Mathf.Atan — возвращает арктангенс f —  угол в радианах, арктангенс которого равен f.

Mathf.Atan2 — возвращает угол между осью x и двумерным вектором, начинающимся с нуля и заканчивающимся на (x, y).

Mathf.Sqrt — Возвращает квадратный корень от f.

Mathf.Abs — возвращает значение по модулю;

Mathf.Min — возвращает минимальное из двух значений;

Mathf.Max — возвращает максимальное из двух значений;

Mathf.Pow — возвращает f возведенное в степень n;

Mathf.Exp — экспонента значения;

Mathf.Log — логари́фм числа по основанию a, возвращает значение степени, в которую нужно возвести a что бы получить b, если основание a не указывать — то будет возвращен натуральный логарифм b, логарифм по e;

Число e — математическая константа, приблизительно равная 2,718281828… подробнее об этой константе https://ru.wikipedia.org/wiki/E_(%D1%87%D0%B8%D1%81%D0%BB%D0%BE)

Mathf.Log10 —  десятичный логарифм, логарифм по основанию 10;

Mathf.Ceil — округление к большему целому значению;

Mathf.Floor — округление к меньшему целому значению;

Mathf.Round — округление до ближайшего целого числа, модуль разности с которым у исходного числа меньше. (2.4 → 2, 2.7 → 3). В случае, если модули разности равны (дробная часть равна 0.5), берётся ближайшее чётное целое число. (1.5 → 2, 4.5 → 4),

Mathf.CeilToInt — то же, что и Mathf.Cell но возвращает значение типа int.

Mathf.FloorToInt — то же, что и Mathf.Floor но возвращает значение типа int.

Mathf.RoundToInt — то же, что и Mathf.Round но возвращает значение типа int.

Mathf.Sign — возвращает знак числа. Возвращает  1 если число больше или равно нулю и -1 если число меньше нуля;

Mathf.Clamp —  ограничивает значение f в пределах интервала между min и max. Возвращает возвращает min, если f меньше min. Если f больше max, то возвращает max. Иначе, если f находится в интервале между min и max, возвращает f;

Mathf.Clamp01 — делает тоже самое, что и Mathf.Clamp, но её min и max  равны, соответственно, 0 и 1;

Mathf.Lerp(a, b, t) — Интерполяция между a и b по параметру t, где t находится в интервале от 0  до 1. Если t  будет равно 0 то метод вернет значение a, если же t  будет равно 1  — то значение b, если t  будет равно 0,5 то метод вернет значение среднее между a и , соответственно при любых других значениях t  между 0 и 1 будут возвращаться соответствующие промежуточные между a и b значения. Если t окажется вне диапазона от 0 до 1 то метод вернет null — то есть ничего.

Пример:

В данном примере в качестве параметра t выступает Time.time — время прошедшее  с начала запуска игры поэтому движение от стартовой позиции до конечной произойдет за 1 секунду если этого мало, то просто необходимо  поделить значение Time.time например на 10 (умножить на 0,1) — тогда движение уже будет длиться 10 секунд.

Интерполяция  — способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.

Mathf.LerpAngle — Same as Lerp but makes sure the values interpolate correctly when they wrap around 360 degrees.

Mathf.SmoothStep — Interpolates between min and max and eases in and out at the limits.

Mathf.Approximately — сравнивает два значение с плавающей точкой на совпадение..

Mathf.SmoothDamp —  постепенно приводит значение к значению target (в отличие от Lerp делает это плавно);

Mathf.SmoothDampAngle — Based on Game Programming Gems 4 Chapter 1.10

Mathf.Repeat —  возвращая остаток от деления t на length зацикливает значение t, так, что оно никогда не будет меньше 0 и больше чем length;

Пример использования:

Каждый кадр будет возвращать

 

Mathf.PingPong — PingPongs the value t, so that it is never larger than length and never smaller than 0.

Mathf.InverseLerp — Calculates the Lerp parameter between of two values.

Mathf.ClosestPowerOfTwo — возвращает ближайшую степень двух значений.

Mathf.PerlinNoise


System.Math

Math.Abs — возвращает абсолютную величину  (модуль), имеет 7 перегрузок т.е. може принимать разные типы переменных.

Math.Acos —  определяется угол, арккосинус которого равен указанному числу.

Math.Asin —  определяется угол, косинус которого равен указанному числу.

Math.Atan — возвращает арктангенс числа (в радианах)

Math.Cos —  Возвращает косинус угла.

Math.Cosh —  Возвращает гиперболический косинус угла.

Гиперболическими называются функции, которые выражаются через экспоненту и  являющиеся координатами точки на гиперболе а не на окружности как обычные функции.

Гиперболический синус задается следующей формулой:

.

Гиперболический косинус:

Гиперболический тангенс:

Гиперболический котангенс:

Math.Exp —  экспонента.

Math.Log — возвращает логарифм: x — число которое нужно найти, osn — основание логарифма.

Math.Log10 —  возвращает десятичный логарифм.

Math.Max — возвращает из 2-х чисел большее число. Имеет 11 перегруженых методов.

Math.Min — возвращает из 2-х чисел меньшее число. Имеет 11 перегруженых методов.

Math.PI — возвращает число Пи.

Math.Pow — вычисляет число возведенное в степень:

Math.Sin — возвращает синус угла.

Math.Sinh  — возвращает гиперболический синус угла.

Math.Sqrt — возвращает квадратный корень.

Math.Tan — возвращает тангенс угла.

Math.Tanh — возвращает гиперболический тангенс угла.