Thedrhax14 Дата: Сб, 26 Июл 2014, 10:45 | Сообщение # 1
Сообщений: 54
Награды:
0
Репутация:
1
Статус: Offline
Всем привет Не давно столкнулся со странной проблемой в своем скрипте инвентаря. Код
function OnGUI() { if (_display) { if (_displayRukzakEpta) { GUI.DrawTexture(WindowRect,RukzakEpta,ScaleMode.StretchToFill); for (var x = 0; x<mainInventoryList.Count;x++){ //if (GUI.Button(Rect(Screen.width/2,Screen.height/2+(x*25),120,20), GUIContent(" " + mainInventoryList[x].name, mainInventoryList[x].icon)));{ if (mainInventoryList[x].itemType == mainInventoryList[x].itemType.Head){ if(_equipmentManager.equipmentList[0].equipped){ mainInventoryList.Add(_equipmentManager.equipmentList[0]); _equipmentManager.equipmentList[0] = mainInventoryList[x]; _equipmentManager.equipmentList[0].equipped=true; } _equipmentManager.equipmentList[0] = mainInventoryList[x]; mainInventoryList.RemoveAt(x); _equipmentManager.equipmentList[0].equipped=true; } } //если предмет это chest else if (mainInventoryList[x].itemType == mainInventoryList[x].itemType.Chest) { } } } } if (_displayOkipirovkaKoro4) { GUI.DrawTexture(WindowRect,RukzakEpta,ScaleMode.StretchToFill); } if (GUI.Button(Rect(Screen.width/2,(Screen.height/2 )-50,120,20),"Рюкзак")) { _displayRukzakEpta = true; _displayOkipirovkaKoro4 = false; } if (GUI.Button(Rect(Screen.width/2,(Screen.height/2 )-80,120,20),"Экипировка")) { _displayRukzakEpta = false; _displayOkipirovkaKoro4 = true; } } }
Этот скрипт, точнее его часть, отвечает за перенос объектов, если я нажал на этот объект, в экипировку из рюкзака, но когда я подбираю объект (он конешно добавляется в рюкзак) и я вижу его в inspector, и при открытии рюкзака unity автоматически переносит объект в экипировку без проверки нажал ли я GUIButton или нет. Что не так? Почему он так делает? P.s скрипт я писал сам, и если что я пометил ту строку с проверкой.
Виду блог про разроботку игр и про свои проекты https://thedrhax14.wordpress.com/
Сообщение отредактировал Thedrhax14 - Сб, 26 Июл 2014, 10:47
Сообщение Всем привет Не давно столкнулся со странной проблемой в своем скрипте инвентаря. Код
function OnGUI() { if (_display) { if (_displayRukzakEpta) { GUI.DrawTexture(WindowRect,RukzakEpta,ScaleMode.StretchToFill); for (var x = 0; x<mainInventoryList.Count;x++){ //if (GUI.Button(Rect(Screen.width/2,Screen.height/2+(x*25),120,20), GUIContent(" " + mainInventoryList[x].name, mainInventoryList[x].icon)));{ if (mainInventoryList[x].itemType == mainInventoryList[x].itemType.Head){ if(_equipmentManager.equipmentList[0].equipped){ mainInventoryList.Add(_equipmentManager.equipmentList[0]); _equipmentManager.equipmentList[0] = mainInventoryList[x]; _equipmentManager.equipmentList[0].equipped=true; } _equipmentManager.equipmentList[0] = mainInventoryList[x]; mainInventoryList.RemoveAt(x); _equipmentManager.equipmentList[0].equipped=true; } } //если предмет это chest else if (mainInventoryList[x].itemType == mainInventoryList[x].itemType.Chest) { } } } } if (_displayOkipirovkaKoro4) { GUI.DrawTexture(WindowRect,RukzakEpta,ScaleMode.StretchToFill); } if (GUI.Button(Rect(Screen.width/2,(Screen.height/2 )-50,120,20),"Рюкзак")) { _displayRukzakEpta = true; _displayOkipirovkaKoro4 = false; } if (GUI.Button(Rect(Screen.width/2,(Screen.height/2 )-80,120,20),"Экипировка")) { _displayRukzakEpta = false; _displayOkipirovkaKoro4 = true; } } }
Этот скрипт, точнее его часть, отвечает за перенос объектов, если я нажал на этот объект, в экипировку из рюкзака, но когда я подбираю объект (он конешно добавляется в рюкзак) и я вижу его в inspector, и при открытии рюкзака unity автоматически переносит объект в экипировку без проверки нажал ли я GUIButton или нет. Что не так? Почему он так делает? P.s скрипт я писал сам, и если что я пометил ту строку с проверкой. Автор - Thedrhax14 Дата добавления - 26 Июл 2014 в 10:45
seaman Дата: Вс, 27 Июл 2014, 11:26 | Сообщение # 2
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
И что, ошибок не выдает? Должен выдавать. Либо Вы привели скрипт не из проекта. Для начала - проверяем скобки. У Вас полно if-ов вне функций.
Сообщение И что, ошибок не выдает? Должен выдавать. Либо Вы привели скрипт не из проекта. Для начала - проверяем скобки. У Вас полно if-ов вне функций. Автор - seaman Дата добавления - 27 Июл 2014 в 11:26
Thedrhax14 Дата: Вс, 27 Июл 2014, 11:42 | Сообщение # 3
Сообщений: 54
Награды:
0
Репутация:
1
Статус: Offline
seaman Спасибо за совет, я смог найти ошибку: я случайно поставил в конце проверки ";".
Виду блог про разроботку игр и про свои проекты https://thedrhax14.wordpress.com/
Сообщение seaman Спасибо за совет, я смог найти ошибку: я случайно поставил в конце проверки ";".Автор - Thedrhax14 Дата добавления - 27 Июл 2014 в 11:42
seaman Дата: Вс, 27 Июл 2014, 11:55 | Сообщение # 4
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
О как. Так вы закомментировали НУЖНУЮ строку. Тогда понятно.
Сообщение О как. Так вы закомментировали НУЖНУЮ строку. Тогда понятно. Автор - seaman Дата добавления - 27 Июл 2014 в 11:55