Я хочу, чтобы иметь возможность следить за вращающимся мячом (что я могу сделать сам по себе), и я хочу, чтобы иметь возможность вращаться вокруг мяча, удерживая правый клик (который я могу сделать сам по себе), но когда я пытаюсь объединить эти 2, я получаю нежелательные результаты.Unity, Следуйте за мячом и вращайтесь вокруг него
В приведенном ниже коде вы можете видеть, что если бы я просто хотел повернуть вокруг мяча, мой «RotateAround» позаботится об этом без проблем, и если бы я просто хотел следить за мячом, где бы он ни находился, когда камера находится на том же расстоянии прочь и угол, тогда мой _offset позаботится об этом. Когда я пытаюсь объединить 2, чтобы он следил за мячом и мог поворачивать камеру (с правым щелчком), в то же время камера просто останавливается после шара.
Я понял, что вы можете следить за мячом с помощью _offset, который я нашел в учебных пособиях Unity, что, когда позиция изменяется с помощью RotateAround, _offset позаботится о том, чтобы камера оставалась в новой позиции. Этот сценарий, кстати, находится на моем Camera GameObject.
void Start()
{
_offset = CamFollowStartSpot.position - Ball.transform.position;
}
void LateUpdate()
{
if (Input.GetMouseButton(1))
{
_transform.RotateAround(Ball.transform.position, Vector3.up, 20 * Time.deltaTime);
_offset = _transform.position - Ball.transform.position;
}
_transform.position = Ball.transform.position + _offset;
}
вы делаете это с * два отдельных игровых объектов *, один оберточной другой – Fattie
@JoeBlow Можете ли вы объяснить, что вы имеете в виду, обернув другой пожалуйста. – JoeyL
Я просто имею в виду сидеть один игровой объект внутри другого, у вас может быть три или четыре глубины. на одном уровне вы «повернете», а на следующем уровне вы будете «вращаться» или что угодно. с разными сценариями на каждом уровне. это обычная техника ... экспериментируйте с ней, когда у вас есть время! – Fattie