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 26.06.2012 10:45

Ответ: Вопросы от новичка
 
"Queue" = "Background" - это слой, в котором все рисуется в произвольном порядке. Слой можно менять прибавлением цифры к названию слоя, например "Queue" = "Background+1". Чтобы рисовать по порядку - надо сделать один меш, в котором части (сабмеши) расположены по порядку. Либо если используется один и тот же материал, то индексы треугольников шли в нужном порядке.
Либо если тебя устроит скопировать материал и задать вручную порядок:
http://unity3d.com/support/documenta...nderQueue.html
Но не забывать что между стандартными слоями Unity разница в 1000: Background: 1000, Geometry: 2000, Transparent: 3000 и Overlay: 4000

is.SarCasm 26.06.2012 16:11

Ответ: Вопросы от новичка
 
Функция networkView.RPC принимает:
(string name, RPCMode mode, params object[] args)
Я отправляю:
(string , RPCMode ,string[])

Пример:
Цитата:

string[] h = GameOptions.playersNames.ToArray();
networkView.RPC("SendAllNames",RPCMode.Others,h);
void SendAllNames(string[] names)
Цитата:

GameOptions.playersNames.Clear();
foreach(string n in names)
{
GameOptions.playersNames.Add(n);
}
Ошибка:
Sending RPC failed because 'SendAllNames' parameter 0 didn't match the RPC declaration. Expected 'System.String[]' but got 'System.String'

pax 26.06.2012 16:29

Ответ: Вопросы от новичка
 
не уверен что будет работать, но может объявить как
void SendAllNames(params string[] names)
Но все равно сомнительно, что функция может принимать массивы
Цитата:

Valid RPC parameters are int, float, string, NetworkPlayer, NetworkViewID, Vector3 and Quaternion.
Я бы предложил использовать один строковый параметр, перед отправкой собирал бы имена в одну строку с помощью string.Join(), а при приеме разбирал бы через string.Split()

is.SarCasm 26.06.2012 17:05

Ответ: Вопросы от новичка
 
Спасибо, попробую (params я делал, не помогло)

WISHMASTER35 27.06.2012 22:08

Ответ: Вопросы от новичка
 
pax, спасибо, но у меня разные меши и разные материалы и хотел, чтобы динамический батчинг работал. Но видно мне это не поможет.
Свой GUI пробую делать) Видно лучше будет задать каждому мешу свою Z координату и включить Z буфер. В NGUI все в один меше, но я так не хочу т.к. придется и пересчитывать каждый кадр и памяти на это будет уходить.

pax 28.06.2012 17:40

Ответ: Вопросы от новичка
 
С Z-буфером в GUI будет отстой, тебе придется писать шейдеры с альфатестом, что даст плохой результат на прозрачности (краях). Так же Z-буфер не спасет при прозрачном GUI. Так что ИМХО не стоит. Z- не сортирует меши при отрисовке.

WISHMASTER35 28.06.2012 18:18

Ответ: Вопросы от новичка
 
Я когда-то писал шейдер, делал RenderType=Transparent чтобы меши сортировались по расстоянию до камеры и кажется полностью отключал работу с Z-буфером. Вообщем-то отлично работало, но правильно сортировалось только для 2д.
Интересно было бы и для 3д сделать, но там уже либо cutout либо черт его знает.

А стандартным GUI красивый шрифт не сделаешь? Как здесь http://static.starapk.com/images/pi2010120904334933.jpg например.

Кстати, заметил, что если Time.scaleTime сделать равным 0, то Time.deltaTime будет равен NAN и отсюда куча ошибок. А видь не сложно было сделать, чтобы вместо Nan deltaTime возвращала 0.

pax 28.06.2012 18:21

Ответ: Вопросы от новичка
 
1. Шрифт сделаешь, если кастомный шрифт делать. Правда не уверен о цвете.
2. Обычно timeScale ставят 0.00001 или подобный.

WISHMASTER35 28.06.2012 18:40

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

pax 28.06.2012 19:09

Ответ: Вопросы от новичка
 
1) гугли по ключевым словам Unity FontTool CustomFont
2) GUILayout.FlexibleSpace();

WISHMASTER35 28.06.2012 19:26

Ответ: Вопросы от новичка
 
Да я пробовал FlexibleSpace, но что-то он не работает.
Пишу так
Код:

GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
GUILayout.Label("Time Scale ");
Time.timeScale = GUILayout.HorizontalSlider(Time.timeScale, 0.00001f, 1, GUILayout.Width(100));
GUILayout.EndHorizontal();

И все равно с самого начала рисуется, где рисуется fps.

pax 28.06.2012 20:06

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

GUILayout.BeginHorizontal(GUI.skin.box);
GUILayout.FlexibleSpace();
GUILayout.Label("Time Scale ");
Time.timeScale GUILayout.HorizontalSlider(Time.timeScale0.00001f1GUILayout.Width(100));
GUILayout.EndHorizontal(); 

Результат:

WISHMASTER35 28.06.2012 20:32

Ответ: Вопросы от новичка
 
Это ты в инспекторе нарисовал? Я в игре рисую.

pax 28.06.2012 22:53

Ответ: Вопросы от новичка
 
В игре тоже самое.

1. Прочитай мой урок - особенно раздел про меню. Змейка Scaven'а
2. Вот тебе пример:
PHP код:

void OnGUI()
{
    
GUILayout.BeginArea(new Rect(0,0,Screen.widthScreen.height));
    
GUILayout.FlexibleSpace();
    
GUILayout.BeginHorizontal(GUI.skin.box);
    
GUILayout.FlexibleSpace();
    
GUILayout.Label("Time Scale ");
    
Time.timeScale GUILayout.HorizontalSlider(Time.timeScale0.00001f1GUILayout.Width(100));
    
GUILayout.EndHorizontal();  
    
GUILayout.EndArea();




PHP код:

void OnGUI()
{
    
GUILayout.BeginArea(new Rect(00Screen.widthScreen.height));
    
GUILayout.FlexibleSpace();
    
GUILayout.BeginHorizontal();
    
GUILayout.FlexibleSpace();
    
GUILayout.Label("Time Scale ");
    
Time.timeScale GUILayout.HorizontalSlider(Time.timeScale0.00001f1GUILayout.Width(100));
    
GUILayout.EndHorizontal();  
    
GUILayout.EndArea();




PHP код:

void OnGUI()
{
    
GUILayout.BeginArea(new Rect(00Screen.widthScreen.height));
    
GUILayout.FlexibleSpace();
    
GUILayout.BeginHorizontal();
    
GUILayout.FlexibleSpace();
    
GUILayout.BeginHorizontal(GUI.skin.box);
    
GUILayout.Label("Time Scale ");
    
Time.timeScale GUILayout.HorizontalSlider(Time.timeScale0.00001f1GUILayout.Width(100));
    
GUILayout.EndHorizontal();
    
GUILayout.EndHorizontal();  
    
GUILayout.EndArea();



AntiRock 29.06.2012 11:57

Ответ: Вопросы от новичка
 
Помню как-то давно скачивал данный двиг меня он заинтересовал, делал разные сценки из деревьев, воды и т.д. Потом забросил это дело, потому что толку, что есть двиг, если кроме паскаля да vb ничего не знаешь. Вспомнил про данный двиг, да захотелось чего-нибудь создать. Хотел бы спросить, какой язык программирования лучше выучить чтобы использовать данный двиг в своих целях, какой быстрее выучить, у какого больше возможностей и т.д. И назовите какой-нибудь хоть один серьезный проект на этом двиге(под серьезным я подразумеваю, что он разрабатывался не одним человек, в нем идеальная графика, мощный ИЕ, хорошая производительность и т.д.) Стоит ли вообще учить язык программирования только чтобы начать что-то делать на этом движке?


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

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