UnityEngine.Material.SetBuffer C# (CSharp) Method

SetBuffer() public method

Set a named ComputeBuffer value.

public SetBuffer ( int nameID, ComputeBuffer value ) : void
nameID int Property name ID, use Shader.PropertyToID to get it.
value ComputeBuffer ComputeBuffer value to set.
return void
        public void SetBuffer(int nameID, ComputeBuffer value)
        {
            this.SetBufferImpl(nameID, value);
        }

Same methods

Material::SetBuffer ( string name, ComputeBuffer value ) : void

Usage Example

コード例 #1
0
        void Awake()
        {
            var mf = prefab.GetComponent<MeshFilter>();
            var mesh = mf.sharedMesh;

            _indexBuf = new ComputeBuffer(mesh.triangles.Length, Marshal.SizeOf(mesh.triangles[0]));
            _indexBuf.SetData(mesh.triangles);

            _vertexBuf = new ComputeBuffer(mesh.vertices.Length, Marshal.SizeOf(mesh.vertices[0]));
            _vertexBuf.SetData(mesh.vertices);

            _uvBuf = new ComputeBuffer(mesh.uv.Length, Marshal.SizeOf(mesh.uv[0]));
            _uvBuf.SetData(mesh.uv);

            var gofab = new GameObject("Position");
            gofab.hideFlags = HideFlags.HideAndDontSave;
            _trs = GenerateRandom(gofab, count);
            _worlds = new float[16 * _trs.Length];
            _worldBuf = new ComputeBuffer(_trs.Length, 16 * Marshal.SizeOf(_worlds[0]));
            UpdateWorlds();

            _mat = new Material(prefab.renderer.sharedMaterial);
            _mat.SetBuffer(CS_INDEX_BUFFER, _indexBuf);
            _mat.SetBuffer(CS_VERTEX_BUFFER, _vertexBuf);
            _mat.SetBuffer(CS_UV_BUFFER, _uvBuf);
            _mat.SetBuffer(CS_WORLD_BUFFER, _worldBuf);
        }
All Usage Examples Of UnityEngine.Material::SetBuffer