 |
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
13.10.2012, 17:43
|
#661
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от WISHMASTER35
|
Надо было 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, и следующий элемент слева уже никак не будет.
Вот как тут можно правильно сделать?
|
(Offline)
|
|
13.10.2012, 19:38
|
#662
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Как-то так
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();
}
|
(Offline)
|
|
13.10.2012, 19:57
|
#663
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Думаю тогда элементы наложатся друг на друга.
|
(Offline)
|
|
13.10.2012, 20:22
|
#664
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
А как ты представляешь смещение? Нарисовал бы...
|
(Offline)
|
|
13.10.2012, 20:56
|
#665
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Ну чтобы, если первый и второй элемент должны привязываться к левой стороне, то они и были с левой стороны вплотную друг к другу прижаты.
У меня получается что после первого элемента идет FlexibleSpace() и второй элемент уже идет не в плотную к первому.
А ты gui пишешь полностью в скриптах? Не делал таких визуальных редакторов? Я как-то привык, что gui всегда визуально делается))
|
(Offline)
|
|
13.10.2012, 21:43
|
#666
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Вопросы от новичка
В blitz3d есть maskimage. Как это сделать в unity3d?
|
(Offline)
|
|
13.10.2012, 22:27
|
#667
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от WISHMASTER35
А ты gui пишешь полностью в скриптах? Не делал таких визуальных редакторов? Я как-то привык, что gui всегда визуально делается))
|
Всегда скрипты, только хардкор)
Сообщение от Okay
В blitz3d есть maskimage. Как это сделать в unity3d?
|
шейдер написать)
Например можно использовать шейдеры из группы Transparent/Cutout
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.10.2012, 22:35
|
#668
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Вопросы от новичка
шейдер написать)
Например можно использовать шейдеры из группы Transparent/Cutout
|
Сильно сказано
|
(Offline)
|
|
13.10.2012, 22:38
|
#669
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Okay
Сильно сказано
|
Сложно использовать готовые шейдеры?
Там просто по альфе отрезается.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.10.2012, 22:53
|
#670
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pax
Сложно использовать готовые шейдеры?
Там просто по альфе отрезается.
|
Спасибо за ответ. Лучше уж в фотошопе сделать прозрачным
|
(Offline)
|
|
15.10.2012, 03:29
|
#671
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Вопросы от новичка
Вопрос по анимации. Анимация бега. Как сделать, чтобы воспроизводились кадры анимации только тогда, когда я жму кнопку допустим W. При сбрасывании кнопки, чтобы анимка сбивалась
|
(Offline)
|
|
15.10.2012, 07:32
|
#672
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.10.2012, 13:40
|
#673
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Вопросы от новичка
Есть модель формата 3ds, не монолитная (состоит из нескольких объектов типа куб/сфера/цилиндр). Если кидать модель в проект из редактора - то всё впорядке, все части показываются. Если же прописываю меш в скрипте - то показывается всего один цилиндр из всех частей модели. Скрипт загрузки меша такой:
Mesh bodyM = (Mesh)Resources.Load("Models/Player/Korpus1", typeof(Mesh));
if (bodyM != null) body.GetComponent<MeshFilter>().mesh = bodyM;
body - GameObject, на который и вешаю меш. Меш нужно повесить именно из скрипта. В unity новичок, в чём проблема не пойму. Эту тему перерыл уже всю, ответа не нашёл.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
22.10.2012, 13:58
|
#674
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Если на объекте 3 материала, то рендереру надо три материала назначить.
renderer.materials = new Material[]{mat1,mat2,mat3};
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.10.2012, 14:48
|
#675
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Вопросы от новичка
С материалами возиться таким способом как то грустно, тем более что материалы наложены в максе и каждый руками прописывать - жестоко.
Сделал проще - создал префаб, запихнул в него затекстуренную модель и загрузил как:
body = (GameObject)Instantiate(main.Korpus1, new Vector3(x, 0, z), Quaternion.EulerRotation(0, 0, 0));
апд
Сделал ещё проще - сразу через Instantiate загрузил модель, работает!
body = (GameObject)Instantiate(Resources.Load("Models/Player/Korpus1"), new Vector3(x, 0, z), Quaternion.EulerRotation(0, 0, 0));
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:40.
|