1) Создайте пустой игровой объект
2) Создайте родительский ящик для пустого игрового объекта
3) поверните прямоугольник вокруг пустого игрового объекта
4) переместите пустой игровой объект в сторону
Если вы хотите избежать добавления пустого родителя, вы можете отдельно отслеживать центр вращения, вращать его и перемещать со временем.
public class hello_rotate : MonoBehaviour
{
float angle = 0;
float radius = 1;
float speed = 10;
float linear_speed = 1;
Vector2 centerOfRotation;
// Start is called before the first frame update
void Start()
{
centerOfRotation = transform.position;
}
// Update is called once per frame
void Update()
{
centerOfRotation.x = centerOfRotation.x + linear_speed * Time.deltaTime;
angle += speed * Time.deltaTime; //if you want to switch direction, use -= instead of +=
float x = centerOfRotation.x + Mathf.Cos(angle) * radius;
float y = centerOfRotation.y + Mathf.Sin(angle) * radius;
transform.position = new Vector2(x + 2, y);
}
}