Повернуть объект вокруг точки в единстве - PullRequest
0 голосов
/ 09 июля 2019

Я новичок в Unity. Так что просто для эксперимента я хочу создать канон, прикрепив прямоугольник к кругу, и когда нажата клавиша со стрелкой вверх, канон меняет угол стрельбы. Итак, у меня есть объект прямоугольника, который является подобъектом круга. И тогда я создал скрипт на C # для объекта круга.

enter image description here

Вот коды, которые у меня есть:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    private float rotation = 0f;
    private float timeValue = 0.0f;
    public GameObject wheele;
    private float xMin = -1.0f, xMax = 1.0f;
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            if (rotation >= -90)
                transform.Rotate(new Vector3(0.0f, 0.0f, rotation));

            rotation -= 2;
            Mathf.Clamp(rotation, -90.0f, 0);
        }
        if(Input.GetKeyDown(KeyCode.DownArrow))
        {
            if (rotation >= -90)
                transform.RotateAround(wheele.transform.position, Vector3.up,20);

            rotation += 2;
            Mathf.Clamp(rotation, -90.0f, 0);
        }


    }
}

Я пробовал оба преобразования. Метод поворота, но он вращается вокруг центра прямоугольника. Но нам нужно, чтобы прямоугольник вращался вместе с осью, центром круга.

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Есть два основных способа.

  1. Обновите модель, чтобы установить точку поворота именно там, где вы хотите, чтобы она вращалась. Вот как вы это сделаете, используя блендер . Это потребует от вас создания модели канона (даже если она такая же простая, как та, для которой вы использовали примитивы Unity)

  2. Создайте родительский объект GameObject и вместо этого вращайте его. Вы можете сместить пушку внутри этого GameObject, чтобы компенсировать точку поворота, установленную на модели.

1 голос
/ 09 июля 2019

Вы спрашиваете, как изменить точку разворота, верно?Создайте пустой игровой объект и перетащите пушку под ним, чтобы сделать его ребенком, затем перетащите пушку в точку, которая, по вашему мнению, подходит, и поверните пустой игровой объект вместо пушки, что в значительной степени просто меняет точку поворота

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...