ParticleSystemRenderer.SetMeshWeightings
Declaration
public void SetMeshWeightings(float[] weightings, int size);public void SetMeshWeightings(float[] weightings);Параметры
| Параметр | Описание |
|---|---|
| весов | Массив используемых весов. |
| размер | Число элементов из массива весов, которые будут применены. |
Описание
Задает веса, которые ParticleSystemRenderer использует для назначения мешей частицам.
ParticleSystemRenderer использует эти веса только если вы установили ParticleSystemRenderer.renderMode до ParticleSystemRenderMode.Mesh и установили ParticleSystemRenderer.meshDistribution до ParticleSystemMeshDistribution.NonUniformRandom.
Веса относительны друг к другу, но могут иметь любое положительное значение. Например, если вы установите веса 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()); } }