Есть объект, который находится на поверхности шара. Есть камера, которая вращается вокруг этого же шара. Камера имеет разную позицию и разный поворот, но все время смотрит в сторону шара (типо вид сверху). Я получаю с джойстика данные о стикере и хочу подвинуть этот объект относительно сторон камеры. То есть, допустим, я смотрю в экран и вижу объект. Стикер повел вверх и объект подвинулся для моих глаз вверх, но мировые координаты не являются таковыми (Y не верх в данном положении камеры и объекта). Как преобразовать вектор на который я хочу подвинуть объект в вектор относительно камеры.
Например:
Код
Vector3 данные_с_джойстика = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0) * допустимое_расстояние;
//мы знаем, что нужный вектор это Camera.main.transform.up
transform.position = позиция_включающая_данные_с_джойстика_относительно_Camera.main.transform.up;
PS мне нужно, чтобы этот объект не передвигался все время, а находился в области, где макс. радиус от начальной точки - допустимое_расстояние.
Что-то не приходит в голову решение. Прошу помочь. А так же, извините за такое сложно объяснение.
Добавлено (09 января 2015, 19:00)
---------------------------------------------
Cделал так:
Код
Vector3 данные_с_джойстика = new Vector3(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"), 0) * допустимое_расстояние;
transform.position = начальная_позиция + (данные_с_джойстика.y * Camera.main.transform.up) + (данные_с_джойстика.x * Camera.main.transform.right);