Unity3d 围绕统一点旋转对象

Unity3d 围绕统一点旋转对象,unity3d,Unity3d,我是团结的新成员。为了做个实验,我想把一个长方形和一个圆连在一起,当按下向上箭头键时,佳能就会改变发射角度。我有一个矩形物体,它是圆的一个子物体。然后我用C#为圆形对象创建了一个脚本 以下是我拥有的代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { private float

我是团结的新成员。为了做个实验,我想把一个长方形和一个圆连在一起,当按下向上箭头键时,佳能就会改变发射角度。我有一个矩形物体,它是圆的一个子物体。然后我用C#为圆形对象创建了一个脚本

以下是我拥有的代码:

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);
        }


    }
}

我试了两种方法。旋转方法,但它会围绕矩形的中心旋转。但是我们需要矩形与轴一起旋转,即圆的中心。

你在问如何改变轴心点,对吗?制作一个空的游戏对象,并将大炮拖到它下面使其成为一个孩子,然后将大炮拖到你认为合适的位置,然后旋转空的游戏对象而不是大炮,这几乎只是改变了轴心点,你在问如何改变轴心点,对吗?制作一个空的游戏对象,并将大炮拖到它下面使其成为一个孩子,然后将大炮拖到你认为合适的位置,然后旋转空的游戏对象而不是大炮,这几乎只是改变了轴心点。主要有两种方法

  • 更新模型以将轴心点精确设置为要旋转的位置。这将需要你为佳能实际创建一个模型(即使它和你使用的Unity原语一样简单)

  • 创建一个父游戏对象,并旋转它。您可以在此游戏对象内偏移加农炮,以补偿模型上设置的轴点


  • 主要有两种方法

  • 更新模型以将轴心点精确设置为要旋转的位置。这将需要你为佳能实际创建一个模型(即使它和你使用的Unity原语一样简单)

  • 创建一个父游戏对象,并旋转它。您可以在此游戏对象内偏移加农炮,以补偿模型上设置的轴点