Search Issue Tracker

Won't Fix

Votes

0

Found in

5.3.4p5

Issue ID

803610

Regression

No

[Shaders] SetFloat can not be set for arrays in shaders

Shaders

-

Steps to reproduce:
1. open users attached project
2. play scene

Expected: sphere blue
Actual: sphere black

Reproduced: 5.4.0b21
Not reproducible: 5.3.5p1

Comments (2)

  1. Duno

    Aug 24, 2017 15:10

    Can we have SetFloatArray in the future for compute shaders also ?

  2. Aras

    Sep 29, 2016 10:01

    The workaround in Unity 5.3 and earlier is to use float4 arrays. The HLSL shader compiler internally turns arrays of floats into arrays of float4's anyway.

    Since Unity 5.4, arrays in shaders are accessed differently - there are actual material.SetFloatArray etc. functions. This works as expected:

    material.SetFloatArray("_myarray", new float[]{0.8f,0.5f,0.3f});

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.