1.首先创建一个角色
如果有动画就添加上动画组件
设置刚体、碰撞体等一系列需要的组件(看自身需求)
2.然后创建一个plane做地板(记得地板也要添加碰撞体,不然人物会一直下落)
3.然后添加一个脚本PlayerMove挂载到玩家角色身上
脚本思路:
1.通过射线检测,判断点击的是地板还是敌人或是己方队友
2.移动,若是敌人就判断是否在攻击距离内,若不在就移动到攻击距离,然后开始攻击,若果队友或者是地板就直接移动到 目标点
3.目标点与自身的位置关系,是否要转身、距离等
4.停止,由于float类型有误差的关系,所以当距离小于一定值得时候,就判定为到达目标点
代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
//移动速度
private float speed = 3f;
//动画
private Animator ani;
//射线碰撞检测
private RaycastHit hit;
//射线
private Ray ray;
//鼠标点击位置
private Vector3 endPosition;
Vector3 step;
Quaternion ratation