CharacterController平滑移動到某點


通常使用CharacterController控制玩家移動時,我們都會寫以下代碼:

void Update()
{
    var move = (moveTarget - transform.Position) * role.MoveSpeed;
    role.characterController.Move(move * Time.deltaTime);
}

經過調試,當玩家與目標點越接近時,move值會越來越小,表現為與目標點越近速度越慢。

 

修改后

//保證每次move的值一樣
var offset = (moveTarget - transform.position);
if (offset.sqrMagnitude > 0.01f)
 {
      offset = offset.normalized * role.MoveSpeed;
      role.characterController.Move(offset * Time.deltaTime);
 

 

參考:http://answers.unity3d.com/questions/550472/move-character-controller-to-a-point.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM