希望有大佬指点一下,做2d动作游戏的攻击检测时,我的攻击检测框(is trigger)放在与程序脚本同一个GameObject下的时候可以正常生效,通过敌人tag检测到敌人的碰撞框。
但是攻击检测框在携带脚本的主物体的子对象时就完全不生效,无法检测到敌人,tag和layer那些都查过应该没有问题。
用于检测敌人的代码是这样的:
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Enemy"))
{
Debug.Log("gethit");
other.GetComponentInChildren<EnemysController>().GetHit(Vector2.right);
}
我测试过完全相同的代码下,把攻击框放进和脚本同一个GameObject中能生效,放进子物体就不生效,求教这是为什么?
我看的教程以及教程的工程文件都可以把攻击检测放在脚本物体下的子物体里(教程是用Animator控制子物体开关来控制攻击时机,我是使用spine动画需要在子物体通过脚本获取spine中的碰撞框开关)
教程的地址是这个:https://www.bilibili.com/video/BV1fX4y1G7tv?share_source=copy_web
但是攻击检测框在携带脚本的主物体的子对象时就完全不生效,无法检测到敌人,tag和layer那些都查过应该没有问题。
用于检测敌人的代码是这样的:
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Enemy"))
{
Debug.Log("gethit");
other.GetComponentInChildren<EnemysController>().GetHit(Vector2.right);
}
我测试过完全相同的代码下,把攻击框放进和脚本同一个GameObject中能生效,放进子物体就不生效,求教这是为什么?
我看的教程以及教程的工程文件都可以把攻击检测放在脚本物体下的子物体里(教程是用Animator控制子物体开关来控制攻击时机,我是使用spine动画需要在子物体通过脚本获取spine中的碰撞框开关)
教程的地址是这个:https://www.bilibili.com/video/BV1fX4y1G7tv?share_source=copy_web