Version: 2017.1
public Mesh mesh ;

Description

Mesh, который используется в качестве частицы вместо текстуры на билборде.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {

private ParticleSystem ps; private ParticleSystemRenderer psr; public ParticleSystemRenderMode renderMode = ParticleSystemRenderMode.Billboard; public float cameraScale = 0.0f; public float lengthScale = 0.0f; public float velocityScale = 1.0f;

void Start() {

ps = GetComponent<ParticleSystem>(); psr = GetComponent<ParticleSystemRenderer>();

psr.mesh = Resources.GetBuiltinResource<Mesh>("Capsule.fbx");

var main = ps.main; main.startSpeed = new ParticleSystem.MinMaxCurve(0.5f, 1.5f); main.startSize = new ParticleSystem.MinMaxCurve(0.1f, 0.8f); }

void Update() { psr.renderMode = renderMode; psr.cameraVelocityScale = cameraScale; psr.lengthScale = lengthScale; psr.velocityScale = velocityScale;

if (renderMode == ParticleSystemRenderMode.Stretch) Camera.main.transform.position = new Vector3(Mathf.Sin(Time.time) * 4.0f, 0.0f, -10.0f); // move the camera so we can see the effect on stretch camera velocity }

void OnGUI() { renderMode = (ParticleSystemRenderMode)GUI.SelectionGrid(new Rect(25, 25, 900, 30), (int)renderMode, new GUIContent[] { new GUIContent("Billboard"), new GUIContent("Stretch"), new GUIContent("HorizontalBillboard"), new GUIContent("VerticalBillboard"), new GUIContent("Mesh"), new GUIContent("None") }, 6);

if (renderMode == ParticleSystemRenderMode.Stretch) {

GUI.Label(new Rect(25, 80, 100, 30), "Camera Scale"); GUI.Label(new Rect(25, 120, 100, 30), "Length Scale"); GUI.Label(new Rect(25, 160, 100, 30), "Velocity Scale");

cameraScale = GUI.HorizontalSlider(new Rect(125, 85, 100, 30), cameraScale, 0.0f, 10.0f); lengthScale = GUI.HorizontalSlider(new Rect(125, 125, 100, 30), lengthScale, 0.0f, 10.0f); velocityScale = GUI.HorizontalSlider(new Rect(125, 165, 100, 30), velocityScale, 0.0f, 10.0f); } } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961