up (либо локализацию, либо System.Text.UTF8Encoding) Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
тут дело в самом C# вот, тут расклад по этому вопросу.
а у тебя атлас NGUI с русскоязычным шрифтом?? ну как элемент списка с "Камин" отображается? возможно, чтобы не заморачиваться - либо использовать Localize в NGUI, либо уйти от текстового представления в списках. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
насколько смог разобраться, в MinePackage используется вычисление лицевых сторон, батч процессор, который рассовывает все вычисления по отдельным потокам, и декоратор, который накладывает текстуру на видимый полигон используя признаки "пиксола" (тоже в отдельном потоке). там вообще нет кубов! мир хранится в координатах и признаках (позиция, текстура, UV развертка). каждый chunk хранит в себе и меш, и меш рендер, и меш фильтр, но они включаются только для видимых блоков, наверное только в зоне досягаемости рейкаста плейера. грубо говоря -- после декорирования это просто литой "пиксольный" (вортексный) объект, который просто выглядит как куча блоков. когда ломаешь "пиксол" - то декоратор вычисляет новое видимое поле, только для сопряженных с измененным chunk'ом и все. мы снова имеем единый вортексный объект. если сделаешь в 3D max такой "террайн" слитый с деревьями, удалив все скрытые полигоны, и запекши текстуры - то он вот так и будет работать в unity. у меня 68 fps / 1M вертексов / 513K триугольников в FullHD на весь мир. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Понедельник, 21 Октября 2013, 22:24
Просто хотел узнать в сообществе - может кто-то в курсе реализации лукьяненковского deeptown'a?
Жанр: не игра, 3D виртуализация мира. Пространство: 3D. Вид: от первого лица. Описание (Сюжет): основные идеи сюжета - в "Лабиринтах отражений" , "Фальшивых зеркалах", "Прозрачных витражах" Лукьяненко.
Все проекты на эту тему (судя по датам новостей) заглохли с 2011, максимум конец 2012 года. основные наполненные. Project Deeptown deeptown matrix
никто не занимался этим? может кто-то общался с авторами или сам создавал что либо подобное?! я например вижу это на Unity очень даже реально! Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Нужно сделать так, чтобы в игре например лежала книга, к ней подходил игрок, нажимал на нее и она открывалась на весь экран. Ну типо как в TES, чтобы можно было читать ее, переворачивать страницы после нажатия и так далее.
в общем последовательность такая: 1. кладешь 3D "книгу" в поле, назначаешь ей имя (или в ее скрипте делаешь структуру с данными о содержании). 2. если игрок действует в поле игры указателем мыши (ссылка доброго товарища "рас") - то нужно в скрипте на камере (чарактере) в uрdate прописать 2.1.1 проверку щелчка по рейкасту (ссылка добрго товарища "трис"). 2.1.2 проверить чего щелкнул на том конце луча и если это книга - то просто запустить процесс чтения. можно предварительно санимировать взлет-открывание книги и тп. 2.2 если перс действует 3d'шной хваталкой, то достаточно обработать контакт с книгой по триггеру.
3. процесс чтения может быть организован двумя способами: 3.1. текст выводится скриптом управляющим "чтением" -- в гуи (ссылка доброго товарища "двас"), в гуи же сделать реагирование на щелчки по правой-левой половине экрана, затем анимировать пролистывание и тп. 3.2. сделать 3D листы с текстурами - картинки будут не очень большие, а сделать можно очень красиво. вот с перелистыванием натурально изобразить получится только если сможешь гнуть мэши как нужно. тут есть плюс - анимацию можно сделать в 3D max двух листов книги - листаем влево, листаем вправо (в книге "3Dmax 2008 секреты мастерства" был пример стр. 293). останется только программно менять текстуры в определенные моменты движения листа.
4. в любом случае само чтение - можно сделать на основную камеру, поверх основной сцены, а можно - в отдельном боксе (за пределами осн.сцены), на другой камере. во втором случае отключается мувинг перса, вкл. другой режим управления.
реализация каждого пункта зависит от многих факторов. поэтому выбор за тобой! Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Пятница, 18 Октября 2013, 17:17
ссылко бросательство обычно причисляется к спаму и иногда к троллю! а гуи зачем отправил вообще не понятно.. если учесть что большие текстуры в гуи вредно для здоровья Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
И когда можнобудет скачать 4.3, на сайте покаместь только 4.2.2
есть официальна бета (видел 4.3.0b3, тут в обзоре показан b4), на нее у бетатестеров и варезников есть полная ссылка. я смотрел 0b1 - шикарно все работает. один глюк увидел - что включается при выходе из игры 2D режим автоматом - даже если сцена вся 3Dшная. насколько понял - зависит от настроек при создании проекта (там сразу указывается - "преимущественно 2 или 3"). скачаю b3 отпишусь. четвертую пока не нашел. релиз на вынос будет через месяц-два по слухам. ждемс. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Вторник, 15 Октября 2013, 17:26
слишком мало данных. там много вариантов. может в юнити, может в компе. чтобы отбросить варианты про юнити нужно определиться: - не используется ли в следующем уровне какой либо графический осложнитель который может не запускаться в режиме игры - например не задействованы ли самописные спецэффекты, нет ли низкоуровневой графики и тп. - возможно управление главной камерой приводит к потере картинки - одна она или две, какие скрипты висят и тп. - пройтись по всем настройкам проекта - посмотреть какие они для windows системы. посмотреть на fog настройки - убрать его если есть и попробовать так. - прописать в каком нибудь скрипте новой сцены чтобы выдалась отладочная инфа - мол, сцена загрузилась и тп.
вообще очень странно, что именно в переходе выпадает графика. нужно выяснить она ли! может игра ПОЛНОСТЬЮ зависает (звуки часто продолжаются как ни в чем не бывало). тогда дело может быть в логике организации.
чтобы сказать что-то определенное нужно смотреть! можешь в личку кинуть упакованный юн.проект, как распакую - скажу сразу в чем проблема.
остальное - только в компе может быть дело. попробуй запусти на другой машине. так то я не слышал еще чтобы в юнити играла а после компила - нет, но может в юнити настройки отладочные, а после компила - на всю катушку врубаешь.. в общем - смотреть надо. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
второй угол этого куба следует за мышкой (т.е. куб увеличивается), и затем я отпускаю. Как это написать?
ты мне еще за этот скрипт не заплатил! Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
у тебя тчк 1 и тчк 2 СЧИТАЮТСЯ точками диагонали квадрата (пока кв) лежащего в любой плоскости по высоте (хоть у первой точки возьми Y хоть у 2ой). он расположен без наклонов - т.е. все его углы лежат на одной координате Y. отсюда: точки квадрата это 1) Х1, Z1 ,Y1; 2) Х2, Z2 ,Y1 (например берем У от первой точки, строим в ее плоскости) 3) X2, Z1 ,Y1 4) X1, Z2 ,Y1 есть конечно формула.. но так нагляднее - простая комбинация всех X и Z (1-2) между собой. все. квадрат построен. остается добавить от него вниз (вглубь террайна) и вверх (до максимально необходимой точки расчета) фиксированные величины и просто получить нижнюю и верхнюю четверку координат (отсчитав от Y1 нужный размер) все.
Добавлено (13.10.2013, 02:00) --------------------------------------------- вот сделал пример: скрипт использует префаб объект для визуального отображения точек диагонали прямоугольного выделения. я использовал узкую вытянутую сваю красного цвета - кинь в инспекторе префаб в переменную marker скрипта.
Код
using UnityEngine; using System.Collections; using System.Collections.Generic;
public class menageCamera : MonoBehaviour {
public Vector3 pnt1 = Vector3.zero; // точка выделения 1 public Vector3 pnt2 = Vector3.zero; // точка выделения 2
public GameObject[] selectedObj; // это массив выделенных объектов доступный из любого места игры public GameObject marker; // сюда кладем префаб объекта маркера ))
//-- находим все объекты с ОПРЕДЕЛЕННЫМ ТЭГОМ! и тэг Untagged не ищет!!!! GameObject[] all = (GameObject[])GameObject.FindGameObjectsWithTag("Enemy");
// простейший способ получить массив с заранее не известным количеством List<GameObject> tmp = new List<GameObject>();
foreach(GameObject gm in all){ //-- проверка на вхождение в выделенный прямоугольник. а Y нам глубоко пофиг! <img src="http://s12.ucoz.net/sm/1/smile.gif" border="0" align="absmiddle" alt="smile" /> if(selectRect.Contains(new Vector2(gm.transform.position.x, gm.transform.position.z)) ){ tmp.Add(gm); // добавляем в список попавший в бокс объект gm.renderer.material.color = Color.red; // меняем цвет для наглядности } } //-- удаляем маркеры с поля try{ GameObject.Destroy(GameObject.Find("marker1"), 0.5f); }catch{ } try{ GameObject.Destroy(GameObject.Find("marker2"), 0.5f); }catch{ }
return tmp.ToArray(); // возвращаем BuilIn массив, а могли бы все организовать в List и тп. }
void Update () {
// при НАЖАТИИ л.кн. мышки в пространстве - ставим первую точку. тянем "рамку" if(Input.GetMouseButtonDown(0)){ Ray rayCam = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(rayCam, out hit, 100f)){ pnt1 = hit.point;
// при ОТПУСКАНИИ л.кн. мышки в пространстве - ставим вторую точку и производим выделение if(Input.GetMouseButtonUp(0)){ Ray rayCam = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(rayCam, out hit, 500f)){ pnt2 = hit.point;
вооот. определились. т.е. язык программирования и предоставляемые движком API. согласен. у меня это заняло 40% времени на изучения. но остальное - это концепции из сопряженных областей - универсальные почти для любого другого движка. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
млин!! функция - это либо - подпрограмма языка программирования (С#, юнискрипт и т.п.) - либо ЗАЛОЖЕННЫЕ ВОЗМОЖНОСТИ конструктора игр - например возможность создавать террайн в конструкторе.
Первое - зависит от знания ЯП. Второе учится за 3 недели до уровня уверенного использования. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
что за функции?? самой среды или с#, или те которые сам написал?! Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
так в ЭТОМ вопрос был оказывается!! "как сделать выделение в 3D c проекцией на террайн?"
алгоритм: * нажал Lmouse на террайне - запомнил точку 1 * отпустил - точка 2 * вычислил куб с фиксированной высотой (и можешь сразу с глубиной) по простому квадрату с углами тчк1 - тчк2 дальше ветка: либо * пробежался по всем объектам в сцене определил математически попали координаты н-ного объекта списка в куб либо * создал невидимый коллайдер куба по координатам и определил все коллизии (интересно сработает?) * отфильтровываем террайн * конец.
Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
у меня: - на изучение системы Unity ушло 3 недели (интерфейс, принципы работы, особенности импорта, компиляции и тп). - на изучение C#, unityscript, шейдеров - еще 5 месяцев. - сейчас в процессе доводки знаний по: ИИ, шейдерам, маркетингу игр, дизайну (специфика, индивидуальность игры, худ, гуи, атмосфера и тп), спецэффектам, партиклам, сторонним плагинам и низкоуровневому программированию. думаю от 2 до 6 мес. займет. итого: обучение человека с навыками дизайнера, программиста и коцептуальщика (УЖЕ присутствовали) займет от 8 мес до 1.5 лет. за это время написаны тестовые проекты и пишется целевая игра. т.е. опыт приобретен на уровне "практик", до "специалиста" опыт доходит (по другим областям сужу) за 1 - 3 крупных коммерческих проекта. до эксперта - лет за 5-8 (4-7 проектов разной направленности). но. опрос затеян имхо, для выяснения товарищем Мао - стоит ли овчинка выделки или поискать еще что. я смотрел три системы разработки с одной и той же задачей - Havok, CryEngine, Unity3D - последний победил на время ближайших 2-3 лет! освоение и методы получения результата новичку и специалисту из других (не игровых) областей --- у него выше в два раза (минимум). другие не пробовал. может есть еще лучше этот показатель. (CryEng. дал самые близкие результаты.. но у него несколько тем в реализации сложнее!) Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Суббота, 12 Октября 2013, 22:06
вопрос поконкретнее сформулируй! а то кидает на разные стороны для ответа!
Добавлено (12.10.2013, 21:46) --------------------------------------------- если ты в RTS или в типа "симсах" смог сделать рамку для выделения 3D объкетов с проекцией на террайн, то там в механизме выделения вычисляются объекты попавшие под него. а уж занести это в массив потом эт совсем ерунда..
Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
ты ж хотел сделать отдельную тему для философии программирования. мож там добавить ".. описания, обсуждения и опубликования своих продуктов" Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Сообщение отредактировал KamiRonin - Среда, 09 Октября 2013, 18:11
мда.. ну да ладно. тема и так затянулась. Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
отличное решение!! особенно если исходному видео не год-два и время есть все исправить. в общем тут скорее всего мнение возникнет снова - мол, нефиг писать уроки пока не сделаешь максимально облизанную версию.. и по ходу будут правы ПО Б_О_ЛЬШЕЙ части...
однажды ребята переписывали реализацию одной и той же задачи раз 18!! улучшая код. и когда сделали его в одну строку - я разрешил повесить эту строку на плакат в ВЦ!! :)) но эт было один раз в жизни. совершенных программ не бывает!!! Мыслю - значит программирую... Конструктивная критика - умных ведет к совершенству... Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.