Unity вызывает метод из другого класса - PullRequest
0 голосов
/ 03 июня 2019

Я получаю исключение нулевого указателя при попытке изменить цвет текстуры из другого скрипта.

NullReferenceException: Object reference not set to an instance of an object

Работает, если в том же файле.

SwapColor(myTex, Color.black, Color.green,1f);

Дает исключение нулевого указателя

//PartsColorCustomizer.Instance.SwapColor(myTex, Color.black, Color.green, 1f);

Это метод, который я пытаюсь вызвать в другом классе с именем PartsColorCustomizer

public void SwapColor(Texture2D tex, Color original, Color swap, float threshold)
{
    for (int x = 0; x < tex.width; x++)
    {
        for (int y = 0; y < tex.height; y++)
        {
            Color col = tex.GetPixel(x, y);
            bool r = Mathf.Abs(original.r - col.r) <= threshold;
            bool g = Mathf.Abs(original.g - col.g) <= threshold;
            bool b = Mathf.Abs(original.b - col.b) <= threshold;
            bool a = Mathf.Abs(original.a - col.a) <= threshold;
            if (r && g && b && a)
            {

                //tex.SetPixel(x, y, swap);
            }
            if (col == Color.white) {
                tex.SetPixel(x, y, swap);
            }
            if (col == Color.magenta)
            {
                tex.SetPixel(x, y, swap);
            }
        }
    }
    tex.Apply();
}

, который я настроил, например,

 void Awake()
{
    if (_Instance != null)
    {
        _Instance = this;
        //LoadJson();
    }
}
...