无法将类型UnityEngine.Collider2D隐式转换为SmallEnemy

问题描述 投票:-1回答:1

无法绕过这个简单的语法错误。我是团结与编码的新手。

private void OnCollisionEnter2D(Collider2D hitInfo)
{
    SmallEnemy smallEnemy = hitInfo.GetComponent<Collider2D>();    
    if(smallEnemy != null)
    {
        smallEnemy.DamageEnemy(damage);
    }
c# visual-studio unity3d syntax unityscript
1个回答
0
投票

小杂物。

  1. OnCollisionEnter2D使用Collision2D而不是collider2d。 Collision2D允许您访问结构本身中的传入gameObject。
  2. GetComponent函数返回类型X的组件,因此,如果您要获取SmallEnemy组件,则希望将其用作类型(GetComponent())
private void OnCollisionEnter2D(Collision2D collision)
    {
        SmallEnemy smallEnemy = collision.gameObject.GetComponent<SmallEnemy>();
        if (smallEnemy != null)
        {
            smallEnemy.DamageEnemy(damage);
        }
    }

© www.soinside.com 2019 - 2024. All rights reserved.