1. 程式人生 > >Unity中滑鼠點選控制人物移動,就像英雄聯盟一樣

Unity中滑鼠點選控制人物移動,就像英雄聯盟一樣

首先,建立一個Cube和Plane

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move : MonoBehaviour {
    public float MoveSpeed;//定義移動速度
    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//由攝像機向滑鼠位置發射射線,Input.mousePosition為滑鼠點選的位置
RaycastHit hit; Physics.Raycast(ray, out hit); transform.Translate(transform.forward * MoveSpeed * Time.deltaTime, Space.World);//朝當前方向移動 if (Input.GetMouseButtonDown(0)) { if (hit.collider.gameObject.name == "Plane")//當射線碰撞到的是Plane { if
(Vector3.Distance(transform.position, hit.point) > 0.1f)//當自身位置和滑鼠點選位置大於0時 { transform.LookAt(hit.point);//看向滑鼠點選的方向 MoveSpeed = 3f; } } } if (Vector3.Distance(transform.position, hit.point) < 0.5f)//用“0.5f”是為了使檢測範圍大一點,以防Cube一直朝當前方向移動不會停下來
{ MoveSpeed = 0; } } }

之後,把指令碼掛在Cube上,點選Plane的任意位置,Cube便可在Plane平面上移動到滑鼠點選的位置