# 000111. Vector - Что это такое и с чем его едят

Vector - Что это такое и с чем его едят|В этом уроке речь в этом уроке пойдёт о векторах.|wmysterio|wmysterio||||Всем привет! Мы продолжаем изучать скриптинг GTA IV. На очереди в нас "вектор". Термин весьма широкий и нужно сделать уточнение о том, что это в скриптинге.

В SannyBuilder мы писали координаты как последовательность чисел. В таком формате в C# обычно не пишут. Для этого создали несколько классов, которые описывают эту последовательность. Эти числа не всегда отвечают именно за координаты. Их можно представить в виде углов и прочего. На примере координат их легче всего понять.

А таких видов в нас три:

```
cs
Vector2 MyVect2;
Vector3 MyVect3;
Vector4 MyVect4;
```

Разница в них только в том, что хранят они разное к-во параметров "координат". Например, для**Vector3** существуют три основных свойства, для хранения этих "координат":

```
cs
MyVect3.X = 0.5F;
MyVect3.Y = 0.1F;
MyVect3.Z = 5.0F;
```

Кроме этого, есть одно удобство - структура имеет много методов, которые полезно будет использовать в скриптах. Рассмотрим эти функции:

<table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td><p>```</p><p>cs /* Получает дистанцию между двумя точками: <em>/ MyVect3.DistanceTo(MyVect3_1); /</em> Здесь: MyVect3_1 - другой объект Vector3</p><p>Возвращаемый тип: float */</p><pre><code>Пример в Sanny Builder:
</code></pre><p>050A: 0@ = dist_XYZ 1@ 2@ 3@ and_XYZ 4@ 5@ 6@</p><pre><code>&#x3C;/td>&#x3C;/tr>

\<tr>\<td> </code></pre><p>cs /\* Получает случайную точку, относительно вектора: <em>/ MyVect3.Around(30.0F); /</em> Здесь: 30.0F - радиус поиска</p><p>Возвращаемый тип: объект Vector3 \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>02C0: store 1@ 2@ 3@ ped\_path 4@ 5@ 6@ 02C1: store 1@ 2@ 3@ car\_path 4@ 5@ 6@</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить длину вектора (точно не скажу какую именно): <em>/ MyVect3.Length(); /</em> Здесь: Возвращаемый тип: float \*/</p><pre><code>Пример в Sanny Builder: нет\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить грунт вектора: <em>/ MyVect3.ToGround(); /</em> Здесь: Возвращаемый тип: объект Vector3 \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>02CE: 4@ = ground\_z\_at 1@ 2@ 4@</p><pre><code>\</td>\</tr>

\</tbody>\</table>

Для примера, сделаем следующий скрипт:

</code></pre><p>cs using System; using System.Windows.Forms; using GTA; namespace TestScript { public class Thread : Script { public Thread() {</p><p>Vector3 MyVect3; MyVect3.X = 10.0F; MyVect3.Y = 10.0F; MyVect3.Z = 2.0F;</p><p>while (true) { if ( Game.isKeyPressed(Keys.Tab)) { Player.TeleportTo(MyVect3); } Wait(0); }</p><p>} } }</p><pre><code>

Я подобрал координаты случайным образом, так как никаких программ для вычисления координат я не находил, но если постараюсь, то сделаю свою прогу.

Остальные типы векторов имеют похожие методы, только работают уже со своей последовательностью чисел. На этом краткий обзор завершен. До следующего урока!|733|1|0||vector\_chto\_ehto\_takoe\_i\_s\_chem\_ego\_edjat|1552392983 </code></pre></td></tr></tbody></table>
