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 13.10.2012 17:43

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

Сообщение от WISHMASTER35 (Сообщение 240189)
Почему веб-плеер просит все время обновления? По крайней мере в хроме.
Вот например если попытаться запустить мою демку https://dl.dropbox.com/u/55489242/Sh...WebPlayer.html

Надо было https убрать.

Думаю как сделать несложный визуальный редактор gui.
Есть какой-то элемент (кнопка или др), которому задано смещение(влево, вправо, по центру).
И должна быть панель, которая отрисовывает эти элементы. Вот как сделать, чтобы эта панель смещала эти элементы туда, куда они хотят?
Сейчас написал так
Код:

GUILayout.BeginHorizontal();
                foreach(Transform child in transform) {
                        GUIButton button = child.GetComponent<GUIButton>();
                        if(button.anchor == Anchor.Center || button.anchor == Anchor.Right) GUILayout.FlexibleSpace();
                        button.DrawGUI();
                        if(button.anchor == Anchor.Center || button.anchor == Anchor.Left) GUILayout.FlexibleSpace();
                }
GUILayout.EndHorizontal();

Вот только, если первый элемент не смещен вправо, то после него будет FlexibleSpace, и следующий элемент слева уже никак не будет.
Вот как тут можно правильно сделать?

pax 13.10.2012 19:38

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

Код:

foreach(Transform child in transform) {
    GUILayout.BeginArea(new Rect(0,0,Screen.width, Screen.height));

                        GUIButton button = child.GetComponent<GUIButton>();
                        if(button.anchor == Anchor.Center || button.anchor == Anchor.Right) GUILayout.FlexibleSpace();
                        button.DrawGUI();
                        if(button.anchor == Anchor.Center || button.anchor == Anchor.Left) GUILayout.FlexibleSpace();
               
    GUILayout.EndArea();
}


WISHMASTER35 13.10.2012 19:57

Ответ: Вопросы от новичка
 
Думаю тогда элементы наложатся друг на друга.

pax 13.10.2012 20:22

Ответ: Вопросы от новичка
 
А как ты представляешь смещение? Нарисовал бы...

WISHMASTER35 13.10.2012 20:56

Ответ: Вопросы от новичка
 
Ну чтобы, если первый и второй элемент должны привязываться к левой стороне, то они и были с левой стороны вплотную друг к другу прижаты.
У меня получается что после первого элемента идет FlexibleSpace() и второй элемент уже идет не в плотную к первому.

А ты gui пишешь полностью в скриптах? Не делал таких визуальных редакторов? Я как-то привык, что gui всегда визуально делается))

Okay 13.10.2012 21:43

Ответ: Вопросы от новичка
 
В blitz3d есть maskimage. Как это сделать в unity3d?

pax 13.10.2012 22:27

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

Сообщение от WISHMASTER35 (Сообщение 240233)
А ты gui пишешь полностью в скриптах? Не делал таких визуальных редакторов? Я как-то привык, что gui всегда визуально делается))

Всегда скрипты, только хардкор)

Цитата:

Сообщение от Okay (Сообщение 240237)
В blitz3d есть maskimage. Как это сделать в unity3d?

шейдер написать)
Например можно использовать шейдеры из группы Transparent/Cutout

Okay 13.10.2012 22:35

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

шейдер написать)
Например можно использовать шейдеры из группы Transparent/Cutout
Сильно сказано

pax 13.10.2012 22:38

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

Сообщение от Okay (Сообщение 240245)
Сильно сказано

Сложно использовать готовые шейдеры?
Там просто по альфе отрезается.

Okay 13.10.2012 22:53

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

Сообщение от pax (Сообщение 240247)
Сложно использовать готовые шейдеры?
Там просто по альфе отрезается.

Спасибо за ответ. Лучше уж в фотошопе сделать прозрачным

Okay 15.10.2012 03:29

Ответ: Вопросы от новичка
 
Вопрос по анимации. Анимация бега. Как сделать, чтобы воспроизводились кадры анимации только тогда, когда я жму кнопку допустим W. При сбрасывании кнопки, чтобы анимка сбивалась

pax 15.10.2012 07:32

Ответ: Вопросы от новичка
 
http://docs.unity3d.com/Documentatio...CrossFade.html
Там второй пример не подходит?

St_AnGer 22.10.2012 13:40

Ответ: Вопросы от новичка
 
Есть модель формата 3ds, не монолитная (состоит из нескольких объектов типа куб/сфера/цилиндр). Если кидать модель в проект из редактора - то всё впорядке, все части показываются. Если же прописываю меш в скрипте - то показывается всего один цилиндр из всех частей модели. Скрипт загрузки меша такой:
PHP код:

Mesh bodyM = (Mesh)Resources.Load("Models/Player/Korpus1"typeof(Mesh));
if (
bodyM != nullbody.GetComponent<MeshFilter>().mesh bodyM

body - GameObject, на который и вешаю меш. Меш нужно повесить именно из скрипта. В unity новичок, в чём проблема не пойму. Эту тему перерыл уже всю, ответа не нашёл.

pax 22.10.2012 13:58

Ответ: Вопросы от новичка
 
Если на объекте 3 материала, то рендереру надо три материала назначить.

PHP код:

renderer.materials = new Material[]{mat1,mat2,mat3}; 


St_AnGer 22.10.2012 14:48

Ответ: Вопросы от новичка
 
С материалами возиться таким способом как то грустно, тем более что материалы наложены в максе и каждый руками прописывать - жестоко.
Сделал проще - создал префаб, запихнул в него затекстуренную модель и загрузил как:
PHP код:

body = (GameObject)Instantiate(main.Korpus1, new Vector3(x0z), Quaternion.EulerRotation(000)); 

апд
Сделал ещё проще - сразу через Instantiate загрузил модель, работает!
PHP код:

body = (GameObject)Instantiate(Resources.Load("Models/Player/Korpus1"), new Vector3(x0z), Quaternion.EulerRotation(000)); 



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

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