版本: Unity 6 (6000.0)
语言英语
  • C#

ParticleSystemRenderer.SetMeshWeightings

建议修改

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户提出的每一个修改建议,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提升 Unity 文档的质量。

关闭

取消

声明

public void SetMeshWeightings(float[] weightings, int size);

声明

public void SetMeshWeightings(float[] weightings);

参数

weightings 要使用的权重数组。
size 要应用的权重数组元素数量。

描述

设置 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()); } }