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);
  • 相关阅读:
    [POI2010]Divine Divisor
    JOISC2014B たのしい家庭菜園
    Problem. C
    AGC004F Namori
    AGC007F Shik and Copying String
    AGC027C ABland Yard
    AGC028E High Elements
    JOI2017FinalE 縄
    CF797F Mice and Holes
    Problem. B
  • 原文地址:https://www.cnblogs.com/chenyangsocool/p/6971555.html
Copyright © 2011-2022 走看看