zoukankan      html  css  js  c++  java
  • unity3d世界坐标系和本地坐标系

    transform.Translate(Vector3.forware);//向着自己坐标前方
    transform.Translate(Vector3.forware,Space.World);//向着世界坐标前方

    举例子加深印象:有两个Cube

    Cube1处于原点,Cube2在Cube1右边且角度有所不同。

    此时分别调用如下代码:

    Debug.Log(name+"--"+Vector3.forward+":"+transform.forward);

    输出结果是:

    Cube2--(0.0, 0.0, 1.0):(0.5, -0.7, 0.5)
    UnityEngine.Debug:Log(Object)
    Zuobiaoxi:Update() (at Assets/scripts/Zuobiaoxi.cs:16)

    Cube1--(0.0, 0.0, 1.0):(0.0, 0.0, 1.0)
    UnityEngine.Debug:Log(Object)
    Zuobiaoxi:Update() (at Assets/scripts/Zuobiaoxi.cs:16)

    可以看出,Vector3.forward是本地坐标系的变化,而transform.forward获取的是世界坐标系的变化。

    所以教程内是这样说的:

    if (Input.GetKeyDown (KeyCode.W)) {
        //按照本地坐标系进行移动
        transform.Translate(Vector3.forward);
        //按照世界坐标系进行移动
        transform.position+=transform.forward;
    }

    常用的是:

    transform.Translate(Vector3.forward);
  • 相关阅读:
    linux 环境下安装oracle11g方法及安装过程中遇上的问题解决方法
    Opencv Mat的操作
    Opencv 的数据结构
    Opencv 摄像头矫正
    LM算法
    Python 正则表达式
    find grep
    Socket 入门
    Python thread
    Javascript实现页面跳转的几种方式
  • 原文地址:https://www.cnblogs.com/chenyangsocool/p/6971555.html
Copyright © 2011-2022 走看看