c# - 检测并跟随玩家
问题描述
我已经开始了一个新游戏。我有一个敌人,当玩家与敌人有一定距离时,他会攻击。我的脚本有效,敌人跟随玩家,但尽管我设置了数字,但它仍在跟随玩家。我需要敌人在离玩家足够近后才跟随。我有一个附在敌人身上的空物体,脚本就在上面。
我在统一社区答案中寻找答案并找到我在此链接中使用的脚本https://answers.unity.com/questions/274809/how-to-make-enemy-chase-player-basic-ai.html 和我也用谷歌搜索了它,但找不到任何正确的解决方案。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AIController : MonoBehaviour
{
public int AttackTrigger2;
public Transform Player;
public int MoveSpeed = 4;
public int MaxDist = 10;
public int MinDist = 5;
void Update()
{
transform.LookAt(Player);
if (Vector3.Distance(transform.position, Player.position) >= MinDist)
{
transform.position += transform.forward * MoveSpeed * Time.deltaTime;
if (Vector3.Distance(transform.position, Player.position) <= MaxDist)
{
//Here Call any function U want Like Shoot at here or something
}
}
}
}
我的代码没有错误,他做了我需要的,但我需要在我的玩家离开一定距离后敌人停止跟随玩家。
解决方案
我猜您链接的论坛中的下一个答案实际上可以解决您的问题。问题只是复制和粘贴,而不了解为什么某些行为应该如此。在这种情况下:
>= MinDist
表示只要大于或等于 ,敌人就会跟随玩家MinDist
,在本例中为 5。我猜你想要的是:
<= MaxDist
这样敌人只有在距离小于 10 时才会跟随。如果距离超过 10 个,请停止跟踪。
推荐阅读
- python - 比较列表中数据框之间的列号标签
- angular - Angular 5,当路径为空时,redirectTo 被忽略或不工作
- r - 带有名称的数据框列表列表
- sql - 如何根据相似的 id 将同一列中的值组合到一个新列中
- php - OpenSSL::HMAC.hexdigest PHP 等价物不会打印与 ruby one 相同的结果
- android - 片段不更新editext的内容
- python - 我怎样才能使用 Python 从 Google Pub/Sub 中以足够快的速度阅读
- reinforcement-learning - 如何处理具有终端状态奖励的可变长度剧集的奖励
- django - 为非 dockerized django 网站设置 CD 的最佳或推荐方式?
- laravel - 从控制器传递值以查看未定义的变量错误