【发布时间】:2014-05-28 17:02:30
【问题描述】:
嗨,我正在创建一个项目,其中有玩家或敌人 AI 能够拾取的收藏品,这将增加拾取它的分数并产生新的收藏品。对于我的玩家来说,它工作得很好,但是当我的敌人移动到应该是收藏品的触发对撞机(这是一个使用代码实例化的预制件,如果这会产生影响)时,什么也没有发生。
void OnTriggerEnter(Collider other) {
Debug.Log ("hihihi");
if (other.gameObject.tag == "Player") {
Destroy (gameObject);
this.gameObject.SetActive(false);
other.gameObject.SendMessage("spawnNewPage");
GameObject.FindGameObjectWithTag("Start").SendMessage("FindPath");
other.gameObject.SendMessage("incrementScore");
}
if (other.gameObject.tag == "Start") {
Destroy (gameObject);
this.gameObject.SetActive(false);
GameObject.FindGameObjectWithTag("Player").SendMessage("spawnNewPage");
other.gameObject.SendMessage("FindPath");
other.gameObject.SendMessage("incrementScore");
}
}
是我目前在可收藏预制件上的 Picks.cs 上使用的,但它不会为我的敌人触发。播放器是统一的标准 fps 控制器预制件。有什么明显的我想念我的敌人没有任何对撞机或任何东西,但我的 fps 控制器也没有,所以我认为这不是问题。对我所有的标签进行了双重和三重检查,因此任何提示将不胜感激。
【问题讨论】:
-
在我的敌方坦克上添加了一个角色控制器,最终解决了这个问题,这似乎有点狡猾,但现在它可以工作了
-
你有刚体组件连接到你的敌人游戏对象吗?
-
你试过给你的敌人添加一个刚体吗?如果它适用于玩家,您应该比较玩家对象和敌人对象上的内容以找出差异...我 110% 确定您不会使用角色控制器“修复”这个问题...虽然它可能是一个解决方案,我认为它不是正确的。
-
比较玩家对象是我为它附加角色控制器的原因。我发现它没有与我最初在物体上拥有的刚体碰撞,这很奇怪。当时,它与角色控制器一起工作,但该解决方案很狡猾,足以让我能够继续进行该项目