不确定StartCoroutine是否会造成口吃。但是当禁用脚本不在Inspector中使用它时,在使用脚本时,口吃就会消失。
我使用附加到ThirdPersonController的航点脚本。 我在ThirdPersoncontroller中添加了Nav MesH Agent。
我在Hierarchy中还有两个Spheres作为Naviagtion窗口中的航点,我勾选了复选框以使它们导航静态我也在平面上做了导航静态。
然后烤了它。
在Animator窗口中,我使用HumanoidWalk创建了新状态Walk并且默认设置为所有玩家在运行游戏时开始自动行走。
玩家在航点之间行走,但它都是口吃。 如果我没有使用脚本,那么玩家也可以正常行走,其他玩家只有在使用脚本时才能正常行走。
这是航点脚本:
using UnityEngine;
using System.Collections;
public class Patrol : MonoBehaviour
{
public Transform[] patrolPoints;
private NavMeshAgent agent;
private int dest = 0;
// Use this for initialization
void Start()
{
agent = GetComponent<NavMeshAgent> ();
StartCoroutine (Patrolling ());
}
IEnumerator Patrolling()
{
bool startPatorl = false;
for (int i = 0; i < patrolPoints.Length; i++)
{
while (!startPatorl)
{
if (agent.remainingDistance < 2.5f)
{
i++;
dest = i;
}
if (i >= patrolPoints.Length)
{
i = 0;
dest = 0;
}
agent.destination = patrolPoints[dest].transform.position;
yield return null;
}
}
}
}
答案 0 :(得分:0)
我认为问题是你的协程循环太多,试着改变这一行
yield return null;
白衣:
yield return new WaitForEndOfFrame();
或者这个:
yield return new WaitForSeconds(1);