【问题标题】:How would i let the c# script know of a collision?我如何让 c# 脚本知道碰撞?
【发布时间】:2016-10-28 08:35:06
【问题描述】:

我有这个我正在制作的游戏的脚本,我正在尝试让子弹击中的对象消失。这是我的脚本:

void onCollisionEnter()
{
    if (collision.gameObject.tag == "Enemy")
    {
        Destroy(collision.gameobject);
        Destroy(gameObject);
    }
}

错误提示


严重性代码描述项目文件行抑制状态 错误 CS0103 The name 'collision' does not exist in the current context First person game.CSharp C:\Users\desha\Documents\First person game\Assets\Prefabs\Bullet_kill.cs 20 Active


它说了两次这个错误,所以如果在这种情况下不存在碰撞,我如何让子弹碰撞的东西消失?

请帮忙。

【问题讨论】:

  • 您尝试过 OnTriggerEnter 吗?
  • 它说这也不对。
  • 好的,我知道它没有错误,但它仍然不起作用..我不知道问题。

标签: c# unity3d scripting


【解决方案1】:

在我看来,您缺少函数输入。 改变这一行

void onCollisionEnter()

这里是这个:

void OnCollisionEnter(Collision collision)

我希望我能有所帮助。 :)

错误出现两次,因为您在 if 语句上调用了“collision”,然后又在 Destroy(collision.gameobject) 上调用了“collision”,顺便说一下应该是 Destroy(collision.游戏对象)

【讨论】:

  • 感谢这有很大帮助!现在我只是遇到了麻烦,因为没有错误,但是盒子仍然没有消失
  • 我很乐意提供帮助,但我需要更多信息,也许可以发布您的 GameObject 的检查器面板的 SS(两者)?那么也许我可以帮助你。碰撞器可能很棘手,有时最好使用触发器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多