为什么我的更改Gizmo颜色的方法阻止绘制Gizmo?

时间:2018-08-07 03:38:30

标签: unity3d colors editor

正如我在以下代码块的注释中指出的那样,checkGizmoColor()阻止了Gizmo出现在编辑器窗口中。我仔细检查了一下,checkGizmoColor()确实成功更改了Gizmo颜色。但是,如果我使用Gizmos.color = Color.red更改Gizmo颜色;在OnDrawGizmos()内部,可以毫无问题地绘制小控件。

我看不出这些选择Gizmo颜色的方法应该如何产生如此不同的结果。

static std::vector<std::vector<float>> do_fft(std::vector<std::vector<float>> song, std::vector<std::vector<float>> loop)
{
    loop[0].resize(kiss_fftr_next_fast_size_real(loop[0].size())); // TODO: resize this to song size instead of loop size when done testing
    loop[1].resize(loop[0].size()); // TODO: make this dynamic

    std::vector<std::vector<kiss_fft_cpx>> fft_loop;
    std::vector<std::vector<float>> output;

    for (int chan = 0; chan < loop.size(); chan++)
    {
        fft_loop.push_back(std::vector<kiss_fft_cpx>());
        fft_loop[chan].resize(loop[chan].size());

        output.push_back(std::vector<float>());
        output[chan].resize(loop[chan].size()); // TODO: resize this to song size instead of loop size when done testing
    }

    kiss_fftr_cfg cfg_loop = kiss_fftr_alloc(loop[0].size(), 0, NULL, NULL);
    kiss_fftr(cfg_loop, &loop[0][0], &fft_loop[0][0]);
    kiss_fft_free(cfg_loop);

    kiss_fftr_cfg cfgi_loop = kiss_fftr_alloc(fft_loop[0].size(), 1, NULL, NULL);
    kiss_fftri(cfgi_loop, &fft_loop[0][0], &output[0][0]);
    kiss_fft_free(cfgi_loop);

    return output;
}

1 个答案:

答案 0 :(得分:0)

好吧,因为Color.red的alpha值= 1,而您的颜色inactiveColorcollisionOpenColorcollidingColor的alpha值均为0。

我假设您将它们设置为属性,默认情况下这些颜色可以由编辑器通过检查器进行编辑,这些颜色的alpha值= 0(如下图所示),这就是为什么小控件不可见的原因

enter image description here

只需在检查器中或在代码中将这些颜色的a属性= 1(例如:inactiveColor.a = 1)设置为Alpha值(A)到255,即可看到小物件