Unity3D基础17:物体中心点与物体旋转

时间:2024-04-08 16:19:34

 

前文:https://blog.csdn.net/Jaihk662/article/details/86754532(利用Transform组件移动物体)

一、模型中心点

模型身上的坐标轴的中心点,也就是我们模型的中心点,模型的的位置旋转缩放都是相对于模型的中心点来进行变化

Unity3D基础17:物体中心点与物体旋转

多个物体的中心点:如果你选中了多个物体,那么这些物体整体的中心点在哪呢?

Unity3D基础17:物体中心点与物体旋转

  • Center:当选中多个模型时,模型组的中心点在所有物体中心点的最中间
  • Pivot:当选中多个模型时,模型组的中心点在你选中的最后一个物体身上

Center状态例子:

Unity3D基础17:物体中心点与物体旋转

如何改变模型中心点?创建一个空物体,创建父子关系,通过父物体来控制子物体即可间接改变物体中心点

例子如下:这个时候若要旋转右边的组合物体,就会以图中的中心点为轴

Unity3D基础17:物体中心点与物体旋转

(当然把中心点设在这里非常的不合理,所以在之后将其改成了组合物体的中心点)

 

二、按键控制物体旋转

Transform.Rotate(Vector3,float):让物体沿Vector3方向旋转float度

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LRtoDoor : MonoBehaviour
{
    private Transform myTransform;
    private Rigidbody myRigidbody;
    void Start()
    {
        myTransform = gameObject.GetComponent<Transform>();        //获取相应对象的引用
        myRigidbody = gameObject.GetComponent<Rigidbody>();
    }
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Z))
            myTransform.Rotate(Vector3.down, 90);           //按下Z键让物体沿世界坐标系前方旋转90°
        if (Input.GetKeyDown(KeyCode.X))
            myTransform.Rotate(Vector3.up, 90);
    }
}

效果如下:

Unity3D基础17:物体中心点与物体旋转