美文网首页
对比transform中的世界坐标和自身坐标

对比transform中的世界坐标和自身坐标

作者: Joe_Game | 来源:发表于2018-09-23 21:10 被阅读0次

前言:

感觉自己对这方面还是比较模糊,看下到底是个啥


1、添加Test脚本,打开编辑:

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

public class Test : MonoBehaviour {

    private void Start()
    {

        Debug.Log("世界坐标:" + transform.position);
        Debug.Log("自身坐标:" + transform.localPosition);

        Debug.Log("世界四元数旋转:" + transform.rotation);
        Debug.Log("自身四元素旋转:" + transform.localRotation);

        Debug.Log("世界欧拉角旋转:" + transform.eulerAngles);
        Debug.Log("自身欧拉角旋转:" + transform.localEulerAngles);

        Debug.Log("世界缩放:" + transform.lossyScale);
        Debug.Log("自身缩放:" + transform.localScale);

        Debug.Log("自身转世界矩阵:" + transform.localToWorldMatrix);
        Debug.Log("世界转自身矩阵:" + transform.worldToLocalMatrix);
    }

}

2、创建Cube,点击小齿轮重置Transform


3、将Test脚本挂载到Cube身上



4、快捷键Ctrl+Shift+C打开Console窗口查看打印信息
5、运行查看打印信息


  • 此时Cube在世界空间下,世界坐标和自身坐标没有区别

6、新建空物体,重置Transform


7、Cube拖到空物体下,成为子物体


8、运行,查看打印


  • 当父物体重置Transform的情况下,世界坐标和自身坐标也没有区别

9、 改变父物体的Transform中的位置和旋转,运行打印


  • 世界坐标变化了,自身坐标没变

10、改变子物体Cube的Transform中的位置和旋转,运行打印


  • 世界坐标与自身坐标都变化了,其中自身坐标就是刚刚改变的子物体Cube刚刚修改的位置与旋转
  • 子物体Cube的自身坐标就是显示在检视面板的值,而子物体Cube的世界坐标的值=自身坐标的值+父物体坐标的值
  • 检视面板中的Rotation对应的是欧拉角旋转,而不是四元数旋转
  • 当Cube为子物体的时候,对应的检视面板中的Transform是自身坐标的值;当Cube不是子物体的时候,对应的检视面板中的Transform是世界坐标的值

11、改变父物体的缩放,运行打印


  • 世界坐标=自身坐标+父物体坐标*父物体缩放值

12、改变子物体的缩放,运行打印


  • 世界缩放=自身缩放*父物体缩放
  • 世界坐标不受子物体缩放印象;而是受父物体缩放影响

最后:

本来想一起测试四元数旋转和矩阵旋转这两个世界坐标和自身坐标,不过暂时没搞明白,下次吧

相关文章

  • 对比transform中的世界坐标和自身坐标

    前言: 感觉自己对这方面还是比较模糊,看下到底是个啥 1、添加Test脚本,打开编辑: 2、创建Cube,点击小齿...

  • 二、坐标:2、本地坐标和世界坐标

    1、从自身坐标到世界坐标 transform.TransformPoint()这个方法的返回值就是Vector3类...

  • Unity 世界坐标与屏幕坐标

    世界坐标 在场景中添加物体都是以世界坐标显示在场景中的。transform.position可以获得该位置坐标。 ...

  • Unity坐标转换

    世界坐标转换本地坐标 public Transform ObjectPos; public void CdPos(...

  • OpenGL 坐标系

    OpenGL 坐标系可分为:世界坐标系和当前绘图坐标系。 世界坐标系 在OpenGL中,世界坐标系是以屏幕中心为原...

  • OpenGL 中坐标系的理解

    OpenGL坐标系可分为:世界坐标系和当前绘图坐标系。 世界坐标系:在OpenGL中,世界坐标系是以屏幕中心为原点...

  • Unity坐标系

    一 坐标系简介 1 世界坐标系 可以用transform.position获取 2 局部坐标系 局部坐标系是...

  • 世界坐标,本地坐标的转换

    一个是变换自身坐标到世界坐标 一个是变换世界坐标到自身坐标 比如说物体a的坐标内有一个3,3,3的点你想知道这个点...

  • Unity3d--Transform

    三种变换方式: transform component方法Translate():平移,可以指定按照世界坐标系平移...

  • Unity的transform中几个api

    由于坐标系存在本地坐标系和世界坐标系两种,那么就需要有方法可以对这两种坐标系进行转换。 transform.loc...

网友评论

      本文标题:对比transform中的世界坐标和自身坐标

      本文链接:https://www.haomeiwen.com/subject/guyqoftx.html