我有一个函数:
public void OnCollisionEnter2D(Collider2D collision)
{
if (collision.gameObject.name == "ColliderLeft")
{
Debug.Log("Left");
//transform.position(-9.5f, transform.position.y);
}
}
我的碰撞器,启动和更新功能,仍然不工作。
public Collider2D collider;
void Start()
{
collider = GetComponent<Collider2D>();
}
void Update()
{
OnCollisionEnter2D(collider);
}
我的脚本错误是脚本错误:OnCollisionEnter2D此消息参数的类型必须为:Collision2D消息将被忽略。
1条答案
按热度按时间agxfikkp1#
这里需要注意几点:对撞机和碰撞不是一回事。Collider 2D代表一个你已经附加到游戏对象上的2D碰撞器(例如一个hitbox)。
Collision 2D是当Collider 2D与另一个Collider 2D接触时发生的事件。
注意区别:对撞机!=碰撞**
当发生碰撞时,Unity会向碰撞中涉及的两个gameObject发送消息OnCollisionEnter 2D。不要尝试在更新中调用它,因为您没有要提供的冲突。Collision不是Collider
变更