1. 程式人生 > >Unity實現滑鼠點選地面的任意位置,則角色會立即走到滑鼠點選的位置

Unity實現滑鼠點選地面的任意位置,則角色會立即走到滑鼠點選的位置

一、建立一個角色,並給角色新增 CharacterController 控制器,這裡以簡單的Capsule物體作為角色示例,如下所示:

二、編寫控制角色移動的指令碼  RayDemo2_CCWalking.cs

/***
 *
 *  Title: 
 *         射線
 *
 *  Description:
 *        功能:
 *            使用“射線”技術,實現位置定位
 *
 *  Date: 2018
 * 
 *  Version: 1.0
 *
 *  Modify Recorder:
 *     
 */
using UnityEngine;
using System.Collections;

public class RayDemo2_CCWalking : MonoBehaviour{
    private Vector3 VecGoalPosition;                       //移動的目標位置
    CharacterController CC;                                //角色控制器

    void Start(){
        //得到角色控制器
        CC = gameObject.GetComponent<CharacterController>();
    }
	void Update () {
        //確定移動位置
        if (Input.GetMouseButton(0)){
            //定義一個射線
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            //如果命中
            if (Physics.Raycast(ray, out hit)){
                VecGoalPosition = hit.point;
            }
        }
        //角色移動
        if (Vector3.Distance(VecGoalPosition, this.transform.position) >0.1F){
            //移動的步伐
            Vector3 step = Vector3.ClampMagnitude(VecGoalPosition - this.transform.position, 0.1f);
            //角色控制器的移動
            CC.Move(step);
        }
	}//UPDATE_END
}

三 、將RayDemo2_CCWalking.cs控制指令碼新增給角色,執行專案,使用滑鼠點選地面,則角色自動移動到滑鼠點選的位置

注:本內容來自《Untiy3D/2D遊戲開發從0到1》 第25章