【问题标题】:How to destroy the instantiated bullet holes and bullet sparks prefabs in javascript如何在javascript中销毁实例化的弹孔和子弹火花预制件
【发布时间】:2018-11-15 03:44:33
【问题描述】:

我想在几秒钟后在光线投射命中点摧毁实例化的弹孔和子弹火花预制件,这是我用来实例化它们的代码

if(Physics.Raycast(transform.position,transform.TransformDirection(Vector3.forward)*100,hitShot))     {

        var rotation = Quaternion.FromToRotation( Vector3.up, hitShot.normal );
    var  instantiatedExplosion : GameObject = Instantiate(
           hitParticles, hitShot.point, rotation );



         var rotation1 = Quaternion.FromToRotation(Vector3.forward,hitShot.normal);
         var instantiatedHole: GameObject =Instantiate (bulletHoles,hitShot.point,rotation1);

        }

【问题讨论】:

  • 此时您尝试了哪些方法?您是否考虑过向它们添加一个脚本,该脚本在项目实例化后倒计时,然后在计时器达到 0 时销毁或禁用它们?
  • @Serlite 整个工作都在 gunfire 脚本中实现,预制件在检查器中被引用,然后在按下 Fire1 时实例化为克隆

标签: unity3d


【解决方案1】:

从未将 Unity 与 JavaScript 一起使用。但是,我认为 API 为您提供了与 C# 相同的销毁方法,所以试试这个:

Destroy(bulletHole, time);//public static void Destroy(Object obj, float t = 0.0F);

https://docs.unity3d.com/ScriptReference/Object.Destroy.html

我想你是 Unity 的新手,通常你尽量不破坏游戏对象,如子弹、弹孔、子弹闪光等(或任何你可以重复使用的游戏对象),因为你可以重复使用它们来节省大量性能。见Object Pooling

【讨论】:

    猜你喜欢
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多