![enter image description here](https://i.stack.imgur.com/P2PpR.png)
Привет всем, я пытаюсь повернуть дочерний игровой объект относительно другого дочернего игрового объекта. Например, как показано в этой иерархии ниже, я пытаюсь повернуть PA_DroneBladeLeft (и PA_DroneBladeRight) относительно их непосредственных родителей PA_DroneWingLeft (и PA_DroneWingRight) соответственно. Я хочу, чтобы эти лезвия вращались на месте. Вместо этого я заставляю их вращаться глобально в направлении y относительно основного родителя (Air Drone). Я думаю, что строка в методе Обновления, которую я закомментировал, должна была работать, и она работала, но она все еще вращалась относительно Air Drone, а не на месте. Вторая строка, метод RotateAround. Я попытался создать пустой игровой объект с именем Left Pivot и поместить его примерно в центр левого крыла, чтобы левое лезвие вращалось вокруг него, но это было бесполезно.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LeftBladeRotation : MonoBehaviour
{
GameObject leftBlade;
private float speed;
private float angle;
GameObject leftPivot;
// Start is called before the first frame update
void Start()
{
speed = 10f;
leftBlade = transform.Find("PA_DroneBladeLeft").gameObject;
angle = 0f;
leftPivot = GameObject.FindGameObjectWithTag("Air Drone").transform.Find("PA_Drone").transform.Find("PA_DroneWingLeft").transform.Find("Left Pivot").gameObject;
}
// Update is called once per frame
void Update()
{
angle += speed * Time.deltaTime;
Quaternion rotation = Quaternion.Euler(new Vector3(0f, angle, 0f));
//leftBlade.transform.localRotation = rotation;
leftBlade.transform.RotateAround(leftPivot.transform.localPosition, Vector3.up, angle);
}
}