【发布时间】:2021-08-30 11:34:32
【问题描述】:
GetRawTextureData() 返回纹理中所有像素的线性(一维)数组。
AudioClips 在一个一维数组中包含交错的(左和右)数据,这样索引代表 x(或时间),每个值是该 x/时间的左右信号的音量。偶数 = 左,奇数 = 右。
有没有一种简单的方法可以将它映射到从 GetRawTextureData() 返回的 NativeArray 中
我已经尝试过,只专注于显示左侧信号,但会产生奇怪的垂直结果:
void FillTextureOne (Texture2D wav_tex, float[] firstWave ) {
var texdata = wav_tex.GetRawTextureData<Color32>( );
for ( int i = 0; i < firstWave.Length ; i+=2 )
{
var positionnew = i/2 * 256 + ( firstWave[i] + 1 ) * 128 ;
texdata[( int )positionnew ] = black;
}
wav_tex.Apply( );
}
纹理大小为 256 x 256。 AudioClip 数据数组的长度为 512,其中存储的值范围从 -1 到 1,加一后乘以 128,尝试将它们垂直范围在 0 到 256 之间的尝试失败。
【问题讨论】:
-
我不知道这是怎么工作的,但是 x + (y * width) 得到了位置。
标签: c# unity3d textures render-to-texture