Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 22.01.2011, 19:17   #1
Ipe
AnyKey`щик
 
Регистрация: 22.01.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Печаль Помогите разобраться

В общем у меня есть скрипт
public class Class: ModifiedStat  {
private 
int _classCharacter;
    
    public Class(){
        
_classCharacter =0;
        
    }    
}

public 
enum ClassName{
    
Warrior,
    
Wizard
} 
при выводе ClassName с помощью
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?
(Offline)
 
Ответить с цитированием
Старый 22.01.2011, 19:20   #2
Ipe
AnyKey`щик
 
Регистрация: 22.01.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите разобраться

Или сделать так
public enum Warrior{ 
    
Warrior, 
} 
public 
enum Wizard{ 
    
Wizard 
} 
а потом уже переключать?
(Offline)
 
Ответить с цитированием
Старый 22.01.2011, 19:51   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Помогите разобраться

Чет писец не понятно, объясни что нужно по порядку.
(Offline)
 
Ответить с цитированием
Старый 22.01.2011, 20:12   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Помогите разобраться

Если я правильно понял:

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();

    }
} 
(Offline)
 
Ответить с цитированием
Старый 22.01.2011, 20:20   #5
Ipe
AnyKey`щик
 
Регистрация: 22.01.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите разобраться

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

< Warrior >
и после переключения получается
< Wizard >
но имена классов берутся от туда ))
(Offline)
 
Ответить с цитированием
Старый 22.01.2011, 20:27   #6
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Помогите разобраться

Задачу надо объяснять правильно:
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();

    }
} 
(Offline)
 
Ответить с цитированием
Старый 22.01.2011, 20:35   #7
Ipe
AnyKey`щик
 
Регистрация: 22.01.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите разобраться

Спасибо большое :
=)
(Offline)
 
Ответить с цитированием
Старый 27.01.2011, 19:21   #8
Ipe
AnyKey`щик
 
Регистрация: 22.01.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите разобраться

У меня опять вопрос по GUI =)
можно ли как то реализовать "склеивающиеся" GUI.Window
те есть два окна. window 1 и window 2, когда я претаскиваю одно окно к другому они должны прикрипиться друг к другу.
и так же если я возьму прикреплённое окно и перетаскиванием отсоеденю его от другого
(Offline)
 
Ответить с цитированием
Старый 27.01.2011, 20:50   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Помогите разобраться

ну такое за Вас никто писать не будет. Создайте отдельный менеджер окон. Рисуйте и управляйте окнами через него.
(Offline)
 
Ответить с цитированием
Старый 27.01.2011, 21:01   #10
Ipe
AnyKey`щик
 
Регистрация: 22.01.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Помогите разобраться

Сообщение от pax Посмотреть сообщение
ну такое за Вас никто писать не будет. Создайте отдельный менеджер окон. Рисуйте и управляйте окнами через него.
а я и не просил это пистаь за меня....
я как бы просто сросил как это можно реализовать вот и всё
(Offline)
 
Ответить с цитированием
Старый 27.01.2011, 21:36   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Помогите разобраться

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


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com