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=15809)

ANIK123 05.02.2015 20:06

Ответ: Вопросы от новичка
 
Жрет любой класс, но не Enum:
Код:

The type `MyEnums' must be a reference type in order to use it as type parameter `K' in the generic type or method `PDrawer.DrawEnum<K>(ref K)'.
т е с ограничителем class принимаются только ссылочные типы
Enum наследуется от ValueType:
PHP код:

public static void Foo<K>(K valwhere K ValueType 
}
Foo<float>(0); 

который оказывается "специальным", так же как и System.Object:
Код:

A constraint cannot be special class `System.ValueType'
Какие причины делать их "специальными"?

seaman 05.02.2015 21:32

Ответ: Вопросы от новичка
 
Попробуй так:
http://stackoverflow.com/questions/7...g-t-to-an-enum
Код:

public T GetEnumFromString<T>(string value) where T : struct, IConvertible
{
  if (!typeof(T).IsEnum)
  {
      throw new ArgumentException("T must be an enumerated type");
  }

  //...
}

Или так:
http://stackoverflow.com/questions/1...nts-in-c-sharp

ANIK123 06.02.2015 09:48

Ответ: Вопросы от новичка
 
PHP код:

public static void DrawEnums<T>(T val)where T structIConvertible{
    
EditorGUILayout.EnumPopup((TEnum.Parsetypeof), val.ToString(), true ));


Код:

Argument `#1' cannot convert `T' expression to type `System.Enum'
Какая-то через-*опщина

pax 06.02.2015 12:45

Ответ: Вопросы от новичка
 
Так не прокатит?
PHP код:

public static T DrawEnums<T>(T val)
{
    return (
T)(object)EditorGUILayout.EnumPopup((Enum)(object)val);



ANIK123 06.02.2015 14:51

Ответ: Вопросы от новичка
 
Да! Это оно! Супер!

ANIK123 18.02.2015 03:45

Ответ: Вопросы от новичка
 
В С++ есть возможность перегрузки круглых скобок:
PHP код:

int operator ()(int i) {return i;} 

Как такое провернуть в C#? Что-то типа:
PHP код:

public int this(int i){return i;} 

ЗЫ: пытаюсь слепить самодельный event:
PHP код:

public struct Event<T> {
    public 
delegate void Portrait(T arg);
    private 
event Portrait action;
    public 
void Raise(T arg){if (action != null){action(arg);}}
    public static 
Event<Toperator +(Event<TevePortrait act){
        
eve.action += act; return eve;
    }
    public static 
Event<Toperator -(Event<TevePortrait act){
        
eve.action -= act; return eve;
    }


Собсно велосипед изобретаю ради сокращения обьявления эвентов, теперь пишется всего одна строчка:
PHP код:

public static Event <int>OnLOL

+ "автоматическая" проверка на null
При этом синтаксис использования остается неизменным (окромя вышеупомятуных круглых скобок)
Вроде прикольная фигня :)
А как эвенты используете Вы?

pax 18.02.2015 07:22

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от ANIK123 (Сообщение 293309)
В С++ есть возможность перегрузки круглых скобок:
PHP код:

int operator ()(int i) {return i;} 

Как такое провернуть в C#? Что-то типа:
PHP код:

public int this(int i){return i;} 


Возможно тебе нужен индексатор: https://msdn.microsoft.com/ru-ru/library/2549tw02.aspx А может я тебя не правильно понял. Да не правильно. Круглые скобки не перегрузить.

Я пользуюсь стандартными делегатами System.Action, System.Func без всяких оберток. Их там много вариантов, они так же в Linq используются.
в твоем случае можно заменить
PHP код:

public delegate void Portrait(T arg);
    private 
event Portrait action

на
PHP код:

private event Action<Taction

Вместо скобок я бы написал

PHP код:

public void Invoke(T arg)
{
    if(
action != nullaction(arg);



Morganolla 18.02.2015 11:13

Ответ: Вопросы от новичка
 
Вопрос по игре типа Морской бой онлайн. Сколько по времени разработки и по деньгам может стоить сервер для такой игры? Задачи - коннектить игроков и вести простенькую статистику. Какие готовые инструменты и средства советуете использовать для разработки?

Igor 18.02.2015 13:26

Ответ: Вопросы от новичка
 
Есть идея наивного решения "в лоб" на java, будет тянуть не больше 1-10к одновременных сессий. Тупо каждого игрока обрабатывать своём потоке и потихоньку ждать сообщений. Думаю, могу где-то за 2-3 дня написать работающий прототип. (имхо, реализация с блокирующим IO проще)
За адекватность оценки и способа решения не ручаюсь, ничего такого раньше не писал.

Morganolla 18.02.2015 23:32

Ответ: Вопросы от новичка
 
Igor Спасибо, я думаю попробовать что-то примитивное из облачных сервисов, которые поддерживают .NET для совместимости со скриптами на C#...

Morganolla 18.02.2015 23:37

Ответ: Вопросы от новичка
 
Вот еще вопросик - как сцепить в физике 2Д два столкнувшихся тела (ригидбоди2Д). В 3Д физике есть соединение для этого -Fixed Joint. А в 2Д физике такого соединения нет!??? Я так думаю, что надо сделать из них парент-чилд и убрать(деактивировать) у одного ригидбоди2Д... Но как? В общем гемор какой то... Ваши советы плиз....

RegIon 19.02.2015 07:04

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Morganolla (Сообщение 293341)
Вот еще вопросик - как сцепить в физике 2Д два столкнувшихся тела (ригидбоди2Д). В 3Д физике есть соединение для этого -Fixed Joint. А в 2Д физике такого соединения нет!??? Я так думаю, что надо сделать из них парент-чилд и убрать(деактивировать) у одного ригидбоди2Д... Но как? В общем гемор какой то... Ваши советы плиз....

http://docs.unity3d.com/ru/current/M...ceJoint2D.html

Morganolla 19.02.2015 10:51

Ответ: Вопросы от новичка
 
RegIon
Спасибо, но мне показалось более удобным зафиксировать в Hinge Joint 2D - http://docs.unity3d.com/ru/current/M...geJoint2D.html

FREE MAN 19.02.2015 18:03

Ответ: Вопросы от новичка
 
Всем привет! Столкнулся с такой траблой, проект переволил за 50 метров. В Google play есть ограничение на апк файл до 50мб и есть дополнительный файл до 2 ГБ. Я разделил в Unity его на 2 файла Game.apk и Game.main.obb, если я obb файл закину как дополнительный файл, все ли смогут до качать этот файл к игре?

ANIK123 23.02.2015 00:05

Ответ: Вопросы от новичка
 
Когда в одном кадре (итерации цикла) запускаю одну анимацию на больше чем ~30 обьектах, на одном из них (как правило на втором-четвертом) анимация не срабатывает
Баг в юнити?


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

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