先に結論
materialがinstanceされてて
数値指定は非instanceのマテリアルに当たってた。
症状
・unityからuniformでshaderにsetfloatで数値を渡していた
・挙動が切り替わる変数と切り替わらない変数があった
・getfloatで数値が切り替わってることは確認していた
原因(ポカ)
・数値を切り替えるスクリプトが複数あり、
起動後にマテリアルを取得するものと、手動でアタッチしているものがあった。
前者はうまく動き、後者がうまく行っていなかった
・glslだったため、実機でテストしていてinstance化に気付いていなかった
対応
・スタートでマテリアルを取得するようにした