我在制作时遇到这个问题,调试了好久又搜了搜百度,发现原因是:
鼠标按下左键时,此时会创立一个目的标识点,人物看向目标点,并向前移动。但是 ,当松开鼠标左键时,方法体内的代码就不再运行。如果人物行走到凹凸不平的地面上时,人物的方向会有一点改变,但人物接收的指令是向前走,所以会偏移原来方向一直向前走,无法停止。解决方法呢就是在update()添加让人物一直看向目的标识点,这样人物方向就不会改变,到达目标地点就停止了,下面这是修改后成功的代码,希望能帮到大家:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControl : MonoBehaviour
{
[SerializeField]
private GameObject[] PlayerPrint;//移动标识
public static GameObject player;//主角
private CharacterController controller;//行走控制器
private bool IsMoving = false;//表示鼠标是否按下
private Vector3 printPosition = Vector3.zero;
private float speed = 4;//人物行走速度
private Animation Anima;//控制人物动画
// Start is ca