【发布时间】:2013-12-12 18:46:34
【问题描述】:
我已经可以通过寻路制作移动网格并为玩家避开障碍物。现在我想根据移动网格和可用的动作点让 AI 自己移动(就像玩家一样),但我不知道该怎么做。现在,我只能让角色移动到该位置(但它不跟随寻路,这个角色假设是AI)。我一直试图解决这个问题,但不能。你们能帮帮我吗?谢谢。
这是我目前得到的代码(它使假定为 AI 的角色移动到该位置,但它不跟随寻路):
using UnityEngine;
using System.Collections;
public class AIPlayer : Player
{
void Awake()
{
moveDestination = transform.position;
}
// Use this for initialization
void Start()
{
ColorChanger();
}
// Update is called once per frame
void Update()
{
}
public override void TurnUpdate()
{
if (GameManager.instance.currentPlayerIndex == 5)
{
if (Vector3.Distance(moveDestination, transform.position) > 0.1f)
{
transform.position += (moveDestination - transform.position).normalized * moveSpeed * Time.deltaTime;
if (Vector3.Distance(moveDestination, transform.position) <= 0.1f)
{
transform.position = moveDestination;
actionPoints--;
}
}
else
{
moveDestination = new Vector3(2 - Mathf.Floor(GameManager.instance.mapSize / 2), 1.5f, -2 + Mathf.Floor(GameManager.instance.mapSize / 2));
GameManager.instance.NextTurn();
}
}
base.TurnUpdate();
}
public override void TurnOnGUI()
{
}
public override void ColorChanger()
{
base.ColorChanger();
}
}
这是游戏的链接视频:
【问题讨论】:
标签: c# unity3d artificial-intelligence