您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页[unity]移动物体的几种方法

[unity]移动物体的几种方法

来源:华佗小知识
[unity]移动物体的⼏种⽅法

参考⼤佬博客:

⽅法1:使⽤Vector3.MoveTowards

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

另附:朝某个⽅向移动

//⽅案⼀

transform.Translate(Vector2.left * speed * Time.deltaTime * moveDir);//⽅案⼆

Vector3 targetVelocity = new Vector2(-moveDir * speed, body2D.velocity.y);

body2D.velocity = Vector3.SmoothDamp(body2D.velocity, targetVelocity, ref curSpeed, 0.1f);

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务