как узнать куда смотрит камера
(-_-) Дата: Вт, 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 как узнать куда смотрит камера ?
(-_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 как узнать куда смотрит камера ? Автор - (-_-) Дата добавления - 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.
Точно ? Это глобальное вперед , независимо от осей. Цитата ((-_-) )
не получаеться
Чего не получается ?
X.cor.R (Prologue)
Сообщение Цитата (seaman )
Неверно. Это глобальное направление z.
Точно ? Это глобальное вперед , независимо от осей. Цитата ((-_-) )
не получаеться
Чего не получается ?Автор - Левша Дата добавления - 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 , а ты сравни в работе.
X.cor.R (Prologue)
Сообщение Цитата (seaman )
Т.е. ваш код по сути - это rigidbody.AddForce(0, 0, 1 * 100);
seaman , а ты сравни в работе. Автор - Левша Дата добавления - 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