weightings | 要使用的权重数组。 |
size | 要应用的权重数组元素数量。 |
设置 ParticleSystemRenderer 用于将网格分配给粒子的权重。
只有在您将 ParticleSystemRenderer.renderMode 设置为 ParticleSystemRenderMode.Mesh 并且将 ParticleSystemRenderer.meshDistribution 设置为 ParticleSystemMeshDistribution.NonUniformRandom 时,ParticleSystemRenderer 才会使用这些权重。
权重是相对于彼此的,但可以是任何正值。例如,如果您将权重设置为 6 和 3,则 ParticleSystemRenderer 会随机选择第一个网格的频率大约是第二个网格的两倍。使用百分比作为权重并且确保权重总和为 100 可能最直观,但这并非必需。
using UnityEngine; using System.Collections;
[RequireComponent(typeof(ParticleSystem))] public class ExampleClass : MonoBehaviour { private ParticleSystem ps; private ParticleSystemRenderer psr;
void Start() {
ps = GetComponent<ParticleSystem>(); psr = GetComponent<ParticleSystemRenderer>();
psr.renderMode = ParticleSystemRenderMode.Mesh; psr.meshDistribution = ParticleSystemMeshDistribution.NonUniformRandom; psr.SetMeshes(new Mesh[]{ Resources.GetBuiltinResource<Mesh>("Capsule.fbx"), Resources.GetBuiltinResource<Mesh>("Cube.fbx"), Resources.GetBuiltinResource<Mesh>("Sphere.fbx") }); psr.SetMeshWeightings(new float[]{ 0.1f, 0.1f, 0.8f }); }
void OnGUI() { GUI.Label(new Rect(25, 40, 200, 30), "Mesh Count: " + psr.meshCount.ToString()); } }