C# 在unity中,我如何使我的第三个personcontroller角色自动从一点移动到另一点?

C# 在unity中,我如何使我的第三个personcontroller角色自动从一点移动到另一点?,c#,unity3d,unityscript,unity5,C#,Unity3d,Unityscript,Unity5,我在找c#script。 一旦我创建了新的自动行走脚本,我需要把它拖到第三个personcontroller 像帕特林。我给出两点的两个值,角色将自动在两点之间移动,如果路径中有物体,它将爬过它,或者如果它是mor逻辑,它将停止巡逻或运行它 但一开始我不知道如何让它在两点之间自动移动 今天我在我的第三个personcontroller-in-Inspector中使用了动画师部分:第三个personanimatorcontroller 在第三人称用户控件(脚本)中,我使用了:ThirdPerson

我在找c#script。 一旦我创建了新的自动行走脚本,我需要把它拖到第三个personcontroller

像帕特林。我给出两点的两个值,角色将自动在两点之间移动,如果路径中有物体,它将爬过它,或者如果它是mor逻辑,它将停止巡逻或运行它

但一开始我不知道如何让它在两点之间自动移动

今天我在我的第三个personcontroller-in-Inspector中使用了动画师部分:第三个personanimatorcontroller

在第三人称用户控件(脚本)中,我使用了:ThirdPersonUserControl

脚本来自unity。

示例:

public GameObject thirdPerson; // you third person GameObject
public int oldPosition = 5; // start (old) point
public int newPosition = 10; // new point

void Update()
{ 
    if (oldPosition <= newPosition)
    {
        oldPosition += Time.deltaTime;
    }
    thirdPerson.transform.position = new Vector3(oldPosition, 0, 0);
}
public GameObject thirdPerson;//你可以使用第三人称游戏对象
public int oldPosition=5;//起点(旧)点
public int newPosition=10;//新点
无效更新()
{ 

如果(oldPosition您需要创建Navmesh代理。这将允许角色自动绕过对象并跳过障碍物

在开始之前做一点研究,写下你需要你的角色首先做什么。你的场景可以用新的navmesh更新,当你烘焙时,哪些对象是可行走的,哪些必须避免,哪些可以跳过

如果这似乎是一项太大的任务,那么unity asset store中有一些简单的AI脚本可以免费使用,它们可以满足您的需求


一旦你有了工作navmesh,这里有一个在巡逻点之间移动它的链接。

简单地在两个点之间移动,请查看。为了避免障碍物,你需要阅读寻路算法(例如:a*)@Rimply我查看了链接中的示例。我创建了一个新的脚本文件,添加了代码,然后将脚本拖到ThirdPersonController。然后在Insepctor中设置目标:ThirdPersonController(Transofrm)速度为5。但是角色没有移动。如果我将目标设置为主摄像机,那么角色会向后移动,口吃,跳跃,嘎吱,奇怪。关于最后的评论,你最好在Unity论坛上询问一下