Version: 2022.3

描述

要执行的粒子碰撞的类型。

以下是平面碰撞的示例:

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(ParticleSystem))] public class ExampleClass : MonoBehaviour { private ParticleSystem ps;

void Start() { ps = GetComponent<ParticleSystem>();

var collision = ps.collision; collision.enabled = true; collision.type = ParticleSystemCollisionType.Planes; collision.mode = ParticleSystemCollisionMode.Collision3D;

var collider = GameObject.CreatePrimitive(PrimitiveType.Plane); collider.transform.parent = ps.transform; collider.transform.localPosition = new Vector3(0.0f, 0.0f, 5.0f); collider.transform.localScale = new Vector3(20.0f, 20.0f, 20.0f); collider.transform.localRotation = Quaternion.Euler(new Vector3(-90.0f, 0.0f, 0.0f));

collision.SetPlane(0, collider.transform); } }

以下是世界碰撞的示例:

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(ParticleSystem))] public class ExampleClass : MonoBehaviour { private ParticleSystem ps;

void Start() { ps = GetComponent<ParticleSystem>();

var collision = ps.collision; collision.enabled = true; collision.type = ParticleSystemCollisionType.World; collision.mode = ParticleSystemCollisionMode.Collision3D;

var collider = GameObject.CreatePrimitive(PrimitiveType.Sphere); collider.transform.parent = ps.transform; collider.transform.localPosition = new Vector3(0.0f, 0.0f, 13.0f); collider.transform.localScale = new Vector3(20.0f, 20.0f, 20.0f); } }