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

版权声明:非游戏开发类文章可以随意转载,游戏开发类文章不可转载,除此之外博客中所有代码都并非项目中的实际代码,仅供学习和参考 https://blog.csdn.net/Jaihk662/article/details/86763612

 

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

一、模型中心点

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

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

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

Center状态例子:

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

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

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

 

二、按键控制物体旋转

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

效果如下:

 

展开阅读全文

没有更多推荐了,返回首页