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)

WISHMASTER35 07.02.2012 00:17

Ответ: Вопросы от новичка
 
pax, ты же в своем кубизме в скрипте объединял блоки в большие меши.
А если все эти блоки будят статические, то статический батчинг сможет так же оптимизировать?
Вот еще я думаю можно ли эти кубы генерировать на лету в шейдере? Есть же какой-то геометрический шейдер, который может создавать геометрию.
Что-то меня тоже заинтересовала идея тайлового уровня. Только маленького как в старых играх)

pax 07.02.2012 07:26

Ответ: Вопросы от новичка
 
Unity не поддерживает геометрические шейдеры. Статический батчинг это тоже самое, что и объединение мешей в один большой.

WISHMASTER35 08.02.2012 16:49

Ответ: Вопросы от новичка
 
Как можно сделать такие http://upwap.ru/2011523 два элемента?
GUILayout.SelectionGrid делает отступы между кнопками.
GUILayout.Box не растягивается так по ширине окна.

И можно как-то у GameObject'а скрыть всех потомков? А то не верю, что у Terrain нету дочерних объектов, ведь даже в окне проекта отображается дочерняя текстура.
Вроде так можно скрыть http://unity3d.com/support/documenta...hideFlags.html

Но все же интересно как устроен Terrain. Наверняка разделен на маленькие меши.

pax 08.02.2012 17:56

Ответ: Вопросы от новичка
 
1. попробовать через
http://unity3d.com/support/documenta...uttonLeft.html
http://unity3d.com/support/documenta...ttonRight.html
http://unity3d.com/support/documenta...ButtonMid.html

2. Террейн генерируется, у него есть http://unity3d.com/support/documenta...rrainData.html ассет, по которому все генерируется

WISHMASTER35 08.02.2012 23:57

Ответ: Вопросы от новичка
 
Чтобы Box был по ширине на все окно, надо было написать так GUILayout.Box( "Box", GUILayout.ExpandWidth(true) );
Теперь не пойму каким элементом в Terrain был сделан список деревьев и текстур. Хотя немного напоминает Box с какими-то элементами внутри.
И как сделать, что бы при нажатии на кнопку открывалось окно со списком префабов? И куда потом можно сохранить выбранный префаб, что бы было как выбор деревьев в редакторе терейна? public переменную в скрипте со списком для этого делать не хочется, а private не сохранят свое новое значение.

Почему Monitor.Enter и semaphore.WaitOne() не ставят поток на паузу?
Надо создать окно и сделать в потоке паузу до закрытия этого окна. Как например в EditorUtility.SaveFilePanel. Или это как-то через yield делают?

pie 28.02.2012 13:09

Ответ: Вопросы от новичка
 
Намекните как сделать следы от пуль на поверхности. Нарисовать декаль? Как? Точку столкновения пули и поверхности знаю. Объясните если не сложно.

pax 28.02.2012 14:10

Ответ: Вопросы от новичка
 
Например
Bootcamp -> Standard Assets -> Decal System

или платная

http://u3d.as/content/frameshift/fra...-framework/1um

pie 28.02.2012 18:36

Ответ: Вопросы от новичка
 
Какая альтернатива функции Instantiate из C# в JS?

WISHMASTER35 28.02.2012 19:46

Ответ: Вопросы от новичка
 
pie, Instantiate должно и в JS работать.

pie 29.02.2012 13:43

Ответ: Вопросы от новичка
 
Вложений: 1
WISHMASTER35, спасибо.)))

У меня проблемы с этими декалями.
Делал вот по этому уроку.
А именно:
1) создал plane и нанес на него текстуру отверстия от пули.
2) создал префаб и на него перетащил этот самый плейн.
3) удалил плейн.
4) прикрепил к оружию следующий скрипт:

PHP код:

var _direction attach.transform.TransformDirection(Vector3.right);
        var 
_hit RaycastHit;
        
        if (
Physics.Raycast (attach.transform.position_direction_hitbulletRange)){
            if (
_hit.rigidbody){_hit.rigidbody.AddForceAtPosition(bulletForce _direction_hit.point);}
            
_hit.collider.SendMessageUpwards("ApplyDamage"bulletDamageSendMessageOptions.DontRequireReceiver);
            if (
_hit.collider.tag == "DecalOn"){Instantiate(decals_hit.pointQuaternion.FromToRotation(Vector3.up_hit.normal));}
            
Debug.DrawLine(attach.transform.position_hit.pointColor.red);
        } 

где attach - это точка откуда вылетают пули;
decals : GameObject;

В итоге получилось вот это "смотрите скриншот".

pax 29.02.2012 13:49

Ответ: Вопросы от новичка
 
Делай небольшой оффсет по нормали к поверхности, либо в шейдере надо дописать строчку (точно не помню какую)

pie 29.02.2012 13:59

Ответ: Вопросы от новичка
 
поясни пожалуйста что за оффсет?

pax 29.02.2012 14:19

Ответ: Вопросы от новичка
 
ну к позиции плейна прибавляй например hit.normal * 0.005f
PHP код:

if (_hit.collider.tag == "DecalOn"){Instantiate(decals_hit.point _hit.normal 0.005Quaternion.FromToRotation(Vector3.up_hit.normal));} 


pie 24.03.2012 23:21

Ответ: Вопросы от новичка
 
Всем привет. У меня проблемы со статьей ссылки на которые я выложил. В первой части говорится что нужно наложить текстуру на plane. Я наложил, но почему то вокруг текстуры остается цвет от объекта plane. То есть она не становится прозрачной вокруг текстуры как в уроке. Почему так происходит? Спасибо за внимание.

pie 24.03.2012 23:22

Ответ: Вопросы от новичка
 
Ссылки на статьи в FAQ.


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

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