Как вращать вокруг центральной точки несколько объектов вместе?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как вращать вокруг центральной точки несколько объектов вместе?

Сообщение Anonymous »

У меня есть в иерархии родительский объект с именем Cylinder Buttons Base Parent.
и под ним находятся дочерние игровые объекты.
Я хочу повернуть 4 дочерних игровых объекта вместе вокруг целевую центральную точку.
скрипт заставляет их вращаться, но я не могу понять, как автоматически центрировать целевой объект в центре четырех объектов.на прикрепленном изображении вы можете увидеть в В верхнем левом окне сцены видно, что объект целевой сферы не находится в центре объектов с четырьмя кнопками. я хочу, чтобы скрипт автоматически центрировал цель.
Изображение

Скрипт теперь состоит из 4 объектов, которые нормально вращаются вокруг цели, но цель не находится в центре.

Код: Выделить всё

using UnityEngine;

public class ButtonsRotator : MonoBehaviour
{
public float rotationSpeed = 30f; // Speed of rotation
public Transform target;

private Vector3 centerPoint;

void Start()
{
// Calculate the center point of all children
CalculateCenterPoint();
}

void Update()
{
foreach (Transform child in transform)
{
child.RotateAround(target.position, Vector3.up, rotationSpeed * Time.deltaTime);
}
}

private void CalculateCenterPoint()
{
if (transform.childCount == 0)
{
Debug.LogWarning("No children found under this GameObject.");
return;
}

// Calculate the center point based on the children positions
Vector3 totalPosition = Vector3.zero;
foreach (Transform child in transform)
{
totalPosition += child.position;
}

centerPoint = totalPosition / transform.childCount;
}
}
и если я добавлю эту строку в начало:

Код: Выделить всё

void Start()
{
// Calculate the center point of all children
CalculateCenterPoint();
target.position = centerPoint;
}
то теперь все перепуталось. 4 объекта и цель переместились влево, и 4 объекта вращаются не все вместе, а один за другим, как группа, и это не то, что я хотел.
i думал использовать метод CalculateCenterPoint, чтобы установить цель в центре четырех объектов, но это не работает.

Подробнее здесь: https://stackoverflow.com/questions/791 ... s-together
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как по заданным линиям и центральной точке определить границу вокруг этой точки? [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Упаковка прямоугольника вокруг центральной точки [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Упаковка прямоугольника вокруг центральной точки [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Создайте скрипт, который будет вращать колесо вокруг оси Z в Unity VR.
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Создайте скрипт, который будет вращать колесо вокруг оси Z в Unity VR.
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»