Unity中移动物体到指定位置

发表于2018-10-12
评论0 7.9k浏览
很多游戏都有传送这个功能,那么在unity开发过程中如何借助代码实现这种移动物体到指定位置的功能,下面就介绍四种移动物体到指定位置的方法。

1、使用Vector3.MoveTowards
</pre><pre name="code" class="csharp">void Update () 
{
	float step = speed * Time.deltaTime;
 	gameObject.transform.localPosition = Vector3.MoveTowards(gameObject.transform.localPosition, new Vector3(10, -3, 50), step);
}

2、使用插值
void Update () 
{
	float step = speed * Time.deltaTime;
 	gameObject.transform.localPosition =new Vector3(Mathf.Lerp(gameObject.transform.localPosition.x, 10, step),Mathf.Lerp(gameObject.transform.localPosition.y, -3, step),Mathf.Lerp(gameObject.transform.localPosition.z, 50, step));//插值算法也可以
}

3、使用iTween
iTween.MoveTo(m_UIbgCamera, iTween.Hash("x",     -20,
                                                "y",     -3,
                                                "z",     50,
                                                "time",  1.0,
                                                "islocal", true
                       ));

4、使用协程
StartCoroutine(MoveToPosition());
IEnumerator MoveToPosition()
    {
        GameObject m_UIbgCamera = GameObject.Find("UI/FengMian/UIbgCamera");
        while (m_UIbgCamera.transform.localPosition != new Vector3(-5, -3, 50))
        {
            m_UIbgCamera.transform.localPosition = Vector3.MoveTowards(m_UIbgCamera.transform.localPosition, new Vector3(-20, -3, 50), 10 * Time.deltaTime);
            yield return 0;
        }
    }

希望上述移动物体到指定位置的四种方法能帮到大家。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引