Я много раз искал, но не могу найти решение этой проблемы.Unity 5.1 плеер управления вторичным объектом относительно объекта игрока
Что я хочу - это управлять игровым объектом, который вращается вокруг объекта игрока на фиксированном расстоянии на основе входа аналогового джойстика, независимо от движения игрока. Я также хочу, чтобы объект смотрел наружу, когда он перемещается по игроку.
Я оставил аналоговую палку, установленную для движения плеера, и работает и имеет правильную аналоговую ручку, настроенную и протестированную, поэтому я знаю, что вход работает.
Я пробовал transform.rotate, RotateAround, .position и quaternions и т. Д., Но не могу понять это или найти что-нибудь, что может помочь. Я довольно новичок в этом, поэтому, возможно, простое решение, я просто не вижу его!
Цените любую помощь, которую вы могли бы быть в состоянии дать :) Спасибо Mil
EDIT 2: Вторая попытка
, так что я получил это до сих пор в настоящее время:
public class ShieldMovement : MonoBehaviour {
public Transform target; //player shield is attaced to
float distance = 0.8f; // distance from player so it doesn't clip
Vector3 direction = Vector3.up;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
float angle = Mathf.Atan2 (Input.GetAxisRaw("rightH"), Input.GetAxisRaw("rightV"))* Mathf.Rad2Deg;
if(Input.GetAxis("rightH") != 0f || Input.GetAxis("rightV") != 0f)
{
direction = new Vector3(Input.GetAxis("rightH"),Input.GetAxis("rightV"), 0.0f) ;
}
Ray ray = new Ray(target.position, direction);
transform.position = ray.GetPoint(distance);
if(Input.GetAxis("rightH") != 0f || Input.GetAxis("rightV") != 0f)
{
transform.rotation = Quaternion.AngleAxis(angle,Vector3.forward*-1);
}
}
}
Я бы хотел, чтобы это было плавное вращение экрана вокруг t он собирается в новое место вместо того, чтобы телепортироваться туда. Я пробовал некоторые lerps и некоторые slerps, до сих пор все, что мне удалось, интерполируется с одной точки по окружности в прямой линии до новой точки. Невозможно придумать способ заставить его вращаться вокруг игрока, как если бы вы просто вращали палку. Надеюсь, это имеет смысл!
Любые идеи, которые вы замечаете, люди?
ли вы уже заглядывали к сценарию камеры SmoothFollow? Это заставляет камеру следить за игроком под определенным углом и расстоянием, вращающимся к нему лицом. Вы также можете приспособиться к своему объекту-повторителю и увеличить положение (x, 0, z) при перемещении палки. Я не могу проверить его прямо сейчас, но просмотр сценария, кажется, хороший способ наконец понять, что вам нужно сделать ... – Frohlich
Я проверю это, спасибо :) Будет ли сообщение, если он работает :) –
Выяснилось, как бы это получилось, но я не могу понять, как это происходит.Я опубликовал частичное решение без анимации (так как я не могу получить эту работу) выше, если вы хотите увидеть, что у меня до сих пор :) –