1. 程式人生 > >Unity3D 中物體向目標移動

Unity3D 中物體向目標移動

    這幾天在寫一個數字漫遊專案,有一個要求是在高空鳥瞰,沿著固定的路徑移動.........

    部分程式碼如下:C#程式碼,CameraMove.cs

using UnityEngine;
using System.Collections;
public class CameraMove : MonoBehaviour 
{
     int SpeedUp = 10;
     bool Automatic = true;
     Vector3 Goal = new Vector3(200,10,100);
     void Update ()
    {
       if(Automatic)
		{
			Speed = true;
			transform.position=Vector3.MoveTowards(transform.position,Goal,Time.deltaTime * SpeedUp);
		}
    }
}

主要是 這個 Vector3.MoveTowards當前的地點移向目標。

API 上沒有具體介紹,

說是 “這個函式基本上和Vector3.Lerp相同,而是該函式將確保我們的速度不會超過maxDistanceDelta。maxDistanceDelta的負值從目標推開向量,就是說maxDistanceDelta是正值,當前地點移向目標,如果是負值當前地點將遠離目標。”

第一個引數是 開始位置,第二個引數是 目標位置; 第三個引數 我理解為控制 移動速度與方向的;

上面程式碼中 SpeedUp 是為了控制 移動的速度的.......

上面程式碼拖動到攝像機上 ,就可以實現攝像機移動了......

貌似通過這個還可以設定按固定曲線軌跡移動,個人覺得可以通過一些邏輯判斷來實現(PS:目前沒要求曲線我就沒有做測試)。

嘿嘿........小弟新手 ,希望大家多多指教~

                                                                                                                                                                                                                                                         破破

                                                                                                                                                                                                                                           2012年11月28日 13:02:44