无法将类型“ UnityEngine.Transform”转换为“ UnityEngine.GameObject”

时间:2019-10-28 18:20:12

标签: c# unity3d

我正在关注2D平台游戏者的教程,遇到了这个错误,但我还没有找到解决方案。我是代码和GameDev的新手。

我尝试将变量声明下的类型从Transform更改为GameObject,以清除编译错误,但随后在Unity“ InvalidCastException”中引发新错误。

对不起,如果这是一个简单的修复程序,这对我来说是全新的。

public void _KillEnemy(Enemy _enemy)
    {

        GameObject _clone = Instantiate(_enemy.deathParticles, _enemy.transform.position, Quaternion.identity) as GameObject;
        Destroy(_clone, 5f);
        cameraShake.Shake(_enemy.shakeAmt, _enemy.shakeLength);
        Destroy(_enemy.gameObject);
    }

1 个答案:

答案 0 :(得分:1)

您不能将Transform投射到GameObject。您需要调用gameObject的属性Transform。查看更多:https://docs.unity3d.com/ScriptReference/Component-gameObject.html

    public void _KillEnemy(Enemy _enemy)
    {

        GameObject _clone = Instantiate(_enemy.deathParticles, _enemy.transform.position, Quaternion.identity).gameObject;
        Destroy(_clone, 5f);
        cameraShake.Shake(_enemy.shakeAmt, _enemy.shakeLength);
        Destroy(_enemy.gameObject);
    }