【发布时间】: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