碰撞脚本不起作用?
On-collision script not working?
高级我想说如果这是一个简单的问题和一个简单的答案,我很抱歉,因为我刚刚进入 programming.Basically,我正在尝试创建一个脚本,一个块在与 FPSController 碰撞时命名为 blue(下图),将被破坏,这是我的脚本:
using UnityEngine;
using System.Collections;
public class Cube : MonoBehaviour {
void OnCollisionEnter (Collision col) {
if(col.gameObject.name == "Blue") {
Destroy(col.gameObject);
print ("collison detected");
}
}
}
但是,出于某种原因,每当 fps 控制器与称为 "Blue" 的对象发生碰撞时,没有任何反应,不会触发 print() 函数,也不会触发 destroy() 函数
谢谢你的进步;)
您的立方体中缺少刚体。
1。将 Rigidbody
组件附加到两个多维数据集。
2。此外,将两个立方体 Rigidbody
设置为 Is-kinematic。您必须将两个立方体 Rigidbody
设置为 Is-kinematic 以便角色控制器无法移动它。请注意,如果您的立方体在添加 Rigidbody
后掉落,只需在 Rigidbody
.
上禁用 Use Graivty
重要:
3.删除FPSController
。由于您将与其他 Rigidbody
个游戏对象进行交互,因此请使用 RigidBodyFPSController
。它可以在 Assets\Standard Assets\Characters\FirstPersonCharacter\Prefabs
中找到。将 RigidBodyFPSController
拖到场景中,然后将 Cube 脚本附加到它。
您会注意到 RigidBodyFPSController
附加了一个 Rigidbody
。 不要修改它的设置。
就是这样。一切都应该按预期工作。
Cube
设置:
RigidBodyFPSController
设置:
高级我想说如果这是一个简单的问题和一个简单的答案,我很抱歉,因为我刚刚进入 programming.Basically,我正在尝试创建一个脚本,一个块在与 FPSController 碰撞时命名为 blue(下图),将被破坏,这是我的脚本:
using UnityEngine;
using System.Collections;
public class Cube : MonoBehaviour {
void OnCollisionEnter (Collision col) {
if(col.gameObject.name == "Blue") {
Destroy(col.gameObject);
print ("collison detected");
}
}
}
但是,出于某种原因,每当 fps 控制器与称为 "Blue" 的对象发生碰撞时,没有任何反应,不会触发 print() 函数,也不会触发 destroy() 函数
谢谢你的进步;)
您的立方体中缺少刚体。
1。将 Rigidbody
组件附加到两个多维数据集。
2。此外,将两个立方体 Rigidbody
设置为 Is-kinematic。您必须将两个立方体 Rigidbody
设置为 Is-kinematic 以便角色控制器无法移动它。请注意,如果您的立方体在添加 Rigidbody
后掉落,只需在 Rigidbody
.
Use Graivty
重要:
3.删除FPSController
。由于您将与其他 Rigidbody
个游戏对象进行交互,因此请使用 RigidBodyFPSController
。它可以在 Assets\Standard Assets\Characters\FirstPersonCharacter\Prefabs
中找到。将 RigidBodyFPSController
拖到场景中,然后将 Cube 脚本附加到它。
您会注意到 RigidBodyFPSController
附加了一个 Rigidbody
。 不要修改它的设置。
就是这样。一切都应该按预期工作。
Cube
设置:
RigidBodyFPSController
设置: