Не уверен что данной темы или подобной не встречалось ранее, если есть прошу кинуть ссылку.
И так задача. Мне необходимо сменить вид кнопки по ее нажатию. До пустим у меня есть кнопка звук со своим собственным стилем (три состояния: нормал, ховер, актив), и есть другой стиль зачеркнутый звук (так же три состояния)
Эта кнопка находится в созданном окне.
Как отобразить окно и кнопку в ней я разобрался но как сменить стиль так и не понял. Ниже привожу код того что есть на данный момент
Синтаксис:
Используется csharp
public class GameMenuTop : MonoBehaviour
{
public GUIStyle MyStyleRightMenuFunc; // стиль окна
public GUIStyle MyStyleGMenuBtnSound; // стиль кнопки звука
public GUIStyle MyStyleGMenuBtnSoundX; // стиль перечеркнутой кнопки звука
Rect MyStyleGMenuBtnSoundRect; //параметры кнопки звука(перечеркнутого звука - они одинаковые) - размер и положение
float MenuSizeX;// размеры нарисованного окна
float MenuSizeY;
void RightMenuFunc(int windowID)
{
MenuSizeX = 331;
MenuSizeY = 50;
if (GUI.Button(new Rect((MenuSizeX - 45 - 15 - 59 - 59), (MenuSizeY - 49) / 2, 59, 49), "", MyStyleGMenuBtnSound))
//if (GUI.Button(MyStyleGMenuBtnSoundRect, "", MyStyleGMenuBtnSound)) // можно использовать эту строчку заместо верхней
{
//делаем что то
}
}
void Start()
{
}
void Update()
{
}
void OnGUI()
{
MyStyleGMenuBtnSoundRect = new Rect((MenuSizeX - 45 - 35 - 59 - 59), (MenuSizeY - 49) / 2, 59, 49); // параметры кнопки
GUI.Window(2, new Rect((Screen.width - 20 - MenuSizeX), 10, MenuSizeX, MenuSizeY), RightMenuFunc, "", MyStyleRightMenuFunc); // рисуем окно с нашим стилем в нем будет кнопка
}
}
{
public GUIStyle MyStyleRightMenuFunc; // стиль окна
public GUIStyle MyStyleGMenuBtnSound; // стиль кнопки звука
public GUIStyle MyStyleGMenuBtnSoundX; // стиль перечеркнутой кнопки звука
Rect MyStyleGMenuBtnSoundRect; //параметры кнопки звука(перечеркнутого звука - они одинаковые) - размер и положение
float MenuSizeX;// размеры нарисованного окна
float MenuSizeY;
void RightMenuFunc(int windowID)
{
MenuSizeX = 331;
MenuSizeY = 50;
if (GUI.Button(new Rect((MenuSizeX - 45 - 15 - 59 - 59), (MenuSizeY - 49) / 2, 59, 49), "", MyStyleGMenuBtnSound))
//if (GUI.Button(MyStyleGMenuBtnSoundRect, "", MyStyleGMenuBtnSound)) // можно использовать эту строчку заместо верхней
{
//делаем что то
}
}
void Start()
{
}
void Update()
{
}
void OnGUI()
{
MyStyleGMenuBtnSoundRect = new Rect((MenuSizeX - 45 - 35 - 59 - 59), (MenuSizeY - 49) / 2, 59, 49); // параметры кнопки
GUI.Window(2, new Rect((Screen.width - 20 - MenuSizeX), 10, MenuSizeX, MenuSizeY), RightMenuFunc, "", MyStyleRightMenuFunc); // рисуем окно с нашим стилем в нем будет кнопка
}
}