我是Unity的新手,我正在尝试执行以下操作:
我有一个机器人角色,可以在田野(具有草纹理的平面)上运行 发生了什么事,就是机器人向前奔跑并永远前进
我尝试使用“碰撞器”和“盒子”网格,但不确定将colliderEnter,Stay和Exit的C#代码放在何处。
网格和脚本是在飞机上还是在机器人上?
有人可以快速解决吗?
谢谢
答案 0 :(得分:2)
也只是入门,但是前几天我是按照教程学习的。
添加一个多维数据集,改变其比例,使其包含您的字段,并可能包含其中的一些内容。为此,请关闭mesh renderer
,使其不再可见。创建脚本-HitBoundary.cs-并将其作为组件添加到调整大小的未渲染多维数据集中。
在该文件中,添加OnTriggerExit
的处理程序
void OnTriggerExit(Collider other) {
// Destroy everything that leaves the trigger
Destroy(other.gameObject);
}
尽管您可能不想破坏它。
我为什么打OnTriggerExit
?随着领域/地图/水平/等。包含在立方体内,从退出的那一刻起,发生的任何事情都在碰撞。因此,我们跟踪它何时退出碰撞状态,并对其进行操作,以删除/替换/移动/销毁/离开目标的任何物体。
答案 1 :(得分:1)
听起来您需要做的是:
它看起来像:
void OnCollisionEnter(Collision collision)
{
Collider robot = collision.collider;
Debug.Log("Just hit the wall!")
}
如果您只想让机器人在碰到墙壁时停下来,您甚至不需要onCollisionEnter()
方法-物理引擎将为您完成所有工作!