c# - 我试图创建不应该碰撞的随机定位的对象。我的对撞机似乎没有正确检测到。我如何解决它?
问题描述
我有一个包含旋转立方体的预制空对象。我试图在这里做这项技术:https ://answers.unity.com/questions/356438/how-to-stop-a-collider-rotating-with-the-gameobjec.html 。我有一个正确的标签,选中了 onTrigger 复选框。
食物发生器
public class FoodGenerator : MonoBehaviour {
public GameObject food;
public int foodCount;
void Start () {
for (int i = 0; i < foodCount; i++){
Vector3 position = new Vector3(Random.Range(-8.0f, 8.0f), 1.0f, Random.Range(-8.0f, 8.0f));
Instantiate(food, position, Quaternion.identity);
}
}
}
非旋转对撞机
public class NonRotatingCollider : MonoBehaviour {
private void OnTriggerEnter(Collider other)
{
Debug.Log("Triggered", other);
if (other.gameObject.CompareTag("Pick Up"))
{
Vector3 position = new Vector3(Random.Range(-8.0f, 8.0f), 1.0f, Random.Range(-8.0f, 8.0f));
transform.position = position;
}
}
}
这里的 Debug.Log("Triggered") 甚至没有激活。我究竟做错了什么?
解决方案
如果要OnTriggerEnter
调用该函数,则isTrigger
必须在对撞机上启用该属性。此外,必须将刚体附加到对撞机。没有证据表明您已将刚体附加到游戏对象。如果刚体已附加此 GaeObject,请确保未在两个碰撞刚体上启用 isKinematic。
当没有或只有一个碰撞刚体启用了 isKinematic 时,应调用 OnTriggerEnter。如果两个碰撞刚体都启用了 isKinematic,则不会调用 OnTriggerEnter。
推荐阅读
- javascript - 如何在匹配 RegEx 中使用模板文字?
- python - 在 GridSearchCV 和 RandomizedSearchCV 中获取单个模型和自定义分数
- java - 进度条直到 RecyclerView 被填满
- firebase - 从 Firebase 云存储托管矢量切片
- python - 在 Python 3 中,当我将 .csv 文件作为附件发送时,它缺少行
- python - 有时在乒乓球比赛中球不会从球拍上反弹
- azure-functions - 如何使用 Azure 函数 Cosmos DB 触发器捕获更改?
- swift - 更改 TabView 指示器 SwiftUI
- python - 深度学习模型预处理中的关键错误
- python - 我可以使用 seaborn.countplot 来显示我的数据吗?