С юнити недавно и постоянно сталкиваюсь с вроде совсем небольшими, но все таки проблемами, которые, наверняка, просто решить людям уже разобравшимся.
В мануале и туториалах искал способ кликом по одному элементу GUI вызывать и прятать другой. Куча примеров, как спавнить объект, загружать уровень и тп.... пытался делать как BootCamp Demo, но видимо что-то упустил.
Вопрос, что изменить, что бы работало?
Синтаксис:
Используется javascript
enum MainMenuState
{
IDLE,
WEB,
SHIPS,
GUNS,
CONFIGS,
QUIT,
}
class ManeButtons extends MonoBehaviour{
static var visible : boolean;
var explosion : Transform;
var toolbarInt : int = 0;
var toolbarStrings : String[] = ["Toolbar1", "Toolbar2", "Toolbar3"];
function Start()
{
state = MainMenuState.IDLE;
}
function OnGUI(){
var evt : Event = Event.current;
DrawGUI(evt);
}
function DrawGUI (event : Event) {
if(visible){
if (GUI.Button (Rect (156,10,50,50), "Ships")) {
state = MainMenuState.SHIPS;
//Like this :
DrawShips ();
}
}
//Or like this...
if(state == MainMenuState.SHIPS){
DrawShips ();
}
}
private var aboutScroll : Vector2;
private var aboutStyle : GUIStyle;
function DrawShips (){
Debug.Log("We are in DrawShips!");
GUILayout.BeginArea (Rect (200,200,400,100));
aboutScroll = GUILayout.BeginScrollView(aboutScroll, GUILayout.Width(400));
//and some gui elements here...
GUILayout.EndScrollView();
GUILayout.EndArea();
}
function DrawGuns (){
}
}
{
IDLE,
WEB,
SHIPS,
GUNS,
CONFIGS,
QUIT,
}
class ManeButtons extends MonoBehaviour{
static var visible : boolean;
var explosion : Transform;
var toolbarInt : int = 0;
var toolbarStrings : String[] = ["Toolbar1", "Toolbar2", "Toolbar3"];
function Start()
{
state = MainMenuState.IDLE;
}
function OnGUI(){
var evt : Event = Event.current;
DrawGUI(evt);
}
function DrawGUI (event : Event) {
if(visible){
if (GUI.Button (Rect (156,10,50,50), "Ships")) {
state = MainMenuState.SHIPS;
//Like this :
DrawShips ();
}
}
//Or like this...
if(state == MainMenuState.SHIPS){
DrawShips ();
}
}
private var aboutScroll : Vector2;
private var aboutStyle : GUIStyle;
function DrawShips (){
Debug.Log("We are in DrawShips!");
GUILayout.BeginArea (Rect (200,200,400,100));
aboutScroll = GUILayout.BeginScrollView(aboutScroll, GUILayout.Width(400));
//and some gui elements here...
GUILayout.EndScrollView();
GUILayout.EndArea();
}
function DrawGuns (){
}
}
Я попадаю в функцию DrawShips, но элементы GUI там находящиеся не отображаются по нажатию на кнопку.
Задача тривиальная - по нажатию на button показывать и скрывать область\окно с элементами интерфейса.
Спасибо.