как узнать куда смотрит камера - Форум Игроделов
Пн, 28 Июл 2025, 20:04 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
как узнать куда смотрит камера
(-_-)Дата: Вт, 12 Фев 2013, 11:24 | Сообщение # 1
 
Сообщений: 43
Награды: 0
Репутация: 1
Статус: Offline
function Update () {
if(Input.GetKeyDown(KeyCode.LeftShift))
rigidbody.AddForce(0,0,0 * 100);
if(Input.GetKeyDown(KeyCode.Space))
rigidbody.AddForce(0,500,0 * 100);

}
вот по немногу собираю скрипт но есть проблема когда нажимаешь Shift то ускорение идет только по оси Z как узнать куда смотрит камера ?
biggrin


(-_o)
 
Сообщениеfunction Update () {
if(Input.GetKeyDown(KeyCode.LeftShift))
rigidbody.AddForce(0,0,0 * 100);
if(Input.GetKeyDown(KeyCode.Space))
rigidbody.AddForce(0,500,0 * 100);

}
вот по немногу собираю скрипт но есть проблема когда нажимаешь Shift то ускорение идет только по оси Z как узнать куда смотрит камера ?
biggrin

Автор - (-_-)
Дата добавления - 12 Фев 2013 в 11:24
thiefbrotherДата: Вт, 12 Фев 2013, 14:46 | Сообщение # 2
 
Сообщений: 74
Награды: 0
Репутация: 10
Статус: Offline
Райкастом пускать луч от камеры. Ну а результат в переменную .
 
СообщениеРайкастом пускать луч от камеры. Ну а результат в переменную .

Автор - thiefbrother
Дата добавления - 12 Фев 2013 в 14:46
ЛевшаДата: Вт, 12 Фев 2013, 18:28 | Сообщение # 3
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата ((-_-))
как узнать куда смотрит камера ?

Если скрипт висит на камере, то:

Код
rigidbody.AddForce(Vector3.forward * 100);


X.cor.R (Prologue)
 
Сообщение
Цитата ((-_-))
как узнать куда смотрит камера ?

Если скрипт висит на камере, то:

Код
rigidbody.AddForce(Vector3.forward * 100);

Автор - Левша
Дата добавления - 12 Фев 2013 в 18:28
seamanДата: Вт, 12 Фев 2013, 20:54 | Сообщение # 4
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Код
rigidbody.AddForce(Vector3.forward * 100);

Неверно. Это глобальное направление z. Нужно:
Код
rigidbody.AddForce(transform.forward * 100);

причем transform - камеры (т.е. висеть скрипт должен на камере, или нужно найти камеру и взять ее трансформ). Потому как она может смотреть в одном направлении, а персонаж в другом. А ригидбоди - того объекта, которому даете пинок (т.е.нужно его найти и взять ригидбоди)
 
Сообщение
Код
rigidbody.AddForce(Vector3.forward * 100);

Неверно. Это глобальное направление z. Нужно:
Код
rigidbody.AddForce(transform.forward * 100);

причем transform - камеры (т.е. висеть скрипт должен на камере, или нужно найти камеру и взять ее трансформ). Потому как она может смотреть в одном направлении, а персонаж в другом. А ригидбоди - того объекта, которому даете пинок (т.е.нужно его найти и взять ригидбоди)

Автор - seaman
Дата добавления - 12 Фев 2013 в 20:54
ЛевшаДата: Вт, 12 Фев 2013, 21:31 | Сообщение # 5
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата (seaman)
Неверно. Это глобальное направление z.

smile Точно ? Это глобальное вперед, независимо от осей.

Цитата ((-_-))
не получаеться

Чего не получается ?


X.cor.R (Prologue)
 
Сообщение
Цитата (seaman)
Неверно. Это глобальное направление z.

smile Точно ? Это глобальное вперед, независимо от осей.

Цитата ((-_-))
не получаеться

Чего не получается ?

Автор - Левша
Дата добавления - 12 Фев 2013 в 21:31
seamanДата: Вт, 12 Фев 2013, 21:53 | Сообщение # 6
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Это глобальное вперед, независимо от осей.

А нужно то не глобальное вперед, а "вперед" для камеры! Как по вашему определен Vector3.forward?
Код
        public static Vector3 forward
         {
             get
             {
                 return new Vector3(0f, 0f, 1f);
             }
         }

Т.е. ваш код по сути - это
Код
rigidbody.AddForce(0, 0, 1  * 100);

Что мало чем отличается от кода в первом посте.
 
Сообщение
Цитата
Это глобальное вперед, независимо от осей.

А нужно то не глобальное вперед, а "вперед" для камеры! Как по вашему определен Vector3.forward?
Код
        public static Vector3 forward
         {
             get
             {
                 return new Vector3(0f, 0f, 1f);
             }
         }

Т.е. ваш код по сути - это
Код
rigidbody.AddForce(0, 0, 1  * 100);

Что мало чем отличается от кода в первом посте.

Автор - seaman
Дата добавления - 12 Фев 2013 в 21:53
ЛевшаДата: Ср, 13 Фев 2013, 01:25 | Сообщение # 7
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата (seaman)
Т.е. ваш код по сути - это
rigidbody.AddForce(0, 0, 1 * 100);

seaman, а ты сравни в работе. smile


X.cor.R (Prologue)
 
Сообщение
Цитата (seaman)
Т.е. ваш код по сути - это
rigidbody.AddForce(0, 0, 1 * 100);

seaman, а ты сравни в работе. smile

Автор - Левша
Дата добавления - 13 Фев 2013 в 01:25
(-_-)Дата: Ср, 13 Фев 2013, 13:57 | Сообщение # 8
 
Сообщений: 43
Награды: 0
Репутация: 1
Статус: Offline
мне помогло вот это
rigidbody.AddForce(transform.forward * 100)
спасибо seaman

Добавлено (13.02.2013, 13:57)
---------------------------------------------
Можно закрывать


(-_o)
 
Сообщениемне помогло вот это
rigidbody.AddForce(transform.forward * 100)
спасибо seaman

Добавлено (13.02.2013, 13:57)
---------------------------------------------
Можно закрывать


Автор - (-_-)
Дата добавления - 13 Фев 2013 в 13:57
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025