關於unity中物體移動
using UnityEngine;
public class Delete : MonoBehaviour {
CharacterController charaController;
Vector3 TargetPosition;
Transform thisTransform;
Rigidbody rigid;
public GameObject TargetObject;
public float MajorSpeed;
public Vector3 currentV;
void Start () {
thisTransform = GetComponent<Transform>();
//rigid = GetComponent<Rigidbody>();
//charaController = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update () {
TargetPosition = TargetObject.GetComponent<Transform>().position;
//是一個加速再減速的過程,距離近時會有卡頓(速度突然降下來)的感覺
//transform.position = Vector3.Lerp(thisTransform.position, TargetPosition, MajorSpeed);
//Perfect,速度可以改成一個函式,但這種每幀呼叫的語句,當場景中有大量物體時會很卡
//transform.position = Vector3.MoveTowards(thisTransform.position, TargetPosition, MajorSpeed);
//效果還不錯,但是目標點位置不確定的情況下,時間引數怎麼算
//transform.position = Vector3.SmoothDamp(thisTransform.position,TargetPosition,ref currentV,5f,1f);
//無法有Y軸方向的移動
//thisTransform.LookAt(TargetPosition);
//charaController.SimpleMove(thisTransform.forward * MajorSpeed);
//精確度不高
//if(TargetPosition != thisTransform.position){
// rigid.AddForce(TargetPosition);
//}
}
}