Transform - кут і положення об'єкта

Допоможіть розібратися з командами пов'язаними з Transform. а точніше в маніпуляції об'єктом в плані положення і кута. А то здається я заплутався
Якщо з позицією більш-менш зрозуміло, то з кутами взагалі каша (у мене в голові).
Застосовую всі до косм.кораблю.

Відкриваю мануал, шукаю все що пов'язано з Transform, виявляю:
Variables і Functions.
Своїми словами я назвав це все для себе так, мовляв в змінні можна забивати положення об'єкта, а в функції - тільки швидкість ..
Я пробував користуватися тим і тим. але вийшла плутанина, тобто я просто напросто заплутався. не в цьому суть.
я вирішив користуватися строго Variables (якщо це не реально поправте мене.), поки хоча б не розберуся в усьому чи що, ну і щоб все поступально було.

1. "position або localPosition" (якщо об'єкт не є дочірнім, то це одне і те ж?)

2. "eulerAngles або localEulerAngles" і "rotation або localRotation". У них я взагалі ні чого не розумію. У чому різниця для початок? Я звичайно навчився міняти кут ці: "transform.localRotation = Quaternion.Euler ();", але дуже хочеться розуміти що я роблю.
Я вже не кажу, що після "Quaternion." можна написати чортзна-що. І пишуть же адже (щоб змінювати кут, як альтернатива моєму способу) В цьому я теж розібратися хочу.

Можу просто попросити вас розповісти про способи зміни кута, і про їх різниці (в способах).

position - позиція об'єкта (x, y, z) в глобальних координатах, тобто отностительно початку координат в сцені
localPosition - позиція об'єкта (x, y, z) в локальних координатах, тобто щодо свого parent'a


eulerAngles - кути повороту об'єкта отностительно осей (x, y, z). тобто в компоненті x задано на скільки градусів об'єкт повернений навколо осі X. в Y навколо осі Y ну і відповідно в Z навколо осі Z. І це в глобальній системі координат

localEulerAngles - кути повороту так само як і в eulerAngles але щодо свого parent'a.
допустимо у нас така ієрархія:

якщо припустимо GameObjectParent eulerAngles = (45,0,0) - то він повернуть на 45 градусів навколо осі X (глобальної)
GameObjectChild localEulerAngles = (45,0,0) - то цей об'єкт повернуть на 45 градусів навколо осі X (щодо GameObjectParnet), а ось в глобальних координатах (eulerAngles) вже дорівнюватиме (90,0,0), тобто повернутий на 90 градусів вогруг осі X. (45 градусів предка + 45 градусів щодо предка)

Golandez писал (а): Вивести самому в Debug.Log два параметра і подивитися релігія не дозволяє?


Я повинен уточнити, тому як мої особисті висновки не завжди соответсятуют дійсності. Я ж написав, я повинен знати напевно.

Syberex писал (а): Ставлячи змінної нове значення (позицію або обертання), це значення просто замінює старе. І об'єкт переміщається в нову потрібну точку в просторі, або отримує нове обертання щодо кожної осі.
А методами Translate і Rotate ми продовжуємо як би розпочату раніше рух, задаючи не нове положення, а різницю між старим і новим положенням / поворотом.
Наприклад машина рухається зі швидкістю 10 м / с, рух за допомогою методу задати простіше:

transform. Translate # 40; Vector3. forward * 10 * Time. deltaTime # 41; ;


А за допомогою змінної position зручно задати нове точне положення (в глобальних координатах), наприклад повернемо машинку на старт, після того, як вона перекинулася

transform. position = Vector3. zero;


З поворотами також:

transform. Rotate # 40; Vector3. up * 30 * Time. deltaTime # 41; ; // повертаємо машинку, 30 градусів / с
transform. rotation = Quaternion. identity; // скидаємо повороти на старті

Все залежить не від методів і змінних, а від завдання і доступних даних.
На практиці звичайно складніше буде.

А ось з RotateAround і LookAt я ще сам не розібрався

Ось що я хотів почути!

А якщо мені необхідно міняти положення камери в залежності від параметрів будь-яких? там мені незручно використовувати Translate. Тому як у мене немає заздалегідь відомої швидкості (цієї камери), у мене є поточні параметри (наприклад такі як швидкість літака). Я звичайно міг побудувати залежність швидкості віддалення камери щодо швидкості літака. і навіть так і зробив, і все працювало як треба. але мені здається це все через. камера повішена на літак.

Схожі статті