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

ParticleSystemRenderer.enableGPUInstancing

建议更改

成功!

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

关闭

提交失败

由于某些原因,您的建议更改无法提交。请在稍等片刻后重试。感谢您拨冗帮助我们提高 Unity 文档的质量。

关闭

取消

public bool enableGPUInstancing;

说明

在支持它的平台上启用 GPU 实例化。

要利用 GPU 实例化来渲染粒子系统,该粒子必须使用含有程序化实例化 Pass(也就是说,它包含 #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"); } }