【问题标题】:Particle collision detection on cloned objects not working克隆对象的粒子碰撞检测不起作用
【发布时间】:2023-01-27 08:44:41
【问题描述】:

我想在屏幕上生成几个圆圈作为随机漂浮的游戏对象。为此,我有一个预制件,我在附加到主要游戏对象的脚本中实例化了 x 次。然后我在预制件上附加了第二个脚本来控制随机移动。我在预制件中添加了一个粒子系统,以便每个生成的克隆都有从其边缘发射的粒子。我想知道一个物体的粒子是否与任何东西发生碰撞,无论是另一个克隆物体,一堵墙等。但是我的 OnParticleCollision(在附加到预制件的运动脚本中)没有向控制台记录任何内容,它似乎没有检测到粒子完全没有碰撞。也许我不理解更大的概念,用粒子系统实例化同一个预制件的多个实例不是最好的方法?还是我犯了一个更明显的小错误?

我根据其他问题尝试过的事情:

  • 已检查发送冲突消息
  • 我没有任何标记为触发器的碰撞器
  • 我验证了场景视图中的视觉边界看起来正确
  • 克隆游戏对象之间的碰撞本身工作正常,只是粒子碰撞不工作。

我的脚本附在预制件上:

public class BubbleMove : MonoBehaviour
{
    public Rigidbody2D rb;
    
    void Start()
    {
        rb.velocity = new Vector2(min, max);
        ParticleSystem ps = GetComponent<ParticleSystem>();
        ps.transform.position = new Vector3(transform.position.x, transform.position.y, 0);
        ps.Play();
    }

    // Update is called once per frame
    void Update()
    {
     
    }

    void OnParticleCollision(GameObject col){
        Debug.Log("Collision Particle: " + col);
    }
    
}

我对 Rigidbody2D、Circle Collider 和 Particle System 的预制检查器设置的图像:

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    您好,我看到在 BubbleMove 脚本的检查器中没有定义刚体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      相关资源
      最近更新 更多