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)

pax 18.04.2014 16:51

Ответ: Вопросы от новичка
 
Можно экспортировать сцены книжек в бандли и скачивать в приложение библиотеку. Вероятно надо для каждой книги свои имена сцен... (вот только не помню что на счет кода) Вероятно все сцены должны работать с одним набором кода и быть в одном проекте...
http://docs.unity3d.com/Documentatio...setBundle.html

ANIK123 22.04.2014 04:17

Ответ: Вопросы от новичка
 
Здравствуйте
Понадобилось мне обновлять меш процедурно каждый кадр, но тут узрел сильное падение фпс
Делаю так:
Код:

void Start(){
        gameObject.AddComponent("MeshFilter");
        gameObject.AddComponent("MeshRenderer");
        mesh = GetComponent<MeshFilter>().mesh;
}
void Update(){
        //создаю массивы точек и треугольников, тут падения фпс нет точно
        //но вот когда присваиваю их мешу...
        mesh.vertices = my_vertices;
        mesh.triangles = my_triangles;
        //больше никакого кода связанного с мешом нету, нормали не пересчитываю и т д
}

И еще интересно то, что изменение количества полигонов никак не влияет, будь то 10 или 1000

pax 22.04.2014 10:11

Ответ: Вопросы от новичка
 
Сделай перед присвоением новых массивов mesh.Clear(); возможно надо сохранить нормали и uv в отдельные массивы, если они есть...

ANIK123 22.04.2014 20:02

Ответ: Вопросы от новичка
 
Ура! Фпс прямо таки взлетел!
Код:

.......................................................
for(int i = 0; i < mynormals.Length; i++){
        mynormals[i] = Vector3.zero;
}
.......................................................
mesh.Clear();//влияния не заметил, но пусть будет
mesh.MarkDynamic();//говорят что на разных платформах дает прирост, пусть будет
mesh.vertices = myvertices;
mesh.uv = myuv;
mesh.normals = mynormals;
mesh.triangles = mytriangles;

Надо присваивать свои нормали и развертку, ибо движку приходилось их самому придумывать
Спасибо :)

WISHMASTER35 22.04.2014 23:54

Ответ: Вопросы от новичка
 
Никто с многопоточностью не экспериментировал? В юнити конечно с этим туго, но все же, если не использовать юнитивских объектов, то можно.
В .Net Parallel.For. В Mono эти классы вырезали(
Вот думаю как написать свой Parallel.For.

WISHMASTER35 24.04.2014 16:18

Ответ: Вопросы от новичка
 
написал свой parallel for.
Код:

        public static void ParallelFor(Action<int, int> loop, int count) {
                count /= SystemInfo.processorCount;

                ManualResetEvent[] events = new ManualResetEvent[SystemInfo.processorCount];
                for(int i=0; i<SystemInfo.processorCount; i++) {
                        events[i] = InvokeLoop( loop, count*i, count*i+count );
                }
                WaitHandle.WaitAll( events );
        }

        private static ManualResetEvent InvokeLoop(Action<int, int> loop, int from, int to) {
                ManualResetEvent evt = new ManualResetEvent(false);
                ThreadPool.QueueUserWorkItem( arg => {
                        loop (from, to);
                        evt.Set();
                } );
                return evt;
        }

Конечно в юнити или в моно с этим туго.
В .net есть ManualResetEventSlim, который должен быть быстрее. Да и CountdownEvent тут бы лучше подошел.
Но что есть - то есть.
Кстати, чертов MonoDevelop перестал видеть классы из System.Threading и System. Все красным выделяет и подсказки не работают(
Visual Studio 2013 юнити еще не начал поддерживать? А то старый 2012 не хочется ставить.

pax 24.04.2014 19:47

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

Сообщение от WISHMASTER35 (Сообщение 279367)
Visual Studio 2013 юнити еще не начал поддерживать? А то старый 2012 не хочется ставить.

Давно работаю в VS 2013. Никаких проблем не испытываю.

pie 25.04.2014 21:34

Ответ: Вопросы от новичка
 
Вложений: 4
Такая ситуация. На сцене один меш без коллайдера (слой Default), коллайдер (слой TransparentFX) и объект с Lens Flare. Как расположены объекты на сцене и настройки можно посмотреть ниже. Но тут что-то не так. Lens Flare настроен таким образом чтобы игнорировать только слой коллайдера, но тогда он становиться виден даже через меш. Скорее всего это происходит из-за того что они "друг в друге". Кто что может сказать по этому поводу?

pax 25.04.2014 22:22

Ответ: Вопросы от новичка
 
Собственно Lens Flare работает только с коллайдерами, а единственный коллайдер игнорируется.

DaHuJIbI4 26.04.2014 22:23

Ответ: Вопросы от новичка
 
Народ, подскажите пожалуйста, мне нужно затекстурировать куб. Но чтобы один полигон был одной текстурой закрашен, а второй другой. Т.е. перефразируя, как текстурировать отдельные полигоны меша? В Unity это вообще возможно?

pax 27.04.2014 09:58

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

WISHMASTER35 29.04.2014 01:37

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

Сообщение от pax (Сообщение 279378)
Давно работаю в VS 2013. Никаких проблем не испытываю.

Ты express используешь?
У меня Unity с ним не работает. Или я настраиваю как-то не так.

pax 29.04.2014 01:56

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

Сообщение от WISHMASTER35 (Сообщение 279620)
Ты express используешь?
У меня Unity с ним не работает. Или я настраиваю как-то не так.

Ultimate конечно же )

WISHMASTER35 03.05.2014 03:28

Ответ: Вопросы от новичка
 
pax, подключил visual studio. Вроде все работает, только при изменении файлов из под юнити выскакивает сообщение.
И еще не нравится, что открывающая скобка переносится на новую строку. Это можно как-то отключить?
И можно включить автодополнение названия всяких классов\полей?

pax 03.05.2014 14:14

Ответ: Вопросы от новичка
 
1. Unity перестраивает файл проекта при изменении в файлах с кодом или текстовых ассетах, студия спрашивает о его перезагрузке. Все логично.
2. Не испытываю с этим проблем. Везде код на C# так пишут.
3. Оно работает. Зачем его включать? Я для большей удобности использую ReSharper (правда с ним студия дольше запускается).


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

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