unity 移动物体到指定位置的四种方法

来源:互联网 发布:印刷自助报价系统源码 编辑:程序博客网 时间:2024/05/24 01:13

方法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;        }    }




0 0