Описание
Управление тем, как система частиц применяет компонент Transform к испускаемым ею частицам.
Иерархия: Масштабирование в соответствии с преобразованием и всеми его родительскими элементами. Локальный: Масштабирование с использованием только собственного преобразования, игнорируя все родительские элементы. Форма: применяйте масштабирование только к исходным позициям частиц, но не к их размеру. Исходные позиции определяются модулем Shape.
using UnityEngine;
using System.Collections;
// добавьте это в ParticleSystem, у которой есть родительский игровой объект, чтобы увидеть, как каждое масштабирование режим работает
public class ExampleClass : MonoBehaviour
{
private ParticleSystem ps;
public float sliderValue = 1.0F;
public float parentSliderValue = 1.0F;
public ParticleSystemScalingMode scaleMode;
void Start()
{
ps = GetComponent<ParticleSystem>();
}
void Update()
{
ps.transform.localScale = new Vector3(sliderValue, sliderValue, sliderValue);
if (ps.transform.parent != null)
ps.transform.parent.localScale = new Vector3(parentSliderValue, parentSliderValue, parentSliderValue);
var main = ps.main;
main.scalingMode = scaleMode;
}
void OnGUI()
{
scaleMode = (ParticleSystemScalingMode)GUI.SelectionGrid(new Rect(25, 25, 300, 30), (int)scaleMode, new GUIContent[] { new GUIContent("Hierarchy"), new GUIContent("Local"), new GUIContent("Shape") }, 3);
GUI.Label(new Rect(25, 80, 100, 30), "Scale");
sliderValue = GUI.HorizontalSlider(new Rect(125, 85, 100, 30), sliderValue, 0.0F, 5.0F);
GUI.Label(new Rect(25, 120, 100, 30), "Parent Scale");
parentSliderValue = GUI.HorizontalSlider(new Rect(125, 125, 100, 30), parentSliderValue, 0.0F, 5.0F);
}
}