歡迎您光臨本站 註冊首頁

Unity實現物體弧線運動到規定的座標

←手機掃碼閱讀     madbeef @ 2020-06-22 , reply:0

本文實例為大家分享了Unity實現以弧線的形式運動到規定座標的具體代碼,供大家參考,具體內容如下

1、u3d場景的設置

2、 Run 腳本

  using UnityEngine;  using System.Collections;     public class Run : MonoBehaviour  {   public GameObject target;  //要到達的目標   public float speed = 10;  //速度   private float distanceToTarget;  //兩者之間的距離   private bool move = true;        void Start()   {   //計算兩者之間的距離   distanceToTarget = Vector3.Distance(this.transform.position, target.transform.position);    StartCoroutine(StartShoot());   }      IEnumerator StartShoot()   {      while (move)   {    Vector3 targetPos = target.transform.position;       //讓始終它朝著目標    this.transform.LookAt(targetPos);       //計算弧線中的夾角    float angle = Mathf.Min(1, Vector3.Distance(this.transform.position, targetPos) / distanceToTarget) * 45;    this.transform.rotation = this.transform.rotation * Quaternion.Euler(Mathf.Clamp(-angle, -42, 42), 0, 0);    float currentDist = Vector3.Distance(this.transform.position, target.transform.position);    if (currentDist < 0.5f)    move = true;    this.transform.Translate(Vector3.forward * Mathf.Min(speed * Time.deltaTime, currentDist));    yield return null;   }   }        }

 

3、 運行結果

重合到一起後,拖動Start的小球,鬆手後又會重合。



[madbeef ] Unity實現物體弧線運動到規定的座標已經有267次圍觀

http://coctec.com/docs/program/show-post-239414.html