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);
  • 相关阅读:
    4.2Python数据类型(2)之布尔类型
    4.1Python数据类型(1)之数值类型
    AvalonJS+MVVM实战部分源码
    数据库的总结
    面向对象的Java实现
    静态HTML总结
    JS总结
    JSP开发Web应用系统
    使用C#开发数据库应用程序
    深入.NET平台和C#编程
  • 原文地址:https://www.cnblogs.com/chenyangsocool/p/6971555.html
Copyright © 2011-2022 走看看