Unity - 将对象移动到点

我正在使用下面的代码将球移动到确定的点。但是,球正在“传送”到那里,我怎样才能将球滚动到该点?


void Update(){

            if (Input.GetMouseButtonDown(0) && EventSystem.current.currentSelectedGameObject != ButtonDiminuir && EventSystem.current.currentSelectedGameObject != ButtonAumentar &&

       EventSystem.current.currentSelectedGameObject != BarraForca) {

                    transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, transform.position.y, -9.0424f), 2 * Time.deltaTime);

                    Anim.Play("Kick_Up");

            }

}


临摹微笑
浏览 196回答 2
2回答

翻过高山走不出你

你可以这样做Vector3.Lerp:Vector3 startPosition;Vector3 endPosition;var speed = 10.0;transform.position = Vector3.Lerp(startPosition, endPosition, speed * Time.deltaTime);或使用 Vector3.MoveTowards// The step size is equal to speed times frame time.float step = speed * Time.deltaTime;// Move our position a step closer to the target.transform.position = Vector3.MoveTowards(transform.position, target.position, step);

芜湖不芜

如果要滚动球,请AddForce()改用transform.position.首先,将Rigidbody和添加Sphere Collider到您的球类游戏对象。然后试试这段代码:public Vector3 targetPoint;public float forceAmount;...void Update(){&nbsp; &nbsp; Vector3 force = ((targetPoint - transform.position).normalized * forceAmount * Time.smoothDeltaTime);&nbsp; &nbsp; GetComponent<Rigidbody>().AddForce(force);}另外,如果你想球在到达目标点后立即停止,你可以设置GetComponent<Rigidbody>().velocity为 0 时targetPoint - transform.position = 0我希望它对你有帮助。
打开App,查看更多内容
随时随地看视频慕课网APP