c# - 当玩家与触发器发生碰撞时,如何启用游戏对象的组件?
问题描述
我正在制作一个游戏,您必须在不碰到任何障碍的情况下从 A 点到达 B 点。有些障碍物在移动,有些则没有。我决定在我的一个关卡中添加一个触发器,以启用两个障碍物的脚本,使它们移动。这是附加到触发器的脚本:
private void OnCollisionEnter(Collision collision)
{
GameObject.Find("Obstacle (10)").GetComponent<MovingObjects>().enabled = true;
GameObject.Find("Obstacle (9)").GetComponent<MovingObjects>().enabled = true;
}
出于某种原因,此代码以及该方法似乎不起作用。当玩家通过触发器时没有任何反应。为什么?
解决方案
查看碰撞矩阵
碰撞事件(如OnCollisionEnter
)不会在标记为 的 Collider 上引发isTrigger
。
请注意,afaikOnTriggerEnter
也只会在不是触发器的对象上调用。
推荐阅读
- azure - Azure DevOps 中的看板
- python - 使用 xgboost 分类器进行多类分类?
- datagridview - 如何在datagridview的最后一行下获得灰色区域的高度?
- java - 测试 Oracle spring.datasource.validationQuery=SELECT 1 from dual 的 Spring Boot 验证查询
- python - 删除字符串的每隔一个字符(必须是字母或数字)而不影响python中的空格
- javascript - 如何在 React onClick 中模拟键盘事件?
- php - 如何在PHP中生成具有3位数字且每个数字中没有双数字的唯一数字
- c# - 我可以使用 C# 在浏览器的谷歌驱动器中查看和打开文件吗
- excel - 使用vba将原始数据转换为excel中的表格
- java - 在这种情况下创建了多少个 Spring bean