http://blog.csdn.net/lcy0221/article/details/44040739
方法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;
- }
- }
本文介绍了在Unity中实现物体平移的四种方法:使用Vector3.MoveTowards进行平滑移动;使用插值算法实现平滑过渡;利用iTween插件完成路径动画;通过协程逐步移动到指定位置。
5960

被折叠的 条评论
为什么被折叠?



