forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Помогите разобраться (http://forum.boolean.name/showthread.php?t=14099)

Ipe 22.01.2011 19:17

Помогите разобраться
 
В общем у меня есть скрипт
PHP код:

public class Class: ModifiedStat  {
private 
int _classCharacter;
    
    public Class(){
        
_classCharacter =0;
        
    }    
}

public 
enum ClassName{
    
Warrior,
    
Wizard
} 

при выводе ClassName с помощью
PHP код:

for(int cnt = 0; cnt < Enum.GetValues(typeof(ClassName)).Length; cnt++ ){
GUI.Label(new Rect(400, 40 + ((cnt ) * 21), 100, 21), ((ClassName)cnt).ToString() ); 

он выводяться вместе
а можно ли сделать чтобы они выводились по одному и с помощью двух кнопок переключать между Warrior и Wizard?

Ipe 22.01.2011 19:20

Ответ: Помогите разобраться
 
Или сделать так
PHP код:

public enum Warrior{ 
    
Warrior, 
} 
public 
enum Wizard{ 
    
Wizard 
} 

а потом уже переключать?

pax 22.01.2011 19:51

Ответ: Помогите разобраться
 
Чет писец не понятно, объясни что нужно по порядку.

pax 22.01.2011 20:12

Ответ: Помогите разобраться
 
Если я правильно понял:

PHP код:

using System;
using UnityEngine;

public class 
Character : MonoBehaviour
{

    public 
CharacterClass characterClass = CharacterClass.Warrior;

    public 
enum CharacterClass
    
{
        
Warrior,
        
Wizard
    
}

    private 
CharacterClass[] _classes;
    public 
void Start()
    {
        var 
names = Enum.GetNames(typeof(CharacterClass));
        
_classes = new CharacterClass[names.Length];
        for (
int i = 0; i < names.Length; i++)
        {
            
_classes[i] = (CharacterClass)Enum.Parse(typeof(CharacterClass), names[i]);
        }
    }


    public 
void OnGUI()
    {
        
GUILayout.BeginArea(new Rect(10, 10, 150, 300));

        
Color guiColor = GUI.color;

        foreach (
CharacterClass chClass in _classes)
        {
            
GUI.color = chClass == characterClass ? Color.red : guiColor;
            if (
GUILayout.Button(chClass.ToString()))
            {
                
characterClass = chClass;
            }
        }
        
GUI.color = guiColor;

        
GUILayout.EndArea();

    }
} 


Ipe 22.01.2011 20:20

Ответ: Помогите разобраться
 
спасибо можно и так но я думал осуществить прмиерно вот так
< Эт кнопка =))))

< Warrior >
и после переключения получается
< Wizard >
но имена классов берутся от туда ))

pax 22.01.2011 20:27

Ответ: Помогите разобраться
 
Задачу надо объяснять правильно:
PHP код:

using System;
using System.Collections.Generic;
using UnityEngine;

public class 
Character : MonoBehaviour
{

    public 
CharacterClass characterClass = CharacterClass.Warrior;

    public 
enum CharacterClass
    
{
        
Warrior,
        
Wizard
    
}

    private List<
CharacterClass> _classes = new List<CharacterClass>();
    public 
void Start()
    {
        var 
names = Enum.GetNames(typeof(CharacterClass));

        for (
int i = 0; i < names.Length; i++)
        {
            
_classes.Add((CharacterClass)Enum.Parse(typeof(CharacterClass), names[i]));
        }
    }


    public 
void OnGUI()
    {
        
GUILayout.BeginArea(new Rect(10, 10, 150, 300));
        if (
GUILayout.Button(characterClass.ToString()))
        {
            
int index = _classes.IndexOf(characterClass) + 1;
            if (
index >= _classes.Count)
            {
                
index = 0;
            }

            
characterClass = _classes[index];
        }
        
GUILayout.EndArea();

    }
} 


Ipe 22.01.2011 20:35

Ответ: Помогите разобраться
 
Спасибо большое :
=)

Ipe 27.01.2011 19:21

Ответ: Помогите разобраться
 
У меня опять вопрос по GUI =)
можно ли как то реализовать "склеивающиеся" GUI.Window
те есть два окна. window 1 и window 2, когда я претаскиваю одно окно к другому они должны прикрипиться друг к другу.
и так же если я возьму прикреплённое окно и перетаскиванием отсоеденю его от другого

pax 27.01.2011 20:50

Ответ: Помогите разобраться
 
ну такое за Вас никто писать не будет. Создайте отдельный менеджер окон. Рисуйте и управляйте окнами через него.

Ipe 27.01.2011 21:01

Ответ: Помогите разобраться
 
Цитата:

Сообщение от pax (Сообщение 177076)
ну такое за Вас никто писать не будет. Создайте отдельный менеджер окон. Рисуйте и управляйте окнами через него.

а я и не просил это пистаь за меня....
я как бы просто сросил как это можно реализовать вот и всё:)

pax 27.01.2011 21:36

Ответ: Помогите разобраться
 
Ну я бы сделал класс окна с функцией OnGUI, наследовал бы все окна от него реализуя этот OnGUI. Выводил бы все окна через менеджер, в который добавлял все окна при создании. И через менеджер управлял бы прилипанием.


Часовой пояс GMT +4, время: 19:27.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot