今天写关于拾取物品的时候突然发现一个很巧妙的事情,在父类中写关于OnTriggerEnter2D物品被拾取后销毁的事件,子类继承该父类后即使OnTriggerEnter2D是private的,仍然能进行碰撞检测。(子类脚本挂载在物体上,父类不挂载脚本)
下面贴一下代码,这是父类:
public class Test_Base : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Player"))
{
Destroy(gameObject);
}
}
}
子类中什么都不做:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : Test_Base // 只做继承该父类
{
}
结果是碰撞检测仍然能够正确触发,刚开始我还以为哪里写错调用了,后来打断点看是OnTriggerEnter2D自行调用。觉得很有趣,记录一下