如何修复我的敌人在游戏模式下隐身



所以,这是我的错误!我设计了一个统一的FPS游戏,并编写了一个AI敌人的脚本(目前它只是随机移动(,我还使用了NeoFPS,这应该是所有背景信息,而不是正在发生的事情:我可以在场景视图中看到敌人,在按下play之前,我可以在游戏视图中看到它,当我按下播放键时,敌人在游戏视图中消失了,但我仍然可以看到它试图在我放进去的小盒子周围移动,以及通过导航网等诸如此类的东西。当我进入盒子时,敌人的对撞机仍然在那里,但我看不到它,我穿过它射击,对它没有任何损坏。我会在下面附上屏幕截图和我的人工智能代码(白色胶囊是敌人w AI脚本里的一个小盒子,相机是FPS玩家

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class AICharacterController : MonoBehaviour
{
private NavMeshAgent m_Agent;
private void Awake()
{
m_Agent = GetComponent<NavMeshAgent>();
}
Vector3 movePosition;
void Update()
{
if (movePosition == Vector3.zero
|| Vector3.Distance(transform.position, m_Agent.destination) < 1)
{
SelectNewDestination();
}
}
void SelectNewDestination()
{
Vector2 pos = Random.insideUnitCircle * 50;
movePosition.x = pos.x;
movePosition.y = pos.y;
NavMeshHit hit = default;
if (NavMesh.SamplePosition(movePosition, out hit, 4, NavMesh.AllAreas))
{
m_Agent.SetDestination(hit.position);
}
}
public void Die()
{
Destroy(gameObject, 0.25f);
}
}

(如果你没有看到下面的图片,那么stackoverflow将其替换为链接,它不起作用(

如果事物在相机中是不可见的,但在场景视图中不是,那么这意味着"消隐掩模";属性设置为忽略对象所在的层。NeoFPS使用生成系统,因此生成的角色中的相机很可能与您在播放模式外观看的场景中的相机具有不同的剔除遮罩设置。要解决这个问题,你必须在角色预制的层次结构(通常称为PlayerCameraSpring(中找到相机,并将你的AI层添加到其剔除遮罩中。

最新更新