Радиальный прогресс-бар( у половины людей не работает)

Программирование на Юнити.

Радиальный прогресс-бар( у половины людей не работает)

Сообщение Nolex 02 авг 2011, 09:57

Сделал вчера радиальный прогресс бар, в виде часиков.
У меня на машине все отлично работает. Но как позже оказалось, из 10-ти человек, которые тестили, у 4 не работал этот прогресс бар.

Вот исходный код:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class xxxx : MonoBehaviour {


        public Texture circle;
        public Texture circleProgress;
        public Material mat;

        void OnGUI () {
       
                                                mat.SetFloat("_Cutoff", Mathf.InverseLerp(0, Screen.width, Input.mousePosition.x));
                                                Graphics.DrawTexture(new Rect(183, 51, 20, 20), circleProgress, mat);
                                                Graphics.DrawTexture(new Rect(171, 42, 48, 34), circle);

       
        }
       

}
 

Материал Transparent Cutout.

Веб-версия для теста: http://oldskullent.com/project/clock/WebPlayer.html

Что посоветуете? Скорее всего это баг Юнити..
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение Neodrop 02 авг 2011, 10:23

Работать то он работает. Только ориентируется исключительно на X ось мыши.
Вероятно четверо из ваших тестеров оказались законченными балбесами и этого не поняли.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение Nolex 02 авг 2011, 11:02

Neodrop писал(а):Работать то он работает. Только ориентируется исключительно на X ось мыши.
Вероятно четверо из ваших тестеров оказались законченными балбесами и этого не поняли.

Все поняли, я предупреждал про движение мышкой. Тут именно такая тема, что этот прогресс бар не пашет у некоторых людей.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение Neodrop 02 авг 2011, 11:07

Странный код... ЗА каким чёртом не GUI метод вы засунули в GUI ?
Используем GUI.DrawTexture и, вероятно, всё вылечится.
И использовать стоит в EventRepaint, a не постоянно.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение Nolex 02 авг 2011, 11:25

Neodrop писал(а):Странный код... ЗА каким чёртом не GUI метод вы засунули в GUI ?
Используем GUI.DrawTexture и, вероятно, всё вылечится.
И использовать стоит в EventRepaint, a не постоянно.

GUI.Dwaw.. не поддерживает материалы.
Репейнт пробовал - тоже самое.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение Neodrop 02 авг 2011, 11:30

Ну и что, что не поддерживает?
Разрезать на части и вся любовь. Будет то же самое. Или можно выводить со смещением в GUI.BeginGroup

Это не баг Unity, это натягивание глаза через жопу, поэтому сложно сказать из-за чего именно глючит то, что вообще-то работать тут не обязано.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение gnoblin 02 авг 2011, 18:47

я когда смотрел на этот код, не заметил что там класс Graphics используется
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение Nolex 02 авг 2011, 19:01

Вы с Неодропом ошибаетесь, думая что Graphics.DrawTexture нельзя юзать в OnGUI.
http://unity3d.com/support/documentatio ... xture.html

Мой код реально корректен на все 100%, если учитать что я опустил репейнтс.
При чем хочу сказать что способ очень оптимальный. Юзается всего 1 цельная картинка по сути с хитрой маской.
Сейчас сделал аварийную замену — поделил круг на 8 частей и подгружаю разные состояние прогресса в зависимости от параметра.

Все-таки есть все основания полагать, что это баг Юньки. Группа шейдеров Transparent с CutOut не работают через Graphics.DrawTexture примерно у половины людей.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение Neodrop 02 авг 2011, 19:04

Не, мы тут покопали в скайпе. Вроде Графикс ни при чём.. Разве что в коде не проверяется EventRepaint
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение gnoblin 02 авг 2011, 19:53

Намного проще сделать мешем.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение Nolex 02 авг 2011, 20:06

Согласен! Но я не разобрался как создавать Plane по Rect координатам. Мне просто надо отрисовать через ГУИ скажем 10 ников и возле каждого разместить такую плоскость с прогресс-баром. Не разобрался как связать Rect и 3д-координаты)

Сделал пока так:

Синтаксис:
Используется csharp
        for(int i=0; i<partsUser.Length; i++){
                               
        GUI.BeginGroup( new Rect(8 + i * Screen.width/4.2f, Screen.height /1.4f, Screen.width - 5, 300) );
                       
 
percentLoad =  Convert.ToInt32(partsnextUser[i,1]);
                                       
if (percentLoad > 12 && percentLoad < 25) { GUI.DrawTexture(new Rect(183, 51, 20, 20), clockSektor[0]); }
if (percentLoad > 25 && percentLoad < 37) { GUI.DrawTexture(new Rect(183, 51, 20, 20), clockSektor[1]); }
if (percentLoad > 37 && percentLoad < 50) { GUI.DrawTexture(new Rect(183, 51, 20, 20), clockSektor[2]); }
if (percentLoad > 50 && percentLoad < 62) { GUI.DrawTexture(new Rect(183, 51, 20, 20), clockSektor[3]); }
if (percentLoad > 62 && percentLoad < 75) { GUI.DrawTexture(new Rect(183, 51, 20, 20), clockSektor[4]); }
if (percentLoad > 75 && percentLoad < 87) { GUI.DrawTexture(new Rect(183, 51, 20, 20), clockSektor[5]); }
if (percentLoad > 87 && percentLoad < 100) { GUI.DrawTexture(new Rect(183, 51, 20, 20), clockSektor[6]); }
if (percentLoad == 100) { GUI.DrawTexture(new Rect(183, 51, 20, 20), clockSektor[7]); }
 
        GUI.EndGroup();
                       
        }
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение DbIMok 19 окт 2011, 01:55

Nolex писал(а):Не разобрался как связать Rect и 3д-координаты

рисовать плейн повернутый к камере над объектом в 3D. а камера сама разместит.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение Nolex 19 окт 2011, 10:41

DbIMok писал(а):
Nolex писал(а):Не разобрался как связать Rect и 3д-координаты

рисовать плейн повернутый к камере над объектом в 3D. а камера сама разместит.

Ага, с этим разобрался. А как сделать чтоб мой плейн был поверх GUI.Texture
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение AndreyMust19 19 окт 2011, 14:46

Nolex
Группа шейдеров Transparent с CutOut не работают через Graphics.DrawTexture примерно у половины людей.

Возможно это из-за видеокарты, которая имеется у тех самых 4-х человек. Не проводили такой опрос среди тестеров?
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Радиальный прогресс-бар( у половины людей не работает)

Сообщение gnoblin 19 окт 2011, 14:51

И что дальше если "виновата видеокарта"?
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

След.

Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 6