C# 当某个东西进入它的触发器时,你能使Unity中某个预置的实例化克隆被破坏吗?
基本上,我有一颗子弹,当你左键点击时,它会被枪射中。我不能特别摧毁击中某物的子弹,它摧毁了所有的子弹C 我想一个很好的解决办法是,当有东西进入它的触发器时,它会自我毁灭吗? 我不知道该怎么做,所以如果有人能帮忙,那就太棒了! 如果你想看我的代码,你可以直接问 这是关于子弹击中的东西:C# 当某个东西进入它的触发器时,你能使Unity中某个预置的实例化克隆被破坏吗?,c#,unity3d,C#,Unity3d,基本上,我有一颗子弹,当你左键点击时,它会被枪射中。我不能特别摧毁击中某物的子弹,它摧毁了所有的子弹C 我想一个很好的解决办法是,当有东西进入它的触发器时,它会自我毁灭吗? 我不知道该怎么做,所以如果有人能帮忙,那就太棒了! 如果你想看我的代码,你可以直接问 这是关于子弹击中的东西: void OnTriggerEnter() { enemyHealth -= 2f; ishit = true; } void OnTriggerExit() { ishit = fals
void OnTriggerEnter()
{
enemyHealth -= 2f;
ishit = true;
}
void OnTriggerExit()
{
ishit = false;
}
它将静态变量设置为true和false。
子弹上写着:
void Update()
{
transform.Translate(Vector2.right * mspeed * Time.deltaTime);
bool hit = Enemy.ishit;
if (hit == true)
{
Object.Destroy(gameObject);
}
}
它利用静态布尔来摧毁自己
谢谢 你最好的选择是调用你的bullet实例。
这不会摧毁任何其他子弹
如果要销毁与当前脚本关联的对象,也可以在this.gameObject
上调用object.destroy
你可以打这个电话
编辑:你的问题不在于Object.Destroy
销毁所有子弹,而是当一颗子弹击中时,每颗子弹都会自行销毁。
您可能要尝试:
void OnTriggerEnter(Collider bullet)
{
enemyHealth -= 2f;
Object.Destroy(bullet.gameObject);
}
您可以在“可损坏”对象上创建一个脚本,跟踪碰撞并销毁与其碰撞的子弹,或者让子弹预置上的脚本在碰撞时自行销毁子弹
在你的游戏中,另一种方法是根本不实例化子弹,如果你发射的子弹移动速度与子弹实际移动速度一样快,玩家无论如何也不会看到它们,你可以使用光线投射来查看玩家射击时你是否击中了什么东西,发出声音,枪口闪光,将一辆空车扔在地上,如果玩家击中任何东西,实例化一些粒子或子弹会对另一端产生的任何影响,并对其进行处理…通常,在stackoverflow上,由您提供。我更新了我的答案,以反映您发布的代码。如果这能解决你的问题,那是C#还是UnityScript?这是关于,不是。我还是不能让它工作。一旦子弹击中了你无法射击的东西。而且,它仍然会摧毁从那颗子弹复制过来的每一颗子弹。你有机会看一下指南吗?如果你不提供其中一个,我们可能无法比上面的指针做得更好。这是敌人的代码(子弹击中的东西),我不能发布它,现在有问题了!如何做到这一点?看起来你是unity的第一个项目之一,你有一些阅读材料要做,我也从网上搜索视频中学到了很多,接下来的两个链接是关于光线投射的,但是你应该学习如何将脚本附加到预制件上并实例化/销毁它们: