代码之家  ›  专栏  ›  技术社区  ›  Rumata

如何在Unity中同时移动和缩放3D对象?

  •  0
  • Rumata  · 技术社区  · 6 年前

    我需要 移动 规模 Unity中运行时的3D对象。

    我可以这样移动它:

    void Update(){
    
    public Transform target_1;
    float relocationSpeed = 10;
    float step = relocationSpeed * Time.deltaTime;
    
    MyObject.transform.position = Vector3.MoveTowards (MyObject.transform.position, target_1.position, step);
    }
    

    我可以像这样使用协同程序来扩展它:

    float scaleSize = 20;
    
    IEnumerator ScaleUpMyObject(){
    
            for (var i = 0; i < scaleSize; i++) {
    
                MyObject.transform.localScale += new Vector3 (1, 1, 1);
                yield return new WaitForSeconds(0.1f);
    
            }
    }
    

    但是移动和缩放物体的最佳方式是什么 同时 ?

    谢谢您!

    2 回复  |  直到 6 年前
        1
  •  2
  •   Fredrik Widerberg    6 年前

    public Vector3 wantedSize = new Vector3(5, 5, 5);
    void Update()
    {
        float relocationSpeed = 10;
        float step = relocationSpeed * Time.deltaTime;
    
        MyObject.transform.position = Vector3.MoveTowards(MyObject.transform.position, target_1.position, step);
        MyObject.transform.localScale = Vector3.MoveTowards(MyObject.transform.localScale, wantedSize, step);
    }
    
        2
  •  0
  •   Horothenic    6 年前

    你可以使用动画师,这里有一个例子。

    Unity 3D object animation example

    此外,您还可以使用像iTween(在资源存储上免费)这样的库来设置位置和比例向量的动画,也有过渡选项,使您不仅可以线性地进行平移(在四边形中轻松进出、反弹、指数化等等)。

    Unity Asset Store - iTween