【问题标题】:How to transform world position to local position in unity 3d for itween如何在统一 3d 中将世界位置转换为本地位置
【发布时间】:2014-06-05 12:23:15
【问题描述】:

我正在努力解决将世界位置转换为本地位置的问题。我正在统一使用 iTween 插件。在 iTween 中有一个 position 的参数,它是世界位置,但我想使用像素中的本地位置来移动 iTween 中的对象。 我试过transform.TransformPoint(new Vector3(0,0,0) 我不认为它根据像素位置工作。

像这个例子:

iTween.MoveTo(gameObject,iTween.Hash("position",new Vector(0,0,0) , "time" ,.6, "easetype" ,"easeincubic"));

位置 iTween 的参数采用世界位置,但我想转换为像素位置。 就像我通过new Vector(450,50,0);

您的帮助将不胜感激。

【问题讨论】:

    标签: unity3d position transform itween


    【解决方案1】:

    记得在iTween.Hash中添加:"islocal", true参数

    【讨论】:

      【解决方案2】:

      您可以尝试使用Camera.current.WorldToScreenPoint(Vector3 vector),它在相机空间中返回一个带有 x 和 y 的 Vector3,即介于 0 和 1 之间的值。

      将这些值与Screen.widthScreen.height 相乘可以得到以像素为单位的位置。

      【讨论】:

        【解决方案3】:

        "islocal' = true 在 moveto 功能中无法正常工作。还有另一种解决方案。

        这是我的代码:

        iTween.MoveTo(gameObject,iTween.Hash("position",Target,"time",_Duration,"delay",_Delay,"easetype",_eEaseType,"islocal",true,"looptype",_eLoop));
        

        【讨论】:

        • iTween.MoveTo(gameObject, iTween.Hash("position", Target , "time", _Duration, "islocal", true, "easetype", iTween.EaseType.linear));跨度>
        猜你喜欢
        • 2011-03-06
        • 1970-01-01
        • 2012-12-11
        • 1970-01-01
        • 2018-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多