Version: 2022.3
public void SetInfluence (int index, ParticleSystemForceField field);

参数

index 要分配力场的索引。
field 要分配的力场。

描述

分配影响因子列表中给定索引位置的力场。

influenceFilter 设置为 ParticleSystemGameObjectFilter.List 时,只有影响因子列表中的力场才会影响粒子系统。

using UnityEngine;

public class Example : MonoBehaviour { public ParticleSystem system; public ParticleSystemForceField field1; public ParticleSystemForceField field2;

ParticleSystem.ExternalForcesModule m_ExternalForcesModule;

void Start() { if (system == null) { Debug.LogError("Please assign a Particle System to `system`."); enabled = false; return; }

if (field1 == null || field2 == null) { Debug.LogError("Please assign a ParticleSystemForceField to `field1` and `field2`."); enabled = false; return; }

m_ExternalForcesModule = system.externalForces; m_ExternalForcesModule.enabled = true; m_ExternalForcesModule.influenceFilter = ParticleSystemGameObjectFilter.List; m_ExternalForcesModule.AddInfluence(field1); }

void OnGUI() { Debug.Assert(m_ExternalForcesModule.influenceCount == 1); var currentForceField = m_ExternalForcesModule.GetInfluence(0);

GUILayout.BeginHorizontal(); GUILayout.Label("Influence: " + currentForceField.name);

if (GUILayout.Button("Toggle")) { m_ExternalForcesModule.SetInfluence(0, currentForceField == field1 ? field2 : field1); }

GUILayout.EndHorizontal(); } }