I'd like to define an array of floats in my shader, something like this:
Properties
{
_TilesX ("Tiles X", Int) = 10
_TilesY ("Tiles Y", Int) = 10
_TileData1 ("Tile data", Float[]) = {} // THIS!!!
_Texture1 ("Texture odd", 2D) = "white" {}
_Texture2 ("Texture even", 2D) = "white" {}
}
I'm trying to create a single plane that I'll use as a grid and I want to modify the _TileData1 at run-time to change the Y offset of a tile. I'm using _TilesX and _TilesY to get a 2d position of the tile from a 1d array.
Just to be clear, I just want to find out how to define a property type of float[]
since I couldn't find how to do so on Unity's manual pages or forums.
You can't use properties for
float[]
. But you can use them as variables in your shader and set them from script:In your shader:
Then in your script:
Apparently not.
I didn't think so, as I'd never seen it, but I thought I'd take a search around and I ran across this thread where the person answering the question says this (emphasis mine):
So you would be able to use it in the calculation, but you would only be able to modify the value via MonoBehaviour script (and would need to).