其他分享
首页 > 其他分享> > unity中物体移动到指定位置的四种方法

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

作者:互联网

法一:使用Vector3.MoveTowards()方法

void Update(){
    float step = Speed*Time.deltaTime();
    gameObject.transform.localPosition = Vector3.MoveTowards(gameObject.transform.localPosition, new Vector3(0, 0, 60), step);
}

法二:使用iTween

iTween.MoveTo(m_UIbgCamera, iTween.Hash("x", -10, "y", 0, "z", 50, "time", 5.0f,"islocal", true));  

法三:使用差值Lerp

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, 0, step),Mathf.Lerp(gameObject.transform.localPosition.z, 50, step));//插值算法
}  

法四:使用协程 IEnumerate(**注意:**调用该协程的方法是:StartCoroutine(MoveToPosition()); )

IEnumerator MoveToPosition(){     //方法的声明  必须使用IEnumerate关键字
        GameObject m_UIbgCamera = GameObject.Find("UI/FengMian/UIbgCamera");  
        while (m_UIbgCamera.transform.localPosition != new Vector3(-5, 0, 50)){  
            m_UIbgCamera.transform.localPosition = Vector3.MoveTowards(m_UIbgCamera.transform.localPosition, new Vector3(-20, 0, 50), 10 * Time.deltaTime);  
            yield return 0;  
        }  
    }  

标签:localPosition,gameObject,物体,Vector3,transform,UIbgCamera,unity,step,四种
来源: https://blog.csdn.net/Sharpen__/article/details/115704042