Создание кастомной кнопки, требуется помощь в скрипте
Добавлено: 18 авг 2018, 13:56
Дефолтная кнопка меня не устраивает, потому необходимо создать свою. В качестве исхода использую как Image на канвасе, так и простой спрайт (с компонентом Image). Первый мне очень бы подошёл, но тот вообще никак не реагирует на скрипт, который будет ниже (скрипт вешаю на потенциальную кнопку), даже если сделать коллайдер на объекте. Спрайт же реагирует, но при каких-либо действиях мыши вместо смены спрайта кидается в меня Null Reference Exception-ами. Я не думал, что буду ТАК долго сидеть на этом месте, но прошло часа 4, а прогресса всё нет, вынужден писать сюда. В чём проблема исключений, я искренне не понимаю: все 3 спрайта в инспекторе указываю, как бы должно работать, если смотреть на то, что я видел в интернете. В общем, вот сам скрипт. Буду благодарен за подсказку, как заставить это работать на спрайте и/или на image (и последнее было бы даже лучше)
Синтаксис:
Используется csharp
public class BtnManager : MonoBehaviour {
public Sprite n, o, c;
[HideInInspector]
Image curImage;
void Awake()
{
curImage = GetComponent<Image>();
Debug.Log(curImage.sprite); //просто так. выводит тот спрайт, который стоит
}
void OnClick()
{
curImage.sprite = c; //здесь выскакивают ошибки null reference exception
Debug.Log(curImage.sprite); //и здесь
}
void OnMouseEnter()
{
curImage.sprite = o; //а ещё тут
Debug.Log(curImage.sprite); //и опять ошибка
}
void OnMouseExit()
{
curImage.sprite = n;//ну и здесь, конечно же
}
}
public Sprite n, o, c;
[HideInInspector]
Image curImage;
void Awake()
{
curImage = GetComponent<Image>();
Debug.Log(curImage.sprite); //просто так. выводит тот спрайт, который стоит
}
void OnClick()
{
curImage.sprite = c; //здесь выскакивают ошибки null reference exception
Debug.Log(curImage.sprite); //и здесь
}
void OnMouseEnter()
{
curImage.sprite = o; //а ещё тут
Debug.Log(curImage.sprite); //и опять ошибка
}
void OnMouseExit()
{
curImage.sprite = n;//ну и здесь, конечно же
}
}