Как сделать вращение вокруг игрока через синус и косинус?

Для реализации вращения вокруг игрока через синус и косинус в Unity, необходимо выполнить несколько шагов:

  1. Создайте скрипт вращения и прикрепите его к объекту, который должен вращаться вокруг игрока. Назовем его "RotateAroundPlayer".
  1. В скрипте RotateAroundPlayer объявите переменные, отвечающие за скорость вращения и радиус вращения:
public float rotationSpeed = 5f;
public float rotationRadius = 2f;
  1. В методе Update скрипта RotateAroundPlayer рассчитайте новую позицию объекта вокруг игрока, используя синус и косинус:
void Update()
{
    // Рассчитываем новую позицию
    float angle = Time.time * rotationSpeed;
    float x = Mathf.Sin(angle) * rotationRadius;
    float z = Mathf.Cos(angle) * rotationRadius;
    Vector3 newPosition = new Vector3(x, 0, z);

    // Перемещаем объект на новую позицию
    transform.position = player.transform.position + newPosition;
}
  1. В данном примере предполагается, что игрок является другим объектом в сцене с именем "player". Вы можете использовать свой собственный способ определения игрока.
  1. В Unity вам также потребуется проследить, чтобы объект, вокруг которого происходит вращение, находился на правильной высоте относительно игрока. Для этого вы можете использовать переменную y вектора newPosition или настроить его в соответствии с вашими требованиями.
  1. Также вы можете настроить значения переменных rotationSpeed и rotationRadius в соответствии с вашими предпочтениями.
  1. При необходимости вы можете ограничить угол вращения, чтобы объект не вращался бесконечно. Для этого можно использовать оператор % и определить предельный угол вращения.

В результате объект, к которому прикреплен скрипт RotateAroundPlayer, будет вращаться по окружности вокруг игрока, используя синус и косинус. Вы можете экспериментировать с параметрами скрипта, чтобы получить нужное вам поведение вращения.