在支持 GPU 实例化的平台上启用 GPU 实例化。
为了使用 GPU 实例化渲染粒子系统,该粒子必须使用包含程序实例化通道的着色器(即,它包含 #pragma instancing_options procedural
指令)。
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { private ParticleSystem ps; private ParticleSystemRenderer psr; private bool enableGPUInstancing = true;
void Start() { ps = GetComponent<ParticleSystem>(); psr = GetComponent<ParticleSystemRenderer>();
psr.renderMode = ParticleSystemRenderMode.Mesh; psr.SetMeshes(new Mesh[] { Resources.GetBuiltinResource<Mesh>("Capsule.fbx"), Resources.GetBuiltinResource<Mesh>("Cube.fbx"), Resources.GetBuiltinResource<Mesh>("Sphere.fbx") });
psr.sharedMaterial = new Material(Shader.Find("Particles/Standard Surface")); }
void Update() { psr.enableGPUInstancing = enableGPUInstancing; }
void OnGUI() { enableGPUInstancing = GUI.Toggle(new Rect(25, 45, 200, 30), enableGPUInstancing, "Enabled"); } }